@desplega.ai/agent-swarm 1.149.0 → 1.149.1

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 (77) hide show
  1. package/dist/{acp-adapter-4jncb126.js → acp-adapter-vhkzfpjg.js} +1 -1
  2. package/dist/{actions-31vp3ae7.js → actions-9d2694yk.js} +6 -6
  3. package/dist/{app-1hh67x8w.js → app-fq2ggynt.js} +3 -3
  4. package/dist/{assistant-z66dmz6p.js → assistant-edb6n9nn.js} +8 -8
  5. package/dist/{boot-reembed-wxa8ya0s.js → boot-reembed-msweabbp.js} +4 -4
  6. package/dist/{boot-reembed-fqzxxzjh.js → boot-reembed-q5wd3tha.js} +3 -3
  7. package/dist/{boot-scrub-logs-jnyndh79.js → boot-scrub-logs-3g1az933.js} +2 -2
  8. package/dist/{claude-adapter-3qpa9w0j.js → claude-adapter-v3rnzsdc.js} +3 -3
  9. package/dist/{claude-sdk-session-2yxgjs5d.js → claude-sdk-session-qxrpsna1.js} +3 -3
  10. package/dist/{cli-nye12xk5.js → cli-01g3x1ca.js} +3 -3
  11. package/dist/{cli-qaacms9y.js → cli-1c94wvcw.js} +5 -5
  12. package/dist/{cli-d8ftsp62.js → cli-3sysyjve.js} +7 -7
  13. package/dist/{cli-2qts1hys.js → cli-3z634pqe.js} +2 -2
  14. package/dist/{cli-n3dz2942.js → cli-4260r1tg.js} +3 -3
  15. package/dist/{cli-9fy6nk6g.js → cli-5m0qmvdp.js} +1 -1
  16. package/dist/{cli-k0cr4kat.js → cli-6skz3rk8.js} +1 -1
  17. package/dist/{cli-e95cx1eb.js → cli-73gq0zxn.js} +1 -1
  18. package/dist/{cli-phsxnkp6.js → cli-7evafqvy.js} +9 -9
  19. package/dist/{cli-ygweqcn4.js → cli-7fehefdf.js} +5 -5
  20. package/dist/{cli-sd5pv3b1.js → cli-7xx10h0a.js} +2 -2
  21. package/dist/{cli-ykxrnd1q.js → cli-9br8ypfv.js} +2 -2
  22. package/dist/{cli-q50ef8g0.js → cli-ayvy5kde.js} +1 -1
  23. package/dist/{cli-9hspd3dp.js → cli-cd60fv6j.js} +1 -1
  24. package/dist/{cli-yb9qhqam.js → cli-cv7s5zdq.js} +18 -18
  25. package/dist/{cli-6pqcb4q0.js → cli-ddfw1mc4.js} +8 -8
  26. package/dist/{cli-kjwt6hdf.js → cli-e06a8a7y.js} +1 -1
  27. package/dist/{cli-19f354qr.js → cli-hzqmgcm2.js} +2 -2
  28. package/dist/{cli-gv88e1vf.js → cli-j4d4f6hv.js} +1 -1
  29. package/dist/{cli-3q5ejx9p.js → cli-jezx9b9c.js} +1 -1
  30. package/dist/{cli-7smrsr25.js → cli-k351hv5k.js} +2 -2
  31. package/dist/{cli-yab68w40.js → cli-qgd4sqz5.js} +2 -1
  32. package/dist/{cli-kgz4np97.js → cli-sdzq01t9.js} +2 -2
  33. package/dist/{cli-aae6hz6a.js → cli-svbrpf5q.js} +3 -3
  34. package/dist/{cli-cr12paw2.js → cli-tg8qj8ee.js} +1 -1
  35. package/dist/{cli-gjhjfeeg.js → cli-wby1xnnb.js} +1 -1
  36. package/dist/{cli-mnmsfd1w.js → cli-y3pq4v9g.js} +1 -1
  37. package/dist/cli.js +11 -11
  38. package/dist/{codex-adapter-8meawydj.js → codex-adapter-jyw7a91z.js} +2 -2
  39. package/dist/{codex-session-runner-gjgxyp5j.js → codex-session-runner-bmngj0s5.js} +2 -2
  40. package/dist/{commands-hz3nb95f.js → commands-n755g391.js} +2 -2
  41. package/dist/{db-ggz97zbm.js → db-s1cgh5gv.js} +2 -2
  42. package/dist/{handlers-nbzdzn9k.js → handlers-nsg0bcye.js} +8 -8
  43. package/dist/{hook-bks2q1f6.js → hook-h9cqrm8q.js} +1 -1
  44. package/dist/{hook-kq9wp0ep.js → hook-jf0xe8zh.js} +2 -2
  45. package/dist/{http-hrf77v87.js → http-nc6pydw5.js} +34 -34
  46. package/dist/{index-cqtebbhb.js → index-0wdy6gwc.js} +9 -9
  47. package/dist/{index-8hmeg8j1.js → index-769nc012.js} +10 -10
  48. package/dist/{index-6nsbg88z.js → index-ezxkds2n.js} +173 -49
  49. package/dist/{index-n28pw1zt.js → index-x1zcj09z.js} +11 -11
  50. package/dist/{keepalive-dxc12gvg.js → keepalive-nesm3xb6.js} +4 -4
  51. package/dist/{lead-yckfn18d.js → lead-bwy6t2za.js} +22 -22
  52. package/dist/{maintenance-6kfb2m5e.js → maintenance-8w393zf0.js} +4 -4
  53. package/dist/{oauth-refresh-sweep-1x1ac722.js → oauth-refresh-sweep-sh8xjy08.js} +3 -3
  54. package/dist/{onboard-dcyt1609.js → onboard-25ps29h1.js} +2 -2
  55. package/dist/{otel-impl-tbk3e5dr.js → otel-impl-b93gxnz5.js} +1 -1
  56. package/dist/{pricing-refresh-kaqg567e.js → pricing-refresh-5v56x7gb.js} +4 -4
  57. package/dist/{rbac-roles-cf97v1vd.js → rbac-roles-0p0s6pbj.js} +3 -3
  58. package/dist/{rbac-roles-ammq6rd2.js → rbac-roles-x55cnezn.js} +2 -2
  59. package/dist/{render-v2-80w603vy.js → render-v2-hyd45w8b.js} +3 -3
  60. package/dist/{seed-pricing-zbrn83xv.js → seed-pricing-49gbgn96.js} +3 -3
  61. package/dist/{setup-fe66kczs.js → setup-qvq64vzq.js} +2 -2
  62. package/dist/{worker-qmb2d1e2.js → worker-scj60cxg.js} +22 -22
  63. package/openapi.json +1 -1
  64. package/package.json +1 -1
  65. package/src/be/seed/automation-toggle.ts +69 -0
  66. package/src/be/seed/schedules-seeder.ts +28 -6
  67. package/src/be/seed/workflows-seeder.ts +18 -6
  68. package/src/be/swarm-config-guard.ts +1 -0
  69. package/src/tests/seed-registry.test.ts +2 -2
  70. package/src/tests/seed-schedules.test.ts +99 -3
  71. package/src/tests/seed-workflows.test.ts +74 -0
  72. package/templates/schedules/daily-blocker-digest/config.json +6 -1
  73. package/templates/schedules/daily-compounding-reflection/config.json +1 -0
  74. package/templates/schedules/daily-status-report/config.json +6 -1
  75. package/templates/schedules/daily-swarm-update-check/config.json +19 -0
  76. package/templates/schedules/daily-swarm-update-check/content.md +49 -0
  77. package/templates/schedules/daily-workflow-health-audit/config.json +6 -1
@@ -6,8 +6,8 @@ import {
6
6
  extractArgsJsonSchema,
7
7
  extractScriptSignature,
8
8
  typecheckScript
9
- } from "./cli-n3dz2942.js";
10
- import"./cli-19f354qr.js";
9
+ } from "./cli-4260r1tg.js";
10
+ import"./cli-hzqmgcm2.js";
11
11
  import {
12
12
  require_dist
13
13
  } from "./cli-qgm2pfpq.js";
@@ -16,14 +16,14 @@ import {
16
16
  upsertScriptByName,
17
17
  validateDefinition,
18
18
  validateScriptImports
19
- } from "./cli-aae6hz6a.js";
19
+ } from "./cli-svbrpf5q.js";
20
20
  import"./cli-epan13p1.js";
21
- import"./cli-2qts1hys.js";
22
- import"./cli-3q5ejx9p.js";
21
+ import"./cli-3z634pqe.js";
22
+ import"./cli-jezx9b9c.js";
23
23
  import"./cli-y89t4nca.js";
24
24
  import"./cli-f14fvzag.js";
25
25
  import"./cli-zvz62chv.js";
26
- import"./cli-9hspd3dp.js";
26
+ import"./cli-cd60fv6j.js";
27
27
  import"./cli-aehm1rbq.js";
28
28
  import"./cli-9d8ntetj.js";
29
29
  import {
@@ -42,7 +42,7 @@ import {
42
42
  updateSkill,
43
43
  updateWorkflow,
44
44
  upsertSkillFiles
45
- } from "./cli-yab68w40.js";
45
+ } from "./cli-qgd4sqz5.js";
46
46
  import"./cli-08b07b4r.js";
47
47
  import"./cli-3apbzgyk.js";
48
48
  import"./cli-e29gmdmw.js";
@@ -50,7 +50,7 @@ import"./cli-c2mk1kgf.js";
50
50
  import"./cli-ej6gbxfb.js";
51
51
  import"./cli-sd0mxa3c.js";
52
52
  import"./cli-w5e1d1vv.js";
53
- import"./cli-kjwt6hdf.js";
53
+ import"./cli-e06a8a7y.js";
54
54
  import"./cli-r2ap2czm.js";
55
55
  import"./cli-zf8jjwex.js";
56
56
  import {
@@ -14805,7 +14805,12 @@ var config_default52 = `{
14805
14805
  "placeholders": [],
14806
14806
  "requires": [],
14807
14807
  "runAllSeedersCandidate": true,
14808
- "tags": ["operations", "slack", "digest"]
14808
+ "autoEnableCandidate": true,
14809
+ "tags": [
14810
+ "operations",
14811
+ "slack",
14812
+ "digest"
14813
+ ]
14809
14814
  }
14810
14815
  `;
14811
14816
 
@@ -14992,6 +14997,7 @@ var config_default53 = `{
14992
14997
  "placeholders": [],
14993
14998
  "requires": [],
14994
14999
  "runAllSeedersCandidate": true,
15000
+ "autoEnableCandidate": true,
14995
15001
  "tags": [
14996
15002
  "memory",
14997
15003
  "skills",
@@ -15239,7 +15245,12 @@ var config_default54 = `{
15239
15245
  "placeholders": [],
15240
15246
  "requires": [],
15241
15247
  "runAllSeedersCandidate": true,
15242
- "tags": ["operations", "status", "digest"]
15248
+ "autoEnableCandidate": true,
15249
+ "tags": [
15250
+ "operations",
15251
+ "status",
15252
+ "digest"
15253
+ ]
15243
15254
  }
15244
15255
  `;
15245
15256
 
@@ -15326,8 +15337,82 @@ Integration setup: [missing credentials from /status], or all verified.
15326
15337
  - ❌ Omitting the Waiting on you section — say explicitly when no automation is in \`needs_setup\` and all integrations are verified.
15327
15338
  `;
15328
15339
 
15329
- // templates/schedules/daily-workflow-health-audit/config.json
15340
+ // templates/schedules/daily-swarm-update-check/config.json
15330
15341
  var config_default55 = `{
15342
+ "kind": "schedule",
15343
+ "name": "daily-swarm-update-check",
15344
+ "displayName": "Daily Agent-Swarm Update Check",
15345
+ "slug": "daily-swarm-update-check",
15346
+ "title": "Daily Agent-Swarm Update Check",
15347
+ "description": "Compare the running agent-swarm version against the latest published GitHub release and flag the operator when an upgrade is available. Zero-config: no repo clone, no integration required.",
15348
+ "version": "1.0.0",
15349
+ "category": "schedules",
15350
+ "placeholders": [],
15351
+ "requires": [],
15352
+ "runAllSeedersCandidate": true,
15353
+ "autoEnableCandidate": true,
15354
+ "tags": [
15355
+ "operations",
15356
+ "release",
15357
+ "upgrade"
15358
+ ]
15359
+ }
15360
+ `;
15361
+
15362
+ // templates/schedules/daily-swarm-update-check/content.md
15363
+ var content_default55 = `# Daily Agent-Swarm Update Check
15364
+
15365
+ Zero-config auto-update watchdog: compares the swarm's own running version against the latest published GitHub release of \`desplega-ai/agent-swarm\`, and flags the operator when an upgrade is available. No placeholders and no integration required — every install gets this by default.
15366
+
15367
+ ## Schedule
15368
+
15369
+ \`\`\`json
15370
+ {"cron":"0 9 * * *","timezone":"UTC","agentRole":"lead","enabled":true}
15371
+ \`\`\`
15372
+
15373
+ ## Scheduled Task
15374
+
15375
+ This schedule runs by default. It needs no repository clone and no integration — it only reads its own task metadata and calls the public GitHub API.
15376
+
15377
+ Task Type: Daily Agent-Swarm Update Check
15378
+
15379
+ You are Lead. Determine whether a newer \`desplega-ai/agent-swarm\` release is published than the version currently running on this install, and tell the operator if so.
15380
+
15381
+ ## Phase 1 — Determine the running version
15382
+
15383
+ Call \`get-task-details\` for THIS task's own id and read \`task.swarmVersion\` — the API server stamps every task with the \`package.json\` version it was running at task-creation time, so this is the version currently deployed on this install.
15384
+
15385
+ If \`swarmVersion\` is missing or empty (an older install, or the field predates this schedule), complete with \`output\`: \`"Unable to determine running version — swarmVersion not set on this task."\` and stop. Do not guess a version.
15386
+
15387
+ ## Phase 2 — Fetch the latest published release
15388
+
15389
+ \`\`\`bash
15390
+ curl -fsSL https://api.github.com/repos/desplega-ai/agent-swarm/releases/latest
15391
+ \`\`\`
15392
+
15393
+ Read \`.tag_name\` (strip a leading \`v\` if present) and \`.html_url\`. If the request fails (network, rate limit, non-200), complete with \`output\`: \`"Could not reach GitHub releases API: <error>"\` and stop — do not retry in a loop.
15394
+
15395
+ ## Phase 3 — Compare and act
15396
+
15397
+ Compare the two versions as dotted numeric triples (major.minor.patch) — never as plain strings (\`"1.9.0" < "1.10.0"\` is false as strings).
15398
+
15399
+ - **Latest <= running:** complete with \`output\`: \`"Up to date: running <running>, latest published <latest>."\` No further action.
15400
+ - **Latest > running:** raise it for the operator:
15401
+ 1. Post a short message to your configured admin delivery channel (or the in-app fallback if none is configured) naming the running version, the new version, and the release URL.
15402
+ 2. Complete \`store-progress\` with \`status: "completed"\` and \`output\`: \`"Update available: running <running>, latest <latest> — <releaseUrl>"\`.
15403
+
15404
+ Do not attempt the upgrade yourself — this schedule only detects and reports. \`weekly-harness-upgrade-check\` is the separate routine that bumps pinned harness versions inside the repo; this schedule is about the agent-swarm release itself.
15405
+
15406
+ ## Anti-patterns
15407
+
15408
+ - ❌ Cloning the repo or reading \`package.json\` from disk — this schedule must work on any install, including ones where the API pod has no repo checkout.
15409
+ - ❌ String-comparing versions.
15410
+ - ❌ Treating a missing \`swarmVersion\` as "no update available" — it's "unknown", say so explicitly.
15411
+ - ❌ Retrying a failed GitHub API call in a loop.
15412
+ `;
15413
+
15414
+ // templates/schedules/daily-workflow-health-audit/config.json
15415
+ var config_default56 = `{
15331
15416
  "kind": "schedule",
15332
15417
  "name": "daily-workflow-health-audit",
15333
15418
  "displayName": "Daily Workflow Health Audit",
@@ -15339,12 +15424,17 @@ var config_default55 = `{
15339
15424
  "placeholders": [],
15340
15425
  "requires": [],
15341
15426
  "runAllSeedersCandidate": true,
15342
- "tags": ["workflows", "schedules", "reliability"]
15427
+ "autoEnableCandidate": true,
15428
+ "tags": [
15429
+ "workflows",
15430
+ "schedules",
15431
+ "reliability"
15432
+ ]
15343
15433
  }
15344
15434
  `;
15345
15435
 
15346
15436
  // templates/schedules/daily-workflow-health-audit/content.md
15347
- var content_default55 = `# Daily Workflow Health Audit
15437
+ var content_default56 = `# Daily Workflow Health Audit
15348
15438
 
15349
15439
  Delivery uses configured admin channels with an in-app fallback.
15350
15440
 
@@ -15538,7 +15628,7 @@ Omit any section whose count is 0. Cap message at 4000 chars (Slack limit) — i
15538
15628
  `;
15539
15629
 
15540
15630
  // templates/schedules/gtm-weekly-review/config.json
15541
- var config_default56 = `{
15631
+ var config_default57 = `{
15542
15632
  "kind": "schedule",
15543
15633
  "name": "gtm-weekly-review",
15544
15634
  "displayName": "Weekly GTM Metrics Review",
@@ -15555,7 +15645,7 @@ var config_default56 = `{
15555
15645
  `;
15556
15646
 
15557
15647
  // templates/schedules/gtm-weekly-review/content.md
15558
- var content_default56 = `Template parameters: {{REPO_URL}}, {{GSC_PROPERTY}}
15648
+ var content_default57 = `Template parameters: {{REPO_URL}}, {{GSC_PROPERTY}}
15559
15649
 
15560
15650
  # Weekly GTM Metrics Review
15561
15651
 
@@ -15636,7 +15726,7 @@ This is part of your team's GTM goal; update the goal statement before enabling
15636
15726
  `;
15637
15727
 
15638
15728
  // templates/schedules/weekly-code-health-reports/config.json
15639
- var config_default57 = `{
15729
+ var config_default58 = `{
15640
15730
  "kind": "schedule",
15641
15731
  "name": "weekly-code-health-reports",
15642
15732
  "displayName": "Weekly Code Health Reports",
@@ -15653,7 +15743,7 @@ var config_default57 = `{
15653
15743
  `;
15654
15744
 
15655
15745
  // templates/schedules/weekly-code-health-reports/content.md
15656
- var content_default57 = `# Weekly Code Health Reports
15746
+ var content_default58 = `# Weekly Code Health Reports
15657
15747
 
15658
15748
  Template parameters: {{REPO_URL}}, {{BRANCH}}, {{SCOPE_PATH}}, {{REPORT_NAME}}, {{PAGE_ID}}
15659
15749
 
@@ -15718,7 +15808,7 @@ Call \`store-progress\` with status \`completed\` and an output summary that inc
15718
15808
  `;
15719
15809
 
15720
15810
  // templates/schedules/weekly-dependabot-triage/config.json
15721
- var config_default58 = `{
15811
+ var config_default59 = `{
15722
15812
  "kind": "schedule",
15723
15813
  "name": "weekly-dependabot-triage",
15724
15814
  "displayName": "Weekly Dependency Triage",
@@ -15735,7 +15825,7 @@ var config_default58 = `{
15735
15825
  `;
15736
15826
 
15737
15827
  // templates/schedules/weekly-dependabot-triage/content.md
15738
- var content_default58 = `# Weekly Dependency Triage
15828
+ var content_default59 = `# Weekly Dependency Triage
15739
15829
 
15740
15830
  Template parameters: {{SLACK_CHANNEL_ID}}, {{REPO_URL}}, {{TIMEZONE}}
15741
15831
 
@@ -15789,7 +15879,7 @@ Call \`store-progress\` with status \`completed\` and an output summary listing
15789
15879
  `;
15790
15880
 
15791
15881
  // templates/schedules/weekly-dora-metrics/config.json
15792
- var config_default59 = `{
15882
+ var config_default60 = `{
15793
15883
  "kind": "schedule",
15794
15884
  "name": "weekly-dora-metrics",
15795
15885
  "displayName": "Weekly DORA Metrics",
@@ -15806,7 +15896,7 @@ var config_default59 = `{
15806
15896
  `;
15807
15897
 
15808
15898
  // templates/schedules/weekly-dora-metrics/content.md
15809
- var content_default59 = `# Weekly DORA Metrics
15899
+ var content_default60 = `# Weekly DORA Metrics
15810
15900
 
15811
15901
  Template parameters: {{REPO_URL}}, {{BRANCH}}, {{TAG_PATTERN}}, {{REPORT_NAME}}, {{PAGE_ID}}
15812
15902
 
@@ -15874,8 +15964,24 @@ Call \`store-progress\` with status \`completed\` and an output summary that inc
15874
15964
  // src/be/seed/schedules-seeder.ts
15875
15965
  init_db();
15876
15966
 
15967
+ // src/be/seed/automation-toggle.ts
15968
+ var SEED_AUTOMATIONS_ENABLED_ENV = "SEED_AUTOMATIONS_ENABLED";
15969
+ var SEED_AUTOMATIONS_ENABLED_DEFAULT = true;
15970
+ function isSeedAutomationsEnabled(env = process.env) {
15971
+ const raw = env[SEED_AUTOMATIONS_ENABLED_ENV];
15972
+ if (raw === undefined || raw === "")
15973
+ return SEED_AUTOMATIONS_ENABLED_DEFAULT;
15974
+ return raw.toLowerCase() === "true" || raw === "1";
15975
+ }
15976
+ function isZeroConfigAutomation(requires, requiredParams) {
15977
+ return requires.length === 0 && requiredParams.length === 0;
15978
+ }
15979
+ function resolveSeededEnabled(params) {
15980
+ return isSeedAutomationsEnabled(params.env) && isZeroConfigAutomation(params.requires, params.requiredParams) && params.autoEnableCandidate && params.templateRecommendsEnabled;
15981
+ }
15982
+
15877
15983
  // templates/workflows/alerts-triage/config.json
15878
- var config_default60 = `{
15984
+ var config_default61 = `{
15879
15985
  "kind": "workflow",
15880
15986
  "name": "alerts-triage",
15881
15987
  "displayName": "Alerts Triage",
@@ -15892,7 +15998,7 @@ var config_default60 = `{
15892
15998
  `;
15893
15999
 
15894
16000
  // templates/workflows/alerts-triage/content.md
15895
- var content_default60 = `# Alerts Triage
16001
+ var content_default61 = `# Alerts Triage
15896
16002
 
15897
16003
  The Slack handler emits \`slack.message\`; this workflow keeps the event-driven path and deduplicates work after the channel filter.
15898
16004
 
@@ -15912,7 +16018,7 @@ The Slack handler emits \`slack.message\`; this workflow keeps the event-driven
15912
16018
  `;
15913
16019
 
15914
16020
  // templates/workflows/autopilot/config.json
15915
- var config_default61 = `{
16021
+ var config_default62 = `{
15916
16022
  "kind": "workflow",
15917
16023
  "name": "autopilot",
15918
16024
  "displayName": "Autopilot Feature Pipeline",
@@ -15929,7 +16035,7 @@ var config_default61 = `{
15929
16035
  `;
15930
16036
 
15931
16037
  // templates/workflows/autopilot/content.md
15932
- var content_default61 = `# Autopilot Feature Pipeline
16038
+ var content_default62 = `# Autopilot Feature Pipeline
15933
16039
 
15934
16040
  Template parameter: {{REPO_URL}}
15935
16041
 
@@ -15941,7 +16047,7 @@ Use this workflow as a canonical feature delivery pipeline. Customize roles and
15941
16047
  `;
15942
16048
 
15943
16049
  // templates/workflows/competitor-radar/config.json
15944
- var config_default62 = `{
16050
+ var config_default63 = `{
15945
16051
  "kind": "workflow",
15946
16052
  "name": "competitor-radar",
15947
16053
  "displayName": "Competitor Radar",
@@ -15958,7 +16064,7 @@ var config_default62 = `{
15958
16064
  `;
15959
16065
 
15960
16066
  // templates/workflows/competitor-radar/content.md
15961
- var content_default62 = `# Competitor Radar
16067
+ var content_default63 = `# Competitor Radar
15962
16068
 
15963
16069
  This self-hosted port retains the scheduled, fixture, extraction, gap-analysis, litmus, cooldown, and bounded-report behavior. Its pinned GSC helper is embedded in the workflow, so it does not fetch executable code from Desplega infrastructure.
15964
16070
 
@@ -15968,7 +16074,7 @@ This self-hosted port retains the scheduled, fixture, extraction, gap-analysis,
15968
16074
  `;
15969
16075
 
15970
16076
  // templates/workflows/docs-site-releases/config.json
15971
- var config_default63 = `{
16077
+ var config_default64 = `{
15972
16078
  "kind": "workflow",
15973
16079
  "name": "docs-site-releases",
15974
16080
  "displayName": "Documentation Release Notes",
@@ -15985,7 +16091,7 @@ var config_default63 = `{
15985
16091
  `;
15986
16092
 
15987
16093
  // templates/workflows/docs-site-releases/content.md
15988
- var content_default63 = `# Documentation Release Notes
16094
+ var content_default64 = `# Documentation Release Notes
15989
16095
 
15990
16096
  This topology-preserving self-hosted port removes installation-specific identities, endpoints, and credentials while retaining the live workflow's nodes, edges, input mappings, guards, retries, cooldown, and triggers. Configure the declared template parameters and integrations before enabling it.
15991
16097
 
@@ -16000,7 +16106,7 @@ This topology-preserving self-hosted port removes installation-specific identiti
16000
16106
  `;
16001
16107
 
16002
16108
  // templates/workflows/linear-drain-loop/config.json
16003
- var config_default64 = `{
16109
+ var config_default65 = `{
16004
16110
  "kind": "workflow",
16005
16111
  "name": "linear-drain-loop",
16006
16112
  "displayName": "Linear Drain Loop",
@@ -16022,7 +16128,7 @@ var config_default64 = `{
16022
16128
  `;
16023
16129
 
16024
16130
  // templates/workflows/linear-drain-loop/content.md
16025
- var content_default64 = `# Linear Drain Loop
16131
+ var content_default65 = `# Linear Drain Loop
16026
16132
 
16027
16133
  Template parameter: {{LINEAR_PROJECT_ID}}
16028
16134
 
@@ -16067,7 +16173,7 @@ Blocked and ambiguous items are explicitly left alone — the dispatch node surf
16067
16173
  `;
16068
16174
 
16069
16175
  // templates/workflows/llm-safe-release-context/config.json
16070
- var config_default65 = `{
16176
+ var config_default66 = `{
16071
16177
  "kind": "workflow",
16072
16178
  "name": "llm-safe-release-context",
16073
16179
  "displayName": "LLM-Safe Release Context",
@@ -16084,7 +16190,7 @@ var config_default65 = `{
16084
16190
  `;
16085
16191
 
16086
16192
  // templates/workflows/llm-safe-release-context/content.md
16087
- var content_default65 = `# LLM-Safe Release Context
16193
+ var content_default66 = `# LLM-Safe Release Context
16088
16194
 
16089
16195
  Template parameters: {{ORG_ID}}, {{REPO_URL}}
16090
16196
 
@@ -16158,7 +16264,7 @@ This avoids the common failure mode where a large \`context.json\` fills the mod
16158
16264
  `;
16159
16265
 
16160
16266
  // templates/workflows/pr-review-status-sweep/config.json
16161
- var config_default66 = `{
16267
+ var config_default67 = `{
16162
16268
  "kind": "workflow",
16163
16269
  "name": "pr-review-status-sweep",
16164
16270
  "displayName": "PR Review Status Sweep",
@@ -16175,7 +16281,7 @@ var config_default66 = `{
16175
16281
  `;
16176
16282
 
16177
16283
  // templates/workflows/pr-review-status-sweep/content.md
16178
- var content_default66 = `# PR Review Status Sweep
16284
+ var content_default67 = `# PR Review Status Sweep
16179
16285
 
16180
16286
  This topology-preserving self-hosted port removes installation-specific identities, endpoints, and credentials while retaining the live workflow's nodes, edges, input mappings, guards, retries, cooldown, and triggers. Configure the declared template parameters and integrations before enabling it.
16181
16287
 
@@ -16188,7 +16294,7 @@ This topology-preserving self-hosted port removes installation-specific identiti
16188
16294
  `;
16189
16295
 
16190
16296
  // templates/workflows/ralph-loop/config.json
16191
- var config_default67 = `{
16297
+ var config_default68 = `{
16192
16298
  "kind": "workflow",
16193
16299
  "name": "ralph-loop",
16194
16300
  "displayName": "Iterative Review Loop",
@@ -16205,7 +16311,7 @@ var config_default67 = `{
16205
16311
  `;
16206
16312
 
16207
16313
  // templates/workflows/ralph-loop/content.md
16208
- var content_default67 = `# Iterative Review Loop
16314
+ var content_default68 = `# Iterative Review Loop
16209
16315
 
16210
16316
  Template parameter: {{REPO_URL}}
16211
16317
 
@@ -16256,14 +16362,14 @@ The \`maxIterations\` parameter is declarative: the reviewer signals PASS when d
16256
16362
  init_db();
16257
16363
  var asText2 = (value) => value;
16258
16364
  var BUILT_IN_WORKFLOW_SOURCES = [
16259
- { config: asText2(config_default60), content: asText2(content_default60) },
16260
16365
  { config: asText2(config_default61), content: asText2(content_default61) },
16261
16366
  { config: asText2(config_default62), content: asText2(content_default62) },
16262
16367
  { config: asText2(config_default63), content: asText2(content_default63) },
16263
16368
  { config: asText2(config_default64), content: asText2(content_default64) },
16264
16369
  { config: asText2(config_default65), content: asText2(content_default65) },
16265
16370
  { config: asText2(config_default66), content: asText2(content_default66) },
16266
- { config: asText2(config_default67), content: asText2(content_default67) }
16371
+ { config: asText2(config_default67), content: asText2(content_default67) },
16372
+ { config: asText2(config_default68), content: asText2(content_default68) }
16267
16373
  ];
16268
16374
  function sortJson(value) {
16269
16375
  if (Array.isArray(value))
@@ -16283,10 +16389,17 @@ function parseWorkflowSource(source) {
16283
16389
  if (!match?.[1])
16284
16390
  throw new Error(`Workflow template ${config.name} has no JSON definition`);
16285
16391
  const payload = JSON.parse(match[1]);
16392
+ const requires = config.requires ?? [];
16393
+ const requiredParams = config.placeholders ?? [];
16286
16394
  return {
16287
16395
  name: config.name,
16288
16396
  description: config.description,
16289
- enabled: false,
16397
+ enabled: resolveSeededEnabled({
16398
+ requires,
16399
+ requiredParams,
16400
+ autoEnableCandidate: config.autoEnableCandidate === true,
16401
+ templateRecommendsEnabled: payload.enabled !== false
16402
+ }),
16290
16403
  definition: {
16291
16404
  nodes: payload.nodes,
16292
16405
  onNodeFailure: payload.onNodeFailure ?? "fail"
@@ -16296,8 +16409,8 @@ function parseWorkflowSource(source) {
16296
16409
  input: payload.input,
16297
16410
  triggerSchema: payload.triggerSchema,
16298
16411
  params: {},
16299
- requiredParams: config.placeholders ?? [],
16300
- requires: config.requires ?? []
16412
+ requiredParams,
16413
+ requires
16301
16414
  };
16302
16415
  }
16303
16416
  function loadSeedWorkflows(sources = BUILT_IN_WORKFLOW_SOURCES) {
@@ -16382,16 +16495,20 @@ var BUILT_IN_SCHEDULE_SOURCES = [
16382
16495
  config: asText3(config_default55),
16383
16496
  content: asText3(content_default55)
16384
16497
  },
16385
- { config: asText3(config_default56), content: asText3(content_default56) },
16386
16498
  {
16387
- config: asText3(config_default57),
16388
- content: asText3(content_default57)
16499
+ config: asText3(config_default56),
16500
+ content: asText3(content_default56)
16389
16501
  },
16502
+ { config: asText3(config_default57), content: asText3(content_default57) },
16390
16503
  {
16391
16504
  config: asText3(config_default58),
16392
16505
  content: asText3(content_default58)
16393
16506
  },
16394
- { config: asText3(config_default59), content: asText3(content_default59) }
16507
+ {
16508
+ config: asText3(config_default59),
16509
+ content: asText3(content_default59)
16510
+ },
16511
+ { config: asText3(config_default60), content: asText3(content_default60) }
16395
16512
  ];
16396
16513
  function parseScheduleSource(source) {
16397
16514
  const config = JSON.parse(source.config);
@@ -16409,18 +16526,25 @@ function parseScheduleSource(source) {
16409
16526
  const taskTemplate = source.content.slice(taskHeading >= 0 ? taskHeading + "## Scheduled Task".length : afterBlock).trim();
16410
16527
  if (!taskTemplate)
16411
16528
  throw new Error(`Schedule template ${config.name} has no task prompt`);
16529
+ const requires = config.requires ?? [];
16530
+ const requiredParams = config.placeholders ?? [];
16412
16531
  return {
16413
16532
  name: config.name,
16414
16533
  description: config.description,
16415
16534
  cronExpression: block.cron,
16416
16535
  timezone: block.timezone ?? "UTC",
16417
- enabled: false,
16536
+ enabled: resolveSeededEnabled({
16537
+ requires,
16538
+ requiredParams,
16539
+ autoEnableCandidate: config.autoEnableCandidate === true,
16540
+ templateRecommendsEnabled: block.enabled !== false
16541
+ }),
16418
16542
  taskTemplate,
16419
16543
  taskType: config.title,
16420
16544
  tags: config.tags ?? [],
16421
16545
  params: {},
16422
- requiredParams: config.placeholders ?? [],
16423
- requires: config.requires ?? []
16546
+ requiredParams,
16547
+ requires
16424
16548
  };
16425
16549
  }
16426
16550
  function loadSeedSchedules(sources = BUILT_IN_SCHEDULE_SOURCES) {
@@ -4,29 +4,29 @@ import {
4
4
  runRebootSweep,
5
5
  startHeartbeat,
6
6
  stopHeartbeat
7
- } from "./cli-nye12xk5.js";
8
- import"./cli-mnmsfd1w.js";
7
+ } from "./cli-01g3x1ca.js";
8
+ import"./cli-y3pq4v9g.js";
9
9
  import"./cli-07jd68a1.js";
10
- import"./cli-6pqcb4q0.js";
10
+ import"./cli-ddfw1mc4.js";
11
11
  import"./cli-1ebpar1q.js";
12
12
  import"./cli-e7d20cty.js";
13
13
  import"./cli-3dpj7atn.js";
14
- import"./cli-aae6hz6a.js";
14
+ import"./cli-svbrpf5q.js";
15
15
  import"./cli-epan13p1.js";
16
- import"./cli-2qts1hys.js";
17
- import"./cli-3q5ejx9p.js";
16
+ import"./cli-3z634pqe.js";
17
+ import"./cli-jezx9b9c.js";
18
18
  import"./cli-y89t4nca.js";
19
19
  import"./cli-f14fvzag.js";
20
20
  import"./cli-zvz62chv.js";
21
- import"./cli-9hspd3dp.js";
21
+ import"./cli-cd60fv6j.js";
22
22
  import"./cli-aehm1rbq.js";
23
23
  import"./cli-bsakbbkm.js";
24
- import"./cli-q50ef8g0.js";
25
- import"./cli-d8ftsp62.js";
24
+ import"./cli-ayvy5kde.js";
25
+ import"./cli-3sysyjve.js";
26
26
  import"./cli-q51yprfq.js";
27
27
  import"./cli-9d8ntetj.js";
28
28
  import"./cli-yatxqynm.js";
29
- import"./cli-yab68w40.js";
29
+ import"./cli-qgd4sqz5.js";
30
30
  import"./cli-08b07b4r.js";
31
31
  import"./cli-3apbzgyk.js";
32
32
  import"./cli-e29gmdmw.js";
@@ -34,7 +34,7 @@ import"./cli-c2mk1kgf.js";
34
34
  import"./cli-ej6gbxfb.js";
35
35
  import"./cli-sd0mxa3c.js";
36
36
  import"./cli-w5e1d1vv.js";
37
- import"./cli-kjwt6hdf.js";
37
+ import"./cli-e06a8a7y.js";
38
38
  import"./cli-r2ap2czm.js";
39
39
  import"./cli-pzxba7gw.js";
40
40
  import"./cli-f7kvq46p.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ensureAuthorizationTokenOrThrow,
3
3
  listKeepAliveAuthorizations
4
- } from "./cli-9hspd3dp.js";
5
- import"./cli-yab68w40.js";
4
+ } from "./cli-cd60fv6j.js";
5
+ import"./cli-qgd4sqz5.js";
6
6
  import"./cli-08b07b4r.js";
7
7
  import"./cli-3apbzgyk.js";
8
8
  import"./cli-e29gmdmw.js";
@@ -10,7 +10,7 @@ import"./cli-c2mk1kgf.js";
10
10
  import"./cli-ej6gbxfb.js";
11
11
  import"./cli-sd0mxa3c.js";
12
12
  import"./cli-w5e1d1vv.js";
13
- import"./cli-kjwt6hdf.js";
13
+ import"./cli-e06a8a7y.js";
14
14
  import {
15
15
  init_secret_scrubber,
16
16
  scrubSecrets
@@ -66,7 +66,7 @@ async function notifySlack(text) {
66
66
  return;
67
67
  }
68
68
  try {
69
- const { getSlackApp } = await import("./app-1hh67x8w.js");
69
+ const { getSlackApp } = await import("./app-fq2ggynt.js");
70
70
  const app = getSlackApp();
71
71
  if (!app) {
72
72
  console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  runAgent
3
- } from "./cli-phsxnkp6.js";
3
+ } from "./cli-7evafqvy.js";
4
4
  import"./cli-xm87hzbw.js";
5
- import"./cli-e95cx1eb.js";
5
+ import"./cli-73gq0zxn.js";
6
6
  import"./cli-6664w7y4.js";
7
7
  import"./cli-hsxj0yar.js";
8
8
  import"./cli-9b13ggd1.js";
@@ -12,11 +12,11 @@ import"./cli-r94z9p1z.js";
12
12
  import"./cli-2djtr51b.js";
13
13
  import {
14
14
  getEnabledCapabilities
15
- } from "./cli-yb9qhqam.js";
15
+ } from "./cli-cv7s5zdq.js";
16
16
  import"./cli-0z2v4nhw.js";
17
17
  import"./cli-j490egb5.js";
18
- import"./cli-7smrsr25.js";
19
- import"./cli-cr12paw2.js";
18
+ import"./cli-k351hv5k.js";
19
+ import"./cli-tg8qj8ee.js";
20
20
  import"./cli-4wtq5jjv.js";
21
21
  import"./cli-b5b30yzk.js";
22
22
  import"./cli-jecc01cb.js";
@@ -27,40 +27,40 @@ import"./cli-s25avqg9.js";
27
27
  import"./cli-eree7rnv.js";
28
28
  import"./cli-xvkmedgn.js";
29
29
  import"./cli-4yc5d8fk.js";
30
- import"./cli-ygweqcn4.js";
31
- import"./cli-sd5pv3b1.js";
32
- import"./cli-9fy6nk6g.js";
33
- import"./cli-k0cr4kat.js";
30
+ import"./cli-7fehefdf.js";
31
+ import"./cli-7xx10h0a.js";
32
+ import"./cli-5m0qmvdp.js";
33
+ import"./cli-6skz3rk8.js";
34
34
  import"./cli-cmp8g3sw.js";
35
- import"./cli-19f354qr.js";
35
+ import"./cli-hzqmgcm2.js";
36
36
  import"./cli-qgm2pfpq.js";
37
- import"./cli-mnmsfd1w.js";
37
+ import"./cli-y3pq4v9g.js";
38
38
  import"./cli-07jd68a1.js";
39
- import"./cli-6pqcb4q0.js";
39
+ import"./cli-ddfw1mc4.js";
40
40
  import"./cli-1ebpar1q.js";
41
41
  import"./cli-e7d20cty.js";
42
42
  import"./cli-3dpj7atn.js";
43
- import"./cli-aae6hz6a.js";
43
+ import"./cli-svbrpf5q.js";
44
44
  import"./cli-epan13p1.js";
45
- import"./cli-2qts1hys.js";
46
- import"./cli-3q5ejx9p.js";
45
+ import"./cli-3z634pqe.js";
46
+ import"./cli-jezx9b9c.js";
47
47
  import"./cli-y89t4nca.js";
48
48
  import"./cli-f14fvzag.js";
49
49
  import"./cli-zvz62chv.js";
50
- import"./cli-9hspd3dp.js";
50
+ import"./cli-cd60fv6j.js";
51
51
  import"./cli-fad8m16k.js";
52
52
  import"./cli-aehm1rbq.js";
53
53
  import"./cli-bsakbbkm.js";
54
54
  import"./cli-51tf7ac3.js";
55
- import"./cli-kgz4np97.js";
55
+ import"./cli-sdzq01t9.js";
56
56
  import"./cli-jsp14b6c.js";
57
- import"./cli-gv88e1vf.js";
58
- import"./cli-q50ef8g0.js";
59
- import"./cli-d8ftsp62.js";
57
+ import"./cli-j4d4f6hv.js";
58
+ import"./cli-ayvy5kde.js";
59
+ import"./cli-3sysyjve.js";
60
60
  import"./cli-q51yprfq.js";
61
61
  import"./cli-9d8ntetj.js";
62
62
  import"./cli-yatxqynm.js";
63
- import"./cli-yab68w40.js";
63
+ import"./cli-qgd4sqz5.js";
64
64
  import"./cli-08b07b4r.js";
65
65
  import"./cli-3apbzgyk.js";
66
66
  import"./cli-e29gmdmw.js";
@@ -68,7 +68,7 @@ import"./cli-c2mk1kgf.js";
68
68
  import"./cli-ej6gbxfb.js";
69
69
  import"./cli-sd0mxa3c.js";
70
70
  import"./cli-w5e1d1vv.js";
71
- import"./cli-kjwt6hdf.js";
71
+ import"./cli-e06a8a7y.js";
72
72
  import"./cli-r2ap2czm.js";
73
73
  import"./cli-pzxba7gw.js";
74
74
  import"./cli-f7kvq46p.js";