@usine/server 0.4.1-next.246.gd1fd769 → 0.4.1-next.248.gfd4123b

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 (76) hide show
  1. package/README.md +2 -2
  2. package/dist/upgrade/control.d.ts +1 -0
  3. package/dist/upgrade/control.d.ts.map +1 -1
  4. package/dist/upgrade/control.js +14 -3
  5. package/dist/upgrade/control.js.map +1 -1
  6. package/dist/upgrade/helper.sh +25 -2
  7. package/dist/upgrade/platform.d.ts.map +1 -1
  8. package/dist/upgrade/platform.js +27 -1
  9. package/dist/upgrade/platform.js.map +1 -1
  10. package/dist/web/assets/_agent-BXkiRAfg.js +1 -0
  11. package/dist/web/assets/{_loop-jBpfyQNG.js → _loop-CYLQ_a4B.js} +1 -1
  12. package/dist/web/assets/{_name-eNxPexF-.js → _name-BBAT9Nsf.js} +1 -1
  13. package/dist/web/assets/{_name-veDl0IT4.js → _name-Bn2MDYBX.js} +1 -1
  14. package/dist/web/assets/_name-CmgIcFdy.js +1 -0
  15. package/dist/web/assets/_name-DTCXesPD.js +1 -0
  16. package/dist/web/assets/{_number-DevV6iSd.js → _number-BVdtjqd9.js} +1 -1
  17. package/dist/web/assets/_number-DTCXesPD.js +1 -0
  18. package/dist/web/assets/{_number-CZoMqNti.js → _number-G9mmEybO.js} +1 -1
  19. package/dist/web/assets/{_run-DCj-RGxL.js → _run-BWD6_E_I.js} +1 -1
  20. package/dist/web/assets/_run-DTCXesPD.js +1 -0
  21. package/dist/web/assets/{_worker-usJtUiYt.js → _worker-Cs8-042h.js} +1 -1
  22. package/dist/web/assets/{action-BAuLObbg.js → action-DiV8fR6j.js} +1 -1
  23. package/dist/web/assets/agents-B7VWXakg.js +1 -0
  24. package/dist/web/assets/{agents-Bgb6mjhR.js → agents-gBYo-6rq.js} +1 -1
  25. package/dist/web/assets/{collapsible-Bp8-mUJI.js → collapsible-CyXPxQ58.js} +1 -1
  26. package/dist/web/assets/{drawer-s-pFxLMa.js → drawer-XnCoHGDL.js} +1 -1
  27. package/dist/web/assets/{dropdown-menu-CSNGrjvw.js → dropdown-menu-9ThPB2Vn.js} +1 -1
  28. package/dist/web/assets/{edit-and-retry-Dkr9XvWO.js → edit-and-retry-BK-XY4Xi.js} +1 -1
  29. package/dist/web/assets/{error-alert-DUXD8kbU.js → error-alert-DLgCFo2-.js} +1 -1
  30. package/dist/web/assets/{file-error-BlOXQwPS.js → file-error-DpCgNrtS.js} +1 -1
  31. package/dist/web/assets/{heading-D7c8OQ_E.js → heading-DHV4sZ8C.js} +1 -1
  32. package/dist/web/assets/{index-8Vdgwdmm.js → index-X0VlRMdq.js} +3 -3
  33. package/dist/web/assets/{label-badge-C-jH968V.js → label-badge-BTquNkDG.js} +1 -1
  34. package/dist/web/assets/{list-CPIhN4K7.js → list-Cv6rzIS0.js} +1 -1
  35. package/dist/web/assets/loops-C4XdY2l7.js +1 -0
  36. package/dist/web/assets/{model-D0Gz-8_e.js → model-Dvz5vIXW.js} +1 -1
  37. package/dist/web/assets/{moves-IRUbTFxf.js → moves-Bhr6UZiC.js} +1 -1
  38. package/dist/web/assets/{not-found-p5k4wRrG.js → not-found-CDgqgf5H.js} +1 -1
  39. package/dist/web/assets/{outcome-DGSSeL-w.js → outcome-CaiOzt1W.js} +1 -1
  40. package/dist/web/assets/{overview-CgwcsnjJ.js → overview-BJ2nG5Gg.js} +1 -1
  41. package/dist/web/assets/{pull-request-marks-CSjUrwDG.js → pull-request-marks-DdrCqbvg.js} +1 -1
  42. package/dist/web/assets/queries-DZPcmOMn.js +1 -0
  43. package/dist/web/assets/{queries-cHegy0Wn.js → queries-DukDpdNB.js} +1 -1
  44. package/dist/web/assets/{reload-DXC1vasV.js → reload-BuCMRE_D.js} +1 -1
  45. package/dist/web/assets/{repositories-Cg9oyN3Q.js → repositories-CSvhdV19.js} +1 -1
  46. package/dist/web/assets/route-BOyDRaGG.js +1 -0
  47. package/dist/web/assets/route-Dizgkh9K.js +1 -0
  48. package/dist/web/assets/{routes-BQ2ryMx5.js → routes-CS7K3ACD.js} +1 -1
  49. package/dist/web/assets/routes-DTCXesPD.js +1 -0
  50. package/dist/web/assets/{run-again-Cx14u2v9.js → run-again-CXsSTd7G.js} +1 -1
  51. package/dist/web/assets/{section-B18e_1ho.js → section-CvZoyn6M.js} +1 -1
  52. package/dist/web/assets/{section-CanjSIxg.js → section-DP2WHuSs.js} +1 -1
  53. package/dist/web/assets/{settings-CpZDECeT.js → settings-DHS9Mo_A.js} +1 -1
  54. package/dist/web/assets/{strings-B-PkbFEH.js → strings-6C3hCm-3.js} +1 -1
  55. package/dist/web/assets/strings-Dk-NCuvO.js +302 -0
  56. package/dist/web/assets/{tasks-1oR8cQdY.js → tasks-BoElgjQN.js} +1 -1
  57. package/dist/web/assets/tasks-DTCXesPD.js +1 -0
  58. package/dist/web/assets/{usage-BQMRdhoe.js → usage-00UVkVju.js} +1 -1
  59. package/dist/web/assets/{useAnchoredPopupScrollLock-D4PeZ1dR.js → useAnchoredPopupScrollLock-B_Lpk7W5.js} +1 -1
  60. package/dist/web/assets/{usePositioner-CbCoZtLS.js → usePositioner-BKHmCHTb.js} +1 -1
  61. package/dist/web/assets/{workers-gfrPVlXm.js → workers-DN-Hs3Dr.js} +1 -1
  62. package/dist/web/index.html +8 -8
  63. package/package.json +11 -11
  64. package/dist/web/assets/_agent-B1s_k8Fy.js +0 -1
  65. package/dist/web/assets/_name-CTbomGk8.js +0 -1
  66. package/dist/web/assets/_name-DSOI6_ko.js +0 -1
  67. package/dist/web/assets/_number-CTbomGk8.js +0 -1
  68. package/dist/web/assets/_run-CTbomGk8.js +0 -1
  69. package/dist/web/assets/agents-DBZyvA7D.js +0 -1
  70. package/dist/web/assets/loops-0RwM72UO.js +0 -1
  71. package/dist/web/assets/queries-B7FBw33G.js +0 -1
  72. package/dist/web/assets/route-Cek50-4M.js +0 -1
  73. package/dist/web/assets/route-WFCgWhD-.js +0 -1
  74. package/dist/web/assets/routes-CTbomGk8.js +0 -1
  75. package/dist/web/assets/strings-IzLVLq5Y.js +0 -302
  76. package/dist/web/assets/tasks-CTbomGk8.js +0 -1
package/README.md CHANGED
@@ -107,8 +107,8 @@ Every Needs attention entry has **Dismiss**. The overview's collapsed **Dismisse
107
107
 
108
108
  ## Server upgrades
109
109
 
110
- A global npm installation managed by systemd checks for upgrades every five minutes. Run `usine config edit settings instance` to configure `settings.upgrade_channel: latest` or `next` and `settings.upgrade_mode: off`, `propose`, or `automatic`. The defaults are `latest` and `propose`.
110
+ A global npm installation managed by systemd checks for upgrades every five minutes. Run `usine config edit settings instance` to configure `settings.upgrade_channel: latest` or `next` and `settings.upgrade_mode: off`, `propose`, or `automatic`. The defaults are `latest` and `propose`. Before offering an upgrade or draining attempts, the server checks that every `@usine/*` dependency, including transitive dependencies, resolves on the registry. If a package is unavailable, the server keeps admitting attempts and checks again in the next cycle.
111
111
 
112
112
  In **Configuration → Settings**, select **Upgrade when idle** to stop admitting attempts and wait for active attempts to finish, or **Upgrade now** to restart and reattach running attempts. `usine upgrade [<version> | --channel <latest|next>]` requests the same operation; `--force` selects immediate restart, and `--check` only reports versions. The CLI prints when the request is accepted; Settings and the helper journal report its outcome.
113
113
 
114
- Install the helper service and polkit rule in the [server guide](https://docs.usine.dev/guides/run-the-orchestrator-on-a-server/) before using app upgrades. The independent helper installs into the same npm prefix and restores the previous version if installation or the new operator API fails. Its result is in `.usine/upgrade/result.json`; inspect `journalctl -u usine-upgrade.service` for progress. A rolled-back version is not retried automatically. Rollback restores packages; maintain database backups for releases with incompatible storage changes.
114
+ Install the helper service and polkit rule in the [server guide](https://docs.usine.dev/guides/run-the-orchestrator-on-a-server/) before using app upgrades. The independent helper installs into the same npm prefix and restores the previous version if installation or the new operator API fails. Its result is in `.usine/upgrade/result.json`; inspect `journalctl -u usine-upgrade.service` for progress. For npm `ETARGET` or `E404` errors, the helper tries installation up to three times, 60 seconds apart. After a successful rollback from an install failure, automatic mode can retry that version. A version that failed its health check, or whose rollback record does not identify the failure stage, requires a manual retry. Rollback restores packages; maintain database backups for releases with incompatible storage changes.
@@ -9,6 +9,7 @@ export declare class UpgradeError extends UpgradeError_base {
9
9
  }
10
10
  export interface UpgradePlatform {
11
11
  readonly lookup: (channel: UpgradeChannel) => Effect.Effect<ReleaseVersion, UpgradeError>;
12
+ readonly checkDependencies: (target: ReleaseVersion) => Effect.Effect<void, UpgradeError>;
12
13
  readonly preflight: Effect.Effect<void, UpgradeError>;
13
14
  readonly launch: (target: ReleaseVersion) => Effect.Effect<void, UpgradeError>;
14
15
  readonly outcome: Effect.Effect<Option.Option<UpgradeRecord>, UpgradeError>;
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/upgrade/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAO,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAGrE,qBAAa,YAAa,SAAQ,iBAGjC;CAAG;AAEJ,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;CAC7E;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC;IACnF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrC;;sBAKqB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;qBACrB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;sBACvC,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;;AALpF,qBAAa,cAAe,SAAQ,mBAOD;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAa,cAAc,+CACM;CACvD;AAYD,eAAO,MAAM,YAAY;;;;;uCAyMvB,CAAC"}
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/upgrade/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAO,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAGrE,qBAAa,YAAa,SAAQ,iBAGjC;CAAG;AAEJ,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC1F,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;CAC7E;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC;IACnF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrC;;sBAKqB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;qBACrB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;sBACvC,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;;AALpF,qBAAa,cAAe,SAAQ,mBAOD;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAa,cAAc,+CACM;CACvD;AAYD,eAAO,MAAM,YAAY;;;;;uCAoNvB,CAAC"}
@@ -87,7 +87,7 @@ export const makeUpgrades = Effect.fn("Server.makeUpgrades")(function* (options)
87
87
  return yield* new UpgradeError({
88
88
  message: "An upgrade was already requested. Restart the service if it failed.",
89
89
  });
90
- yield* platform.preflight.pipe(Effect.tapError((error) => Effect.logWarning("Upgrade preflight failed before draining", {
90
+ yield* platform.preflight.pipe(Effect.andThen(platform.checkDependencies(target.value)), Effect.tapError((error) => Effect.logWarning("Upgrade preflight failed before draining", {
91
91
  previous: options.running,
92
92
  target: target.value,
93
93
  reason: error.message,
@@ -126,14 +126,17 @@ export const makeUpgrades = Effect.fn("Server.makeUpgrades")(function* (options)
126
126
  });
127
127
  return;
128
128
  }
129
+ yield* Ref.set(available, Option.none());
129
130
  const target = yield* options.platform.value.lookup(settings.upgradeChannel);
130
131
  yield* Effect.annotateCurrentSpan({
131
132
  previous: options.running,
132
133
  target,
133
134
  channel: settings.upgradeChannel,
134
135
  });
135
- yield* Ref.set(checkError, Option.none());
136
136
  const newer = compareVersions(target, options.running) > 0;
137
+ if (newer)
138
+ yield* options.platform.value.checkDependencies(target);
139
+ yield* Ref.set(checkError, Option.none());
137
140
  yield* Ref.set(available, newer
138
141
  ? Option.some(new UpgradeCandidate({ channel: settings.upgradeChannel, version: target }))
139
142
  : Option.none());
@@ -144,12 +147,20 @@ export const makeUpgrades = Effect.fn("Server.makeUpgrades")(function* (options)
144
147
  newer,
145
148
  });
146
149
  const result = yield* outcome;
147
- const blocked = Option.exists(result, (record) => record.status === "installing" || (record.target === target && record.status !== "good"));
150
+ const blocked = Option.exists(result, (record) => record.status === "installing" ||
151
+ (record.target === target &&
152
+ (record.status === "failed" ||
153
+ (record.status === "rolled-back" && record.failureStage !== "install"))));
148
154
  const currentSettings = yield* options.settings;
149
155
  if (newer &&
150
156
  currentSettings.upgradeMode === "automatic" &&
151
157
  (yield* Ref.get(progress)).phase === "idle" &&
152
158
  !blocked) {
159
+ yield* Effect.logInfo("Automatic server upgrade requested", {
160
+ previous: options.running,
161
+ target,
162
+ outcome: result,
163
+ });
153
164
  yield* request(new UpgradeRequest({ timing: "idle", version: Option.none() }));
154
165
  }
155
166
  else if (newer && blocked) {
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/upgrade/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/upgrade/control.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ record() {
5
5
  if [ "$1" = installing ] || [ "$1" = good ]; then
6
6
  printf '{"previous":"%s","target":"%s","status":"%s"}\n' \
7
7
  "$previous" "$target" "$1" > "$folder/result.tmp"
8
+ elif [ "$1" = rolled-back ]; then
9
+ printf '{"previous":"%s","target":"%s","status":"%s","reason":"%s","failureStage":"%s"}\n' \
10
+ "$previous" "$target" "$1" "$2" "$failure_stage" > "$folder/result.tmp"
8
11
  else
9
12
  printf '{"previous":"%s","target":"%s","status":"%s","reason":"%s"}\n' \
10
13
  "$previous" "$target" "$1" "$2" > "$folder/result.tmp"
@@ -51,7 +54,25 @@ healthy() {
51
54
  }
52
55
 
53
56
  install_version() {
54
- timeout 5m npm install --global --prefix "$prefix" "@usine/server@$1"
57
+ local version=$1 attempt output exit_code
58
+ for ((attempt=1; attempt<=3; attempt++)); do
59
+ printf 'upgrade install version=%s attempt=%s\n' "$version" "$attempt"
60
+ if timeout 5m npm install --global --prefix "$prefix" "@usine/server@$version" > "$folder/install.log" 2>&1; then
61
+ cat "$folder/install.log"
62
+ return 0
63
+ else
64
+ exit_code=$?
65
+ fi
66
+ output=$(< "$folder/install.log")
67
+ printf '%s\n' "$output"
68
+ if [ "$exit_code" -eq 124 ] || [ "$attempt" -eq 3 ] || \
69
+ [[ ! "$output" =~ npm[[:space:]]+(ERR!|error)[[:space:]]+code[[:space:]]+(ETARGET|E404)($|[[:space:]]) ]]; then
70
+ printf 'upgrade install failed version=%s attempt=%s exit_code=%s\n' "$version" "$attempt" "$exit_code"
71
+ return 1
72
+ fi
73
+ printf 'upgrade install retry version=%s attempt=%s delay_seconds=60\n' "$version" "$attempt"
74
+ sleep 60
75
+ done
55
76
  }
56
77
 
57
78
  # The lock is outside node_modules and survives replacement of the package.
@@ -63,14 +84,16 @@ if ! stop_server; then
63
84
  exit 1
64
85
  fi
65
86
  reason='The package could not be installed.'
87
+ failure_stage=install
66
88
  if install_version "$target"; then
67
89
  reason='The new server did not answer the operator API within three minutes.'
90
+ failure_stage=health-check
68
91
  if timeout 30s systemctl start "$unit" && healthy "$target"; then
69
92
  record good ''
70
93
  exit 0
71
94
  fi
72
95
  fi
73
- printf 'upgrade rollback previous=%s target=%s reason=%s\n' "$previous" "$target" "$reason"
96
+ printf 'upgrade rollback previous=%s target=%s failure_stage=%s reason=%s\n' "$previous" "$target" "$failure_stage" "$reason"
74
97
  if stop_server && install_version "$previous" && timeout 30s systemctl start "$unit" && healthy "$previous"; then
75
98
  record rolled-back "$reason"
76
99
  else
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/upgrade/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAG5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAMlE,eAAO,MAAM,qBAAqB,8PA0GhC,CAAC"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/upgrade/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAG5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAMlE,eAAO,MAAM,qBAAqB,8PA+IhC,CAAC"}
@@ -6,7 +6,7 @@ import { Effect, FileSystem, Option, Schema } from "effect";
6
6
  import { runCommand } from "../command.js";
7
7
  import { realPathOrSelf, SERVER_PACKAGE } from "../instance/manifest.js";
8
8
  import { SystemdUnit, supervisingUnit, systemctl, unitState } from "../instance/systemd.js";
9
- import { resolveVersion } from "../registry.js";
9
+ import { dependenciesOf, resolveVersion } from "../registry.js";
10
10
  import { UpgradeError } from "./control.js";
11
11
  const failure = (error) => new UpgradeError({ message: error.message });
12
12
  const quote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
@@ -25,6 +25,31 @@ export const systemUpgradePlatform = Effect.fn("Server.systemUpgradePlatform")(f
25
25
  const fs = yield* FileSystem.FileSystem;
26
26
  const folder = join(directory, ".usine", "upgrade");
27
27
  const resultPath = join(folder, "result.json");
28
+ const checkDependencies = Effect.fn("Server.checkUpgradeDependencies")(function* (target) {
29
+ yield* Effect.annotateCurrentSpan({ previous, target });
30
+ const pending = [[SERVER_PACKAGE, target]];
31
+ const checked = new Set();
32
+ for (const [name, spec] of pending) {
33
+ const key = `${name}@${spec}`;
34
+ if (checked.has(key))
35
+ continue;
36
+ checked.add(key);
37
+ const version = yield* resolveVersion(directory, name, spec);
38
+ const dependencies = yield* dependenciesOf(directory, name, version);
39
+ pending.push(...Object.entries(dependencies).filter(([name]) => name.startsWith("@usine/")));
40
+ }
41
+ yield* Effect.logInfo("Server upgrade dependencies are available", {
42
+ previous,
43
+ target,
44
+ packages: checked.size,
45
+ });
46
+ }, Effect.catchTag("PackageLookupError", (error) => Effect.logInfo("Server upgrade waits for registry packages", {
47
+ package: error.name,
48
+ spec: error.spec,
49
+ reason: error.reason,
50
+ }).pipe(Effect.andThen(new UpgradeError({
51
+ message: `Waiting for ${error.name}@${error.spec} on the registry: ${error.reason}`,
52
+ })))));
28
53
  const readOutcome = Effect.gen(function* () {
29
54
  if (!(yield* fs.exists(resultPath)))
30
55
  return Option.none();
@@ -82,6 +107,7 @@ export const systemUpgradePlatform = Effect.fn("Server.systemUpgradePlatform")(f
82
107
  });
83
108
  }, Effect.mapError(failure));
84
109
  return Option.some({
110
+ checkDependencies: (target) => checkDependencies(target).pipe(Effect.annotateLogs({ previous, target }), provideSpawner),
85
111
  preflight: preflight().pipe(provideSpawner),
86
112
  outcome: outcome.pipe(provideSpawner),
87
113
  launch: (target) => launch(target).pipe(provideSpawner),
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/upgrade/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAwB,MAAM,cAAc,CAAC;AAElE,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAE,EAAE,CACtD,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAEvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,EACtF,SAA4B,EAC5B,MAAsB;IAEtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;IAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACtE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzB,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,8CAA8C,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,EAAmB,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;IAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CACrF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzB,CAAC;IACF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,EAAiB,CAAC;QACzE,OAAO,MAAM,CAAC,IAAI,CAChB,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CACrE,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EACpC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAC9B,CACF,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC,IAAI,CAChB,aAAa,CAAC,IAAI,CAAC;oBACjB,GAAG,MAAM,CAAC,KAAK;oBACf,MAAM,EAAE,QAAQ;oBAChB,MAAM,EACJ,oFAAoF;iBACvF,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC;QAC9D,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAC3F,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CACzB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC;gBAC7B,OAAO,EAAE,WAAW,UAAU,oEAAoE;aACnG,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,CAAC,UAAU,CACf,MAAM,EACN;YACE,IAAI;YACJ,sKAAsK;SACvK,EACD,SAAS,EACT,YAAY,CACb,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAsB;QACtF,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,MAAM;YACN,QAAQ;YACR,MAAM;YACN,MAAM;YACN,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;SACjC,CAAC;aACC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,SAAS,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CACvB,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,EAC9E,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QACF,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACtD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE;YAC9D,QAAQ;YACR,MAAM;YACN,IAAI,EAAE,UAAU;YAChB,MAAM;SACP,CAAC,CAAC;IACL,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,SAAS,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;QACrC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QACvD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,EAC1D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EACxB,cAAc,CACf;KACsB,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/upgrade/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{r as e}from"./useRouter-Hur3RN7j.js";import{a as t}from"./page-BuzrT_cg.js";import{n}from"./queries-DZPcmOMn.js";import{l as r}from"./index-X0VlRMdq.js";import{t as i}from"./agents-gBYo-6rq.js";var a=e(),o=()=>{let{agent:e}=r.useParams(),{data:o}=t(n());return(0,a.jsx)(i,{name:e,configuration:o})};export{o as component};
@@ -1 +1 @@
1
- import{r as e}from"./useRouter-Hur3RN7j.js";import{a as t}from"./page-BuzrT_cg.js";import{t as n}from"./error-alert-DUXD8kbU.js";import{t as r}from"./link-C7GfYrMt.js";import{n as i,r as a}from"./list-CPIhN4K7.js";import{n as o,nt as s}from"./strings-IzLVLq5Y.js";import{n as c}from"./queries-B7FBw33G.js";import{C as l,S as u,c as d,f,g as p,xt as m,yt as h}from"./index-8Vdgwdmm.js";import{t as g}from"./markdown-BNebzGGH.js";import{t as _}from"./file-error-BlOXQwPS.js";import{a as v,c as y,i as b,n as x,o as S,r as C,s as w,t as T,u as E}from"./section-CanjSIxg.js";var D=e(),O=({repository:e})=>{let{owner:t,name:n}=s(e);return(0,D.jsxs)(r,{to:`/configuration/repositories/$owner/$name`,params:{owner:t,name:n},className:`flex w-fit items-center gap-2 text-primary hover:underline`,children:[(0,D.jsx)(h,{repository:e}),e]})},k=({loop:e,configuration:t})=>{let n=t.agents.find(({name:t})=>t===e.agent);return(0,D.jsxs)(v,{children:[(0,D.jsxs)(b,{label:`Agent`,children:[(0,D.jsx)(r,{to:`/configuration/agents/$agent`,params:{agent:e.agent},className:`text-primary hover:underline`,children:e.agent}),n!==void 0&&(0,D.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:o(n)})]}),(0,D.jsx)(b,{label:`Repositories`,children:e.repositories.length===0?(0,D.jsx)(E,{children:`No registered repository matches the selector`}):(0,D.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.repositories.map(e=>(0,D.jsx)(`li`,{children:(0,D.jsx)(O,{repository:e})},e))})}),(0,D.jsx)(b,{label:`Approval`,children:p[e.approval]}),(0,D.jsxs)(b,{label:`Max cycles`,children:[(0,D.jsx)(`span`,{className:`tabular-nums`,children:e.maxCycles}),` `,(0,D.jsx)(E,{children:`runs per item before a reset`})]}),(0,D.jsx)(b,{label:`Permissions`,children:u[e.permissions]}),(0,D.jsx)(b,{label:`Priority`,children:e.priority===null?(0,D.jsx)(E,{children:`None; runs wait in lane order`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:`tabular-nums`,children:e.priority}),` `,(0,D.jsx)(E,{children:`queued ahead of runs in lane order`})]})}),(0,D.jsx)(b,{label:`Step`,children:(0,D.jsx)(`code`,{className:`font-mono text-xs`,children:e.step})})]})},A=/\{\{([\s\S]*?)\}\}/gu,j=e=>[...e.matchAll(A)].map(([,e=``])=>e.trim()),M=e=>{let t=e.value??``,n=[],r=0;for(let e of t.matchAll(A))e.index>r&&n.push({type:`text`,value:t.slice(r,e.index)}),n.push({type:`inlineCode`,value:(e[1]??``).trim(),data:{hName:`mark`}}),r=e.index+e[0].length;return n.length===0?[e]:(r<t.length&&n.push({type:`text`,value:t.slice(r)}),n)},N=e=>{e.children!==void 0&&(e.children=e.children.flatMap(e=>e.type===`text`?M(e):(N(e),[e])))},P=()=>N,F=({children:e})=>(0,D.jsx)(`mark`,{className:`bg-transparent p-0 text-inherit`,title:`Filled in from the item when a run opens`,children:(0,D.jsxs)(`code`,{className:`bg-transparent [font-variant-ligatures:none] ring-1 ring-input ring-inset [box-decoration-break:clone]`,children:[(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:`{{\xA0`}),e,(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:`\xA0}}`})]})}),I=({template:e})=>(0,D.jsx)(g,{className:`max-w-[72ch] text-md`,remarkPlugins:[P],components:{mark:F},children:e}),L=e=>[[`on`,e.stream],[`if`,e.condition],...e.cron===null?[]:[[`cron`,e.cron]],...e.timeZone===null?[]:[[`tz`,e.timeZone]]],R=({repos:e,tags:t})=>[...e===null?[]:[[`repos`,e.join(`, `)]],...t===null?[]:[[`tags`,t.join(`, `)]]],z=({loop:e,configuration:t,pause:r})=>{let o=j(e.prompt).length;return(0,D.jsxs)(T,{title:e.name,marks:(0,D.jsx)(a,{paused:e.paused}),file:e.file,actions:r!==null&&(0,D.jsx)(i,{loop:e,pause:r,variant:`outline`}),children:[r?.isError===!0&&(0,D.jsx)(n,{message:r.error.message}),(0,D.jsxs)(x,{facts:(0,D.jsx)(k,{loop:e,configuration:t}),children:[(0,D.jsxs)(C,{title:`Trigger`,children:[(0,D.jsx)(S,{entries:L(e)}),e.undeclaredLabels.length>0&&(0,D.jsxs)(`p`,{className:`flex items-start gap-1.5 text-xs text-muted-foreground`,children:[(0,D.jsx)(m,{weight:`fill`,className:`mt-0.5 size-3 shrink-0 text-warning`}),(0,D.jsxs)(`span`,{children:[`Condition uses`,` `,e.undeclaredLabels.length===1?`an undeclared label`:`undeclared labels`,`:`,` `,e.undeclaredLabels.join(`, `),`. usine creates only the labels under`,` `,(0,D.jsx)(`code`,{children:`labels`}),` in `,(0,D.jsx)(`code`,{children:`usine.yaml`}),`.`]})]})]}),(0,D.jsx)(C,{title:`Selector`,children:e.selector===null?(0,D.jsx)(`p`,{className:`text-muted-foreground`,children:`No selector: every registered repository`}):(0,D.jsx)(S,{entries:R(e.selector)})}),(0,D.jsx)(C,{title:`Prompt`,aside:o===0?`Same text for every run`:`${l(o,`outlined expression`)} filled in from each item`,children:(0,D.jsx)(I,{template:e.prompt})})]})]})},B=({name:e,configuration:t,pause:n})=>{let i=t.loops.find(t=>t.name===e);if(i!==void 0)return(0,D.jsx)(z,{loop:i,configuration:t,pause:n});let a=t.quarantinedLoops.find(t=>t.name===e);return a===void 0?(0,D.jsx)(T,{title:e,children:(0,D.jsxs)(w,{title:`Loop not found`,children:[`The configuration has no file `,(0,D.jsxs)(`code`,{children:[`loops/`,e,`.md`]}),`.`,` `,(0,D.jsx)(r,{to:`/configuration/loops`,className:`text-primary hover:underline`,children:`See all loops`}),`.`]})}):(0,D.jsx)(T,{title:a.name,marks:(0,D.jsx)(y,{}),file:a.file,children:(0,D.jsx)(_,{error:a.error,consequence:`No runs until the file loads.`})})},V=()=>{let{loop:e}=d.useParams(),{data:n}=t(c());return(0,D.jsx)(B,{name:e,configuration:n,pause:f()})};export{V as component};
1
+ import{r as e}from"./useRouter-Hur3RN7j.js";import{a as t}from"./page-BuzrT_cg.js";import{t as n}from"./error-alert-DLgCFo2-.js";import{t as r}from"./link-C7GfYrMt.js";import{n as i,r as a}from"./list-Cv6rzIS0.js";import{n as o,nt as s}from"./strings-Dk-NCuvO.js";import{n as c}from"./queries-DZPcmOMn.js";import{C as l,S as u,c as d,f,g as p,xt as m,yt as h}from"./index-X0VlRMdq.js";import{t as g}from"./markdown-BNebzGGH.js";import{t as _}from"./file-error-DpCgNrtS.js";import{a as v,c as y,i as b,n as x,o as S,r as C,s as w,t as T,u as E}from"./section-DP2WHuSs.js";var D=e(),O=({repository:e})=>{let{owner:t,name:n}=s(e);return(0,D.jsxs)(r,{to:`/configuration/repositories/$owner/$name`,params:{owner:t,name:n},className:`flex w-fit items-center gap-2 text-primary hover:underline`,children:[(0,D.jsx)(h,{repository:e}),e]})},k=({loop:e,configuration:t})=>{let n=t.agents.find(({name:t})=>t===e.agent);return(0,D.jsxs)(v,{children:[(0,D.jsxs)(b,{label:`Agent`,children:[(0,D.jsx)(r,{to:`/configuration/agents/$agent`,params:{agent:e.agent},className:`text-primary hover:underline`,children:e.agent}),n!==void 0&&(0,D.jsx)(`p`,{className:`mt-0.5 font-mono text-xs text-muted-foreground`,children:o(n)})]}),(0,D.jsx)(b,{label:`Repositories`,children:e.repositories.length===0?(0,D.jsx)(E,{children:`No registered repository matches the selector`}):(0,D.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.repositories.map(e=>(0,D.jsx)(`li`,{children:(0,D.jsx)(O,{repository:e})},e))})}),(0,D.jsx)(b,{label:`Approval`,children:p[e.approval]}),(0,D.jsxs)(b,{label:`Max cycles`,children:[(0,D.jsx)(`span`,{className:`tabular-nums`,children:e.maxCycles}),` `,(0,D.jsx)(E,{children:`runs per item before a reset`})]}),(0,D.jsx)(b,{label:`Permissions`,children:u[e.permissions]}),(0,D.jsx)(b,{label:`Priority`,children:e.priority===null?(0,D.jsx)(E,{children:`None; runs wait in lane order`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:`tabular-nums`,children:e.priority}),` `,(0,D.jsx)(E,{children:`queued ahead of runs in lane order`})]})}),(0,D.jsx)(b,{label:`Step`,children:(0,D.jsx)(`code`,{className:`font-mono text-xs`,children:e.step})})]})},A=/\{\{([\s\S]*?)\}\}/gu,j=e=>[...e.matchAll(A)].map(([,e=``])=>e.trim()),M=e=>{let t=e.value??``,n=[],r=0;for(let e of t.matchAll(A))e.index>r&&n.push({type:`text`,value:t.slice(r,e.index)}),n.push({type:`inlineCode`,value:(e[1]??``).trim(),data:{hName:`mark`}}),r=e.index+e[0].length;return n.length===0?[e]:(r<t.length&&n.push({type:`text`,value:t.slice(r)}),n)},N=e=>{e.children!==void 0&&(e.children=e.children.flatMap(e=>e.type===`text`?M(e):(N(e),[e])))},P=()=>N,F=({children:e})=>(0,D.jsx)(`mark`,{className:`bg-transparent p-0 text-inherit`,title:`Filled in from the item when a run opens`,children:(0,D.jsxs)(`code`,{className:`bg-transparent [font-variant-ligatures:none] ring-1 ring-input ring-inset [box-decoration-break:clone]`,children:[(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:`{{\xA0`}),e,(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:`\xA0}}`})]})}),I=({template:e})=>(0,D.jsx)(g,{className:`max-w-[72ch] text-md`,remarkPlugins:[P],components:{mark:F},children:e}),L=e=>[[`on`,e.stream],[`if`,e.condition],...e.cron===null?[]:[[`cron`,e.cron]],...e.timeZone===null?[]:[[`tz`,e.timeZone]]],R=({repos:e,tags:t})=>[...e===null?[]:[[`repos`,e.join(`, `)]],...t===null?[]:[[`tags`,t.join(`, `)]]],z=({loop:e,configuration:t,pause:r})=>{let o=j(e.prompt).length;return(0,D.jsxs)(T,{title:e.name,marks:(0,D.jsx)(a,{paused:e.paused}),file:e.file,actions:r!==null&&(0,D.jsx)(i,{loop:e,pause:r,variant:`outline`}),children:[r?.isError===!0&&(0,D.jsx)(n,{message:r.error.message}),(0,D.jsxs)(x,{facts:(0,D.jsx)(k,{loop:e,configuration:t}),children:[(0,D.jsxs)(C,{title:`Trigger`,children:[(0,D.jsx)(S,{entries:L(e)}),e.undeclaredLabels.length>0&&(0,D.jsxs)(`p`,{className:`flex items-start gap-1.5 text-xs text-muted-foreground`,children:[(0,D.jsx)(m,{weight:`fill`,className:`mt-0.5 size-3 shrink-0 text-warning`}),(0,D.jsxs)(`span`,{children:[`Condition uses`,` `,e.undeclaredLabels.length===1?`an undeclared label`:`undeclared labels`,`:`,` `,e.undeclaredLabels.join(`, `),`. usine creates only the labels under`,` `,(0,D.jsx)(`code`,{children:`labels`}),` in `,(0,D.jsx)(`code`,{children:`usine.yaml`}),`.`]})]})]}),(0,D.jsx)(C,{title:`Selector`,children:e.selector===null?(0,D.jsx)(`p`,{className:`text-muted-foreground`,children:`No selector: every registered repository`}):(0,D.jsx)(S,{entries:R(e.selector)})}),(0,D.jsx)(C,{title:`Prompt`,aside:o===0?`Same text for every run`:`${l(o,`outlined expression`)} filled in from each item`,children:(0,D.jsx)(I,{template:e.prompt})})]})]})},B=({name:e,configuration:t,pause:n})=>{let i=t.loops.find(t=>t.name===e);if(i!==void 0)return(0,D.jsx)(z,{loop:i,configuration:t,pause:n});let a=t.quarantinedLoops.find(t=>t.name===e);return a===void 0?(0,D.jsx)(T,{title:e,children:(0,D.jsxs)(w,{title:`Loop not found`,children:[`The configuration has no file `,(0,D.jsxs)(`code`,{children:[`loops/`,e,`.md`]}),`.`,` `,(0,D.jsx)(r,{to:`/configuration/loops`,className:`text-primary hover:underline`,children:`See all loops`}),`.`]})}):(0,D.jsx)(T,{title:a.name,marks:(0,D.jsx)(y,{}),file:a.file,children:(0,D.jsx)(_,{error:a.error,consequence:`No runs until the file loads.`})})},V=()=>{let{loop:e}=d.useParams(),{data:n}=t(c());return(0,D.jsx)(B,{name:e,configuration:n,pause:f()})};export{V as component};
@@ -1,4 +1,4 @@
1
- import{i as e,r as t,s as n}from"./useRouter-Hur3RN7j.js";import{a as r,i}from"./page-BuzrT_cg.js";import{t as a}from"./error-alert-DUXD8kbU.js";import{i as o,n as s,t as c}from"./queries-cHegy0Wn.js";import{_ as l,m as u,n as d,r as f,v as p,x as m,y as h}from"./overview-CgwcsnjJ.js";import{t as g}from"./link-C7GfYrMt.js";import{p as _}from"./useTimeout-BC05Ghyu.js";import{a as v,i as y,n as b,o as x,r as S,s as C,t as w}from"./moves-IRUbTFxf.js";import{a as ee,c as T,d as E,i as D,l as O,n as te,o as ne,r as k,s as A,t as re,u as ie}from"./dropdown-menu-CSNGrjvw.js";import{D as j,W as ae,t as M}from"./button-4rhhIcK8.js";import{V as oe,f as N,s as se}from"./strings-IzLVLq5Y.js";import{$ as P,J as F,Ot as I,Q as ce,X as L,Y as le,Z as ue,a as de,at as R,et as fe,it as pe,nt as me,rt as he,tt as ge,yt as _e}from"./index-8Vdgwdmm.js";import{t as z}from"./use-now-vNgLntlV.js";import{n as B,r as ve,t as ye}from"./status-badge-CLPsMXtK.js";import{a as V,i as H,n as be,o as xe,r as U,t as Se}from"./table-hbKjhjeL.js";import{n as Ce,t as we}from"./label-badge-C-jH968V.js";import{t as Te}from"./action-BAuLObbg.js";import{f as Ee,o as De,u as Oe}from"./model-D0Gz-8_e.js";import{n as ke,t as Ae}from"./strings-B-PkbFEH.js";import{t as je}from"./project-not-found-CutZoVCI.js";var W=n(e(),1),Me=new Map([[`bold`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M204,64V168a12,12,0,0,1-24,0V93L72.49,200.49a12,12,0,0,1-17-17L163,76H88a12,12,0,0,1,0-24H192A12,12,0,0,1,204,64Z`}))],[`duotone`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M192,64V168L88,64Z`,opacity:`0.2`}),W.createElement(`path`,{d:`M192,56H88a8,8,0,0,0-5.66,13.66L128.69,116,58.34,186.34a8,8,0,0,0,11.32,11.32L140,127.31l46.34,46.35A8,8,0,0,0,200,168V64A8,8,0,0,0,192,56Zm-8,92.69-38.34-38.34h0L107.31,72H184Z`}))],[`fill`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M200,64V168a8,8,0,0,1-13.66,5.66L140,127.31,69.66,197.66a8,8,0,0,1-11.32-11.32L128.69,116,82.34,69.66A8,8,0,0,1,88,56H192A8,8,0,0,1,200,64Z`}))],[`light`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M198,64V168a6,6,0,0,1-12,0V78.48L68.24,196.24a6,6,0,0,1-8.48-8.48L177.52,70H88a6,6,0,0,1,0-12H192A6,6,0,0,1,198,64Z`}))],[`regular`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M200,64V168a8,8,0,0,1-16,0V83.31L69.66,197.66a8,8,0,0,1-11.32-11.32L172.69,72H88a8,8,0,0,1,0-16H192A8,8,0,0,1,200,64Z`}))],[`thin`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M196,64V168a4,4,0,0,1-8,0V73.66L66.83,194.83a4,4,0,0,1-5.66-5.66L182.34,68H88a4,4,0,0,1,0-8H192A4,4,0,0,1,196,64Z`}))]]),Ne=new Map([[`bold`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M140,40V216a12,12,0,0,1-24,0V40a12,12,0,0,1,24,0ZM64.49,87.51a12,12,0,0,0-17,17L59,116H16a12,12,0,0,0,0,24H59L47.51,151.51a12,12,0,0,0,17,17l32-32a12,12,0,0,0,0-17ZM240,116H197l11.52-11.51a12,12,0,0,0-17-17l-32,32a12,12,0,0,0,0,17l32,32a12,12,0,0,0,17-17L197,140h43a12,12,0,0,0,0-24Z`}))],[`duotone`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M240,56V200a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V56A16,16,0,0,1,32,40H224A16,16,0,0,1,240,56Z`,opacity:`0.2`}),W.createElement(`path`,{d:`M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM69.66,90.34a8,8,0,0,0-11.32,11.32L76.69,120H16a8,8,0,0,0,0,16H76.69L58.34,154.34a8,8,0,0,0,11.32,11.32l32-32a8,8,0,0,0,0-11.32ZM240,120H179.31l18.35-18.34a8,8,0,0,0-11.32-11.32l-32,32a8,8,0,0,0,0,11.32l32,32a8,8,0,0,0,11.32-11.32L179.31,136H240a8,8,0,0,0,0-16Z`}))],[`fill`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M101.66,122.34a8,8,0,0,1,0,11.32l-32,32A8,8,0,0,1,56,160V136H16a8,8,0,0,1,0-16H56V96a8,8,0,0,1,13.66-5.66ZM240,120H200V96a8,8,0,0,0-13.66-5.66l-32,32a8,8,0,0,0,0,11.32l32,32A8,8,0,0,0,200,160V136h40a8,8,0,0,0,0-16ZM128,32a8,8,0,0,0-8,8V216a8,8,0,0,0,16,0V40A8,8,0,0,0,128,32Z`}))],[`light`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M134,40V216a6,6,0,0,1-12,0V40a6,6,0,0,1,12,0ZM68.24,91.76a6,6,0,0,0-8.48,8.48L81.51,122H16a6,6,0,0,0,0,12H81.51L59.76,155.76a6,6,0,1,0,8.48,8.48l32-32a6,6,0,0,0,0-8.48ZM240,122H174.49l21.75-21.76a6,6,0,0,0-8.48-8.48l-32,32a6,6,0,0,0,0,8.48l32,32a6,6,0,0,0,8.48-8.48L174.49,134H240a6,6,0,0,0,0-12Z`}))],[`regular`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM69.66,90.34a8,8,0,0,0-11.32,11.32L76.69,120H16a8,8,0,0,0,0,16H76.69L58.34,154.34a8,8,0,0,0,11.32,11.32l32-32a8,8,0,0,0,0-11.32ZM240,120H179.31l18.35-18.34a8,8,0,0,0-11.32-11.32l-32,32a8,8,0,0,0,0,11.32l32,32a8,8,0,0,0,11.32-11.32L179.31,136H240a8,8,0,0,0,0-16Z`}))],[`thin`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M132,40V216a4,4,0,0,1-8,0V40a4,4,0,0,1,8,0ZM66.83,93.17a4,4,0,0,0-5.66,5.66L86.34,124H16a4,4,0,0,0,0,8H86.34L61.17,157.17a4,4,0,0,0,5.66,5.66l32-32a4,4,0,0,0,0-5.66ZM240,124H169.66l25.17-25.17a4,4,0,1,0-5.66-5.66l-32,32a4,4,0,0,0,0,5.66l32,32a4,4,0,0,0,5.66-5.66L169.66,132H240a4,4,0,0,0,0-8Z`}))]]),Pe=W.forwardRef((e,t)=>W.createElement(ae,{ref:t,...e,weights:Me}));Pe.displayName=`ArrowUpRightIcon`;var Fe=W.forwardRef((e,t)=>W.createElement(ae,{ref:t,...e,weights:Ne}));Fe.displayName=`ArrowsInLineHorizontalIcon`;var Ie=n(_());function Le(){var e=[...arguments];return(0,W.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Re=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function ze(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Be(e){return`nodeType`in e}function G(e){return e?ze(e)?e:Be(e)?e.ownerDocument?.defaultView??window:window:window}function Ve(e){let{Document:t}=G(e);return e instanceof t}function He(e){return!ze(e)&&e instanceof G(e).HTMLElement}function Ue(e){return e instanceof G(e).SVGElement}function We(e){return e?ze(e)?e.document:Be(e)?Ve(e)?e:He(e)||Ue(e)?e.ownerDocument:document:document:document}var K=Re?W.useLayoutEffect:W.useEffect;function Ge(e){let t=(0,W.useRef)(e);return K(()=>{t.current=e}),(0,W.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Ke(){let e=(0,W.useRef)(null);return[(0,W.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,W.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function qe(e,t){t===void 0&&(t=[e]);let n=(0,W.useRef)(e);return K(()=>{n.current!==e&&(n.current=e)},t),n}function Je(e,t){let n=(0,W.useRef)();return(0,W.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Ye(e){let t=Ge(e),n=(0,W.useRef)(null);return[n,(0,W.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Xe(e){let t=(0,W.useRef)();return(0,W.useEffect)(()=>{t.current=e},[e]),t.current}var Ze={};function Qe(e,t){return(0,W.useMemo)(()=>{if(t)return t;let n=Ze[e]==null?0:Ze[e]+1;return Ze[e]=n,e+`-`+n},[e,t])}function $e(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var et=$e(1),tt=$e(-1);function nt(e){return`clientX`in e&&`clientY`in e}function rt(e){if(!e)return!1;let{KeyboardEvent:t}=G(e.target);return t&&e instanceof t}function it(e){if(!e)return!1;let{TouchEvent:t}=G(e.target);return t&&e instanceof t}function at(e){if(it(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return nt(e)?{x:e.clientX,y:e.clientY}:null}var q=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[q.Translate.toString(e),q.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),ot=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function st(e){return e.matches(ot)?e:e.querySelector(ot)}var ct={display:`none`};function lt(e){let{id:t,value:n}=e;return W.createElement(`div`,{id:t,style:ct},n)}function ut(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return W.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function dt(){let[e,t]=(0,W.useState)(``);return{announce:(0,W.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var ft=(0,W.createContext)(null);function pt(e){let t=(0,W.useContext)(ft);(0,W.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function mt(){let[e]=(0,W.useState)(()=>new Set),t=(0,W.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,W.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var ht={draggable:`
1
+ import{i as e,r as t,s as n}from"./useRouter-Hur3RN7j.js";import{a as r,i}from"./page-BuzrT_cg.js";import{t as a}from"./error-alert-DLgCFo2-.js";import{i as o,n as s,t as c}from"./queries-DukDpdNB.js";import{_ as l,m as u,n as d,r as f,v as p,x as m,y as h}from"./overview-BJ2nG5Gg.js";import{t as g}from"./link-C7GfYrMt.js";import{p as _}from"./useTimeout-BC05Ghyu.js";import{a as v,i as y,n as b,o as x,r as S,s as C,t as w}from"./moves-Bhr6UZiC.js";import{a as ee,c as T,d as E,i as D,l as O,n as te,o as ne,r as k,s as A,t as re,u as ie}from"./dropdown-menu-9ThPB2Vn.js";import{D as j,W as ae,t as M}from"./button-4rhhIcK8.js";import{V as oe,f as N,s as se}from"./strings-Dk-NCuvO.js";import{$ as P,J as F,Ot as I,Q as ce,X as L,Y as le,Z as ue,a as de,at as R,et as fe,it as pe,nt as me,rt as he,tt as ge,yt as _e}from"./index-X0VlRMdq.js";import{t as z}from"./use-now-vNgLntlV.js";import{n as B,r as ve,t as ye}from"./status-badge-CLPsMXtK.js";import{a as V,i as H,n as be,o as xe,r as U,t as Se}from"./table-hbKjhjeL.js";import{n as Ce,t as we}from"./label-badge-BTquNkDG.js";import{t as Te}from"./action-DiV8fR6j.js";import{f as Ee,o as De,u as Oe}from"./model-Dvz5vIXW.js";import{n as ke,t as Ae}from"./strings-6C3hCm-3.js";import{t as je}from"./project-not-found-CutZoVCI.js";var W=n(e(),1),Me=new Map([[`bold`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M204,64V168a12,12,0,0,1-24,0V93L72.49,200.49a12,12,0,0,1-17-17L163,76H88a12,12,0,0,1,0-24H192A12,12,0,0,1,204,64Z`}))],[`duotone`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M192,64V168L88,64Z`,opacity:`0.2`}),W.createElement(`path`,{d:`M192,56H88a8,8,0,0,0-5.66,13.66L128.69,116,58.34,186.34a8,8,0,0,0,11.32,11.32L140,127.31l46.34,46.35A8,8,0,0,0,200,168V64A8,8,0,0,0,192,56Zm-8,92.69-38.34-38.34h0L107.31,72H184Z`}))],[`fill`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M200,64V168a8,8,0,0,1-13.66,5.66L140,127.31,69.66,197.66a8,8,0,0,1-11.32-11.32L128.69,116,82.34,69.66A8,8,0,0,1,88,56H192A8,8,0,0,1,200,64Z`}))],[`light`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M198,64V168a6,6,0,0,1-12,0V78.48L68.24,196.24a6,6,0,0,1-8.48-8.48L177.52,70H88a6,6,0,0,1,0-12H192A6,6,0,0,1,198,64Z`}))],[`regular`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M200,64V168a8,8,0,0,1-16,0V83.31L69.66,197.66a8,8,0,0,1-11.32-11.32L172.69,72H88a8,8,0,0,1,0-16H192A8,8,0,0,1,200,64Z`}))],[`thin`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M196,64V168a4,4,0,0,1-8,0V73.66L66.83,194.83a4,4,0,0,1-5.66-5.66L182.34,68H88a4,4,0,0,1,0-8H192A4,4,0,0,1,196,64Z`}))]]),Ne=new Map([[`bold`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M140,40V216a12,12,0,0,1-24,0V40a12,12,0,0,1,24,0ZM64.49,87.51a12,12,0,0,0-17,17L59,116H16a12,12,0,0,0,0,24H59L47.51,151.51a12,12,0,0,0,17,17l32-32a12,12,0,0,0,0-17ZM240,116H197l11.52-11.51a12,12,0,0,0-17-17l-32,32a12,12,0,0,0,0,17l32,32a12,12,0,0,0,17-17L197,140h43a12,12,0,0,0,0-24Z`}))],[`duotone`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M240,56V200a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V56A16,16,0,0,1,32,40H224A16,16,0,0,1,240,56Z`,opacity:`0.2`}),W.createElement(`path`,{d:`M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM69.66,90.34a8,8,0,0,0-11.32,11.32L76.69,120H16a8,8,0,0,0,0,16H76.69L58.34,154.34a8,8,0,0,0,11.32,11.32l32-32a8,8,0,0,0,0-11.32ZM240,120H179.31l18.35-18.34a8,8,0,0,0-11.32-11.32l-32,32a8,8,0,0,0,0,11.32l32,32a8,8,0,0,0,11.32-11.32L179.31,136H240a8,8,0,0,0,0-16Z`}))],[`fill`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M101.66,122.34a8,8,0,0,1,0,11.32l-32,32A8,8,0,0,1,56,160V136H16a8,8,0,0,1,0-16H56V96a8,8,0,0,1,13.66-5.66ZM240,120H200V96a8,8,0,0,0-13.66-5.66l-32,32a8,8,0,0,0,0,11.32l32,32A8,8,0,0,0,200,160V136h40a8,8,0,0,0,0-16ZM128,32a8,8,0,0,0-8,8V216a8,8,0,0,0,16,0V40A8,8,0,0,0,128,32Z`}))],[`light`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M134,40V216a6,6,0,0,1-12,0V40a6,6,0,0,1,12,0ZM68.24,91.76a6,6,0,0,0-8.48,8.48L81.51,122H16a6,6,0,0,0,0,12H81.51L59.76,155.76a6,6,0,1,0,8.48,8.48l32-32a6,6,0,0,0,0-8.48ZM240,122H174.49l21.75-21.76a6,6,0,0,0-8.48-8.48l-32,32a6,6,0,0,0,0,8.48l32,32a6,6,0,0,0,8.48-8.48L174.49,134H240a6,6,0,0,0,0-12Z`}))],[`regular`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M136,40V216a8,8,0,0,1-16,0V40a8,8,0,0,1,16,0ZM69.66,90.34a8,8,0,0,0-11.32,11.32L76.69,120H16a8,8,0,0,0,0,16H76.69L58.34,154.34a8,8,0,0,0,11.32,11.32l32-32a8,8,0,0,0,0-11.32ZM240,120H179.31l18.35-18.34a8,8,0,0,0-11.32-11.32l-32,32a8,8,0,0,0,0,11.32l32,32a8,8,0,0,0,11.32-11.32L179.31,136H240a8,8,0,0,0,0-16Z`}))],[`thin`,W.createElement(W.Fragment,null,W.createElement(`path`,{d:`M132,40V216a4,4,0,0,1-8,0V40a4,4,0,0,1,8,0ZM66.83,93.17a4,4,0,0,0-5.66,5.66L86.34,124H16a4,4,0,0,0,0,8H86.34L61.17,157.17a4,4,0,0,0,5.66,5.66l32-32a4,4,0,0,0,0-5.66ZM240,124H169.66l25.17-25.17a4,4,0,1,0-5.66-5.66l-32,32a4,4,0,0,0,0,5.66l32,32a4,4,0,0,0,5.66-5.66L169.66,132H240a4,4,0,0,0,0-8Z`}))]]),Pe=W.forwardRef((e,t)=>W.createElement(ae,{ref:t,...e,weights:Me}));Pe.displayName=`ArrowUpRightIcon`;var Fe=W.forwardRef((e,t)=>W.createElement(ae,{ref:t,...e,weights:Ne}));Fe.displayName=`ArrowsInLineHorizontalIcon`;var Ie=n(_());function Le(){var e=[...arguments];return(0,W.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Re=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function ze(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Be(e){return`nodeType`in e}function G(e){return e?ze(e)?e:Be(e)?e.ownerDocument?.defaultView??window:window:window}function Ve(e){let{Document:t}=G(e);return e instanceof t}function He(e){return!ze(e)&&e instanceof G(e).HTMLElement}function Ue(e){return e instanceof G(e).SVGElement}function We(e){return e?ze(e)?e.document:Be(e)?Ve(e)?e:He(e)||Ue(e)?e.ownerDocument:document:document:document}var K=Re?W.useLayoutEffect:W.useEffect;function Ge(e){let t=(0,W.useRef)(e);return K(()=>{t.current=e}),(0,W.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Ke(){let e=(0,W.useRef)(null);return[(0,W.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,W.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function qe(e,t){t===void 0&&(t=[e]);let n=(0,W.useRef)(e);return K(()=>{n.current!==e&&(n.current=e)},t),n}function Je(e,t){let n=(0,W.useRef)();return(0,W.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Ye(e){let t=Ge(e),n=(0,W.useRef)(null);return[n,(0,W.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Xe(e){let t=(0,W.useRef)();return(0,W.useEffect)(()=>{t.current=e},[e]),t.current}var Ze={};function Qe(e,t){return(0,W.useMemo)(()=>{if(t)return t;let n=Ze[e]==null?0:Ze[e]+1;return Ze[e]=n,e+`-`+n},[e,t])}function $e(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var et=$e(1),tt=$e(-1);function nt(e){return`clientX`in e&&`clientY`in e}function rt(e){if(!e)return!1;let{KeyboardEvent:t}=G(e.target);return t&&e instanceof t}function it(e){if(!e)return!1;let{TouchEvent:t}=G(e.target);return t&&e instanceof t}function at(e){if(it(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return nt(e)?{x:e.clientX,y:e.clientY}:null}var q=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[q.Translate.toString(e),q.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),ot=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function st(e){return e.matches(ot)?e:e.querySelector(ot)}var ct={display:`none`};function lt(e){let{id:t,value:n}=e;return W.createElement(`div`,{id:t,style:ct},n)}function ut(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return W.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function dt(){let[e,t]=(0,W.useState)(``);return{announce:(0,W.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var ft=(0,W.createContext)(null);function pt(e){let t=(0,W.useContext)(ft);(0,W.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function mt(){let[e]=(0,W.useState)(()=>new Set),t=(0,W.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,W.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var ht={draggable:`
2
2
  To pick up a draggable item, press the space bar.
3
3
  While dragging, use the arrow keys to move the item.
4
4
  Press space again to drop the item in its new position, or press escape to cancel.
@@ -1 +1 @@
1
- import{r as e}from"./useRouter-Hur3RN7j.js";import{a as t}from"./page-BuzrT_cg.js";import{r as n}from"./overview-CgwcsnjJ.js";import{t as r}from"./link-C7GfYrMt.js";import{n as i}from"./queries-B7FBw33G.js";import{o as a,yt as o}from"./index-8Vdgwdmm.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./table-hbKjhjeL.js";import{t as p}from"./fill-cell-CjksmixH.js";import{a as m,i as h,n as g,r as _,s as v,t as y,u as b}from"./section-CanjSIxg.js";import{n as x,t as S}from"./label-badge-C-jH968V.js";import{t as C}from"./repositories-D4wYJfa_.js";var w=e(),T=({label:e})=>e.failure===null?e.onGitHub===!1?(0,w.jsxs)(`span`,{className:`text-destructive`,children:[`Missing on GitHub`,e.declared?`, created at the next poll`:``]}):null:(0,w.jsx)(`span`,{className:`text-destructive`,children:e.failure.message}),E=({source:e})=>e._tag===`Label`?(0,w.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,w.jsx)(S,{name:e.label.name,label:e.label}),(0,w.jsx)(`span`,{className:`text-xs`,children:(0,w.jsx)(T,{label:e.label})})]}):(0,w.jsx)(x,{variant:`outline`,className:`text-muted-foreground`,children:e.state}),D=({repository:e})=>(0,w.jsx)(`div`,{className:`-mx-2`,children:(0,w.jsxs)(f,{children:[(0,w.jsx)(s,{children:(0,w.jsxs)(u,{className:`hover:bg-transparent`,children:[(0,w.jsx)(c,{className:`text-right`,children:`#`}),(0,w.jsx)(c,{children:`Lane`}),(0,w.jsx)(c,{children:`Items with`})]})}),(0,w.jsx)(l,{children:e.lanes.map((e,t)=>(0,w.jsxs)(u,{className:`hover:bg-transparent`,children:[(0,w.jsx)(d,{className:`py-3 text-right align-top font-mono text-xs text-muted-foreground tabular-nums`,children:t+1}),(0,w.jsx)(d,{className:`py-3 align-top font-medium`,children:e.name}),(0,w.jsx)(p,{className:`py-3 whitespace-normal`,children:(0,w.jsx)(`ul`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:e.sources.map(e=>(0,w.jsx)(`li`,{children:(0,w.jsx)(E,{source:e})},e._tag===`Label`?e.label.name:e.state))})})]},e.name))})]})}),O=({repository:e})=>(0,w.jsxs)(m,{children:[(0,w.jsx)(h,{label:`Board`,children:(0,w.jsx)(r,{to:`/projects/$owner/$name`,params:n(e.name),className:`text-primary hover:underline`,children:`Open the board`})}),(0,w.jsx)(h,{label:`Tags`,children:e.tags.length===0?(0,w.jsx)(b,{children:`None`}):e.tags.join(`, `)}),(0,w.jsx)(h,{label:`Loops`,children:e.loops.length===0?(0,w.jsx)(b,{children:`Not selected by any loop`}):(0,w.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.loops.map(e=>(0,w.jsx)(`li`,{children:(0,w.jsx)(r,{to:`/configuration/loops/$loop`,params:{loop:e},className:`text-primary hover:underline`,children:e})},e))})})]}),k=({owner:e,name:t,configuration:n})=>{let i=`${e}/${t}`,a=n.repositories.find(e=>e.name.toLowerCase()===i.toLowerCase());return a===void 0?(0,w.jsx)(y,{title:i,children:(0,w.jsxs)(v,{title:`Repository not registered`,children:[i,` is not under `,(0,w.jsx)(`code`,{children:`repos`}),` in `,(0,w.jsx)(`code`,{children:`usine.yaml`}),`.`,` `,(0,w.jsx)(r,{to:`/configuration/repositories`,className:`text-primary hover:underline`,children:`See all repositories`}),`.`]})}):(0,w.jsx)(y,{title:a.name,leading:(0,w.jsx)(o,{repository:a.name,size:`title`}),children:(0,w.jsxs)(g,{facts:(0,w.jsx)(O,{repository:a}),children:[(0,w.jsxs)(_,{title:`Lanes`,aside:a.lanes.length===0?void 0:`In board order, as listed in repos[].lanes`,children:[[...a.declaredLabels,...C(a)].some(({onGitHub:e})=>e===null)&&(0,w.jsx)(`p`,{className:`text-muted-foreground`,children:`Labels not polled yet. Whether each label is on GitHub shows after the first poll.`}),a.lanes.length===0?(0,w.jsxs)(`p`,{className:`max-w-[72ch] text-muted-foreground`,children:[(0,w.jsx)(`code`,{children:`usine.yaml`}),` has no lanes for this repository. The board shows lanes proposed from the repository labels, and cards cannot be moved. To move cards, add lanes under `,(0,w.jsx)(`code`,{children:`repos[].lanes`}),`.`]}):(0,w.jsx)(D,{repository:a})]}),(0,w.jsx)(_,{title:`Labels usine creates`,aside:`From labels in usine.yaml`,children:a.declaredLabels.length===0?(0,w.jsxs)(`p`,{className:`text-muted-foreground`,children:[`No labels under `,(0,w.jsx)(`code`,{children:`labels`}),` in `,(0,w.jsx)(`code`,{children:`usine.yaml`}),`.`]}):(0,w.jsx)(`ul`,{className:`flex flex-col gap-2`,children:a.declaredLabels.map(e=>(0,w.jsxs)(`li`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,w.jsx)(S,{name:e.name,label:e}),(0,w.jsx)(`span`,{className:`text-xs`,children:e.onGitHub===!0&&e.failure===null?(0,w.jsx)(b,{children:`On GitHub`}):(0,w.jsx)(T,{label:e})})]},e.name))})})]})})},A=()=>{let{owner:e,name:n}=a.useParams(),{data:r}=t(i());return(0,w.jsx)(k,{owner:e,name:n,configuration:r})};export{A as component};
1
+ import{r as e}from"./useRouter-Hur3RN7j.js";import{a as t}from"./page-BuzrT_cg.js";import{r as n}from"./overview-BJ2nG5Gg.js";import{t as r}from"./link-C7GfYrMt.js";import{n as i}from"./queries-DZPcmOMn.js";import{o as a,yt as o}from"./index-X0VlRMdq.js";import{a as s,i as c,n as l,o as u,r as d,t as f}from"./table-hbKjhjeL.js";import{t as p}from"./fill-cell-CjksmixH.js";import{a as m,i as h,n as g,r as _,s as v,t as y,u as b}from"./section-DP2WHuSs.js";import{n as x,t as S}from"./label-badge-BTquNkDG.js";import{t as C}from"./repositories-D4wYJfa_.js";var w=e(),T=({label:e})=>e.failure===null?e.onGitHub===!1?(0,w.jsxs)(`span`,{className:`text-destructive`,children:[`Missing on GitHub`,e.declared?`, created at the next poll`:``]}):null:(0,w.jsx)(`span`,{className:`text-destructive`,children:e.failure.message}),E=({source:e})=>e._tag===`Label`?(0,w.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,w.jsx)(S,{name:e.label.name,label:e.label}),(0,w.jsx)(`span`,{className:`text-xs`,children:(0,w.jsx)(T,{label:e.label})})]}):(0,w.jsx)(x,{variant:`outline`,className:`text-muted-foreground`,children:e.state}),D=({repository:e})=>(0,w.jsx)(`div`,{className:`-mx-2`,children:(0,w.jsxs)(f,{children:[(0,w.jsx)(s,{children:(0,w.jsxs)(u,{className:`hover:bg-transparent`,children:[(0,w.jsx)(c,{className:`text-right`,children:`#`}),(0,w.jsx)(c,{children:`Lane`}),(0,w.jsx)(c,{children:`Items with`})]})}),(0,w.jsx)(l,{children:e.lanes.map((e,t)=>(0,w.jsxs)(u,{className:`hover:bg-transparent`,children:[(0,w.jsx)(d,{className:`py-3 text-right align-top font-mono text-xs text-muted-foreground tabular-nums`,children:t+1}),(0,w.jsx)(d,{className:`py-3 align-top font-medium`,children:e.name}),(0,w.jsx)(p,{className:`py-3 whitespace-normal`,children:(0,w.jsx)(`ul`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:e.sources.map(e=>(0,w.jsx)(`li`,{children:(0,w.jsx)(E,{source:e})},e._tag===`Label`?e.label.name:e.state))})})]},e.name))})]})}),O=({repository:e})=>(0,w.jsxs)(m,{children:[(0,w.jsx)(h,{label:`Board`,children:(0,w.jsx)(r,{to:`/projects/$owner/$name`,params:n(e.name),className:`text-primary hover:underline`,children:`Open the board`})}),(0,w.jsx)(h,{label:`Tags`,children:e.tags.length===0?(0,w.jsx)(b,{children:`None`}):e.tags.join(`, `)}),(0,w.jsx)(h,{label:`Loops`,children:e.loops.length===0?(0,w.jsx)(b,{children:`Not selected by any loop`}):(0,w.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.loops.map(e=>(0,w.jsx)(`li`,{children:(0,w.jsx)(r,{to:`/configuration/loops/$loop`,params:{loop:e},className:`text-primary hover:underline`,children:e})},e))})})]}),k=({owner:e,name:t,configuration:n})=>{let i=`${e}/${t}`,a=n.repositories.find(e=>e.name.toLowerCase()===i.toLowerCase());return a===void 0?(0,w.jsx)(y,{title:i,children:(0,w.jsxs)(v,{title:`Repository not registered`,children:[i,` is not under `,(0,w.jsx)(`code`,{children:`repos`}),` in `,(0,w.jsx)(`code`,{children:`usine.yaml`}),`.`,` `,(0,w.jsx)(r,{to:`/configuration/repositories`,className:`text-primary hover:underline`,children:`See all repositories`}),`.`]})}):(0,w.jsx)(y,{title:a.name,leading:(0,w.jsx)(o,{repository:a.name,size:`title`}),children:(0,w.jsxs)(g,{facts:(0,w.jsx)(O,{repository:a}),children:[(0,w.jsxs)(_,{title:`Lanes`,aside:a.lanes.length===0?void 0:`In board order, as listed in repos[].lanes`,children:[[...a.declaredLabels,...C(a)].some(({onGitHub:e})=>e===null)&&(0,w.jsx)(`p`,{className:`text-muted-foreground`,children:`Labels not polled yet. Whether each label is on GitHub shows after the first poll.`}),a.lanes.length===0?(0,w.jsxs)(`p`,{className:`max-w-[72ch] text-muted-foreground`,children:[(0,w.jsx)(`code`,{children:`usine.yaml`}),` has no lanes for this repository. The board shows lanes proposed from the repository labels, and cards cannot be moved. To move cards, add lanes under `,(0,w.jsx)(`code`,{children:`repos[].lanes`}),`.`]}):(0,w.jsx)(D,{repository:a})]}),(0,w.jsx)(_,{title:`Labels usine creates`,aside:`From labels in usine.yaml`,children:a.declaredLabels.length===0?(0,w.jsxs)(`p`,{className:`text-muted-foreground`,children:[`No labels under `,(0,w.jsx)(`code`,{children:`labels`}),` in `,(0,w.jsx)(`code`,{children:`usine.yaml`}),`.`]}):(0,w.jsx)(`ul`,{className:`flex flex-col gap-2`,children:a.declaredLabels.map(e=>(0,w.jsxs)(`li`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,w.jsx)(S,{name:e.name,label:e}),(0,w.jsx)(`span`,{className:`text-xs`,children:e.onGitHub===!0&&e.failure===null?(0,w.jsx)(b,{children:`On GitHub`}):(0,w.jsx)(T,{label:e})})]},e.name))})})]})})},A=()=>{let{owner:e,name:n}=a.useParams(),{data:r}=t(i());return(0,w.jsx)(k,{owner:e,name:n,configuration:r})};export{A as component};
@@ -0,0 +1 @@
1
+ import{r as e}from"./useRouter-Hur3RN7j.js";import{Dt as t}from"./index-X0VlRMdq.js";var n=e(),r=()=>(0,n.jsx)(t,{});export{r as component};
@@ -0,0 +1 @@
1
+ import{U as e}from"./index-X0VlRMdq.js";var t=e;export{t as errorComponent};
@@ -1 +1 @@
1
- import{i as e,r as t,s as n}from"./useRouter-Hur3RN7j.js";import{a as r,n as i,r as a}from"./page-BuzrT_cg.js";import{t as o}from"./error-alert-DUXD8kbU.js";import{i as s,l as c,n as l,s as u}from"./queries-cHegy0Wn.js";import{_ as d,b as f,f as p,n as m,p as h,r as g,v as _,x as v,y}from"./overview-CgwcsnjJ.js";import{t as b}from"./useNavigate-AT5VkfZa.js";import{t as x}from"./link-C7GfYrMt.js";import{n as ee,r as te,s as ne,t as re}from"./moves-IRUbTFxf.js";import{a as ie,n as ae,t as oe}from"./edit-and-retry-Dkr9XvWO.js";import{d as se,i as S,n as C,r as w,t as T,u as E}from"./dropdown-menu-CSNGrjvw.js";import{D,t as O}from"./button-4rhhIcK8.js";import{$t as k,Gt as ce,Kt as le,Ut as ue,a as A,f as j,nn as de,o as fe,x as pe}from"./strings-IzLVLq5Y.js";import{$ as me,Ct as he,J as ge,Q as _e,X as ve,Y as M,Z as N,at as P,et as F,it as ye,n as be,nt as xe,rt as Se,t as I,tt as Ce}from"./index-8Vdgwdmm.js";import{t as we}from"./use-now-vNgLntlV.js";import{t as Te}from"./heading-D7c8OQ_E.js";import{t as Ee}from"./pull-request-marks-CSjUrwDG.js";import{n as L,t as De}from"./status-badge-CLPsMXtK.js";import{a as Oe,i as R,n as z,o as B,r as V,t as H}from"./table-hbKjhjeL.js";import{t as U}from"./fill-cell-CjksmixH.js";import{t as ke}from"./label-badge-C-jH968V.js";import{a as Ae,n as je,t as Me}from"./model-D0Gz-8_e.js";import{n as Ne,t as Pe}from"./run-again-Cx14u2v9.js";import{t as Fe}from"./not-found-p5k4wRrG.js";import{i as W,n as G,r as K,t as q}from"./section-BwxXJ9H0.js";var J=t(),Ie=e=>e.postedAt===null?e.attemptEndedAt===null?null:{at:e.attemptEndedAt,title:`Posted during the attempt that ended ${j(e.attemptEndedAt)}`}:{at:e.postedAt,title:`Posted ${j(e.postedAt)}`},Le=({task:e})=>{let t=new Map(e.runs.map(e=>[e.id,e])),n=new Map(e.items.map(e=>[e.itemKey,e]));return(0,J.jsxs)(`section`,{"aria-labelledby":`task-comments`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-comments`,title:`Comments and reviews`,count:e.comments.length}),e.comments.length===0?(0,J.jsx)(q,{title:`No comments or reviews`,children:`Comments and reviews an agent posts on the task's items appear here after the attempt ends`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsx)(H,{"aria-labelledby":`task-comments`,children:(0,J.jsx)(z,{className:`border-t`,children:e.comments.map(e=>{let r=t.get(e.runId),i=r===void 0?void 0:n.get(r.itemKey),a=Ie(e);return(0,J.jsxs)(B,{className:K,children:[(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`a`,{"data-row-link":!0,href:e.url,target:`_blank`,rel:`noreferrer`,className:`font-medium ${W}`,children:[je(e.kind),i!==void 0&&(0,J.jsxs)(`span`,{className:`ml-2 text-xs font-normal text-muted-foreground`,children:[`on `,(0,J.jsx)(l,{item:i,linked:!1})]})]})}),(0,J.jsx)(V,{className:`py-3`,children:r!==void 0&&(0,J.jsx)(x,{to:`/projects/$owner/$name/runs/$run`,params:{...g(r.repository),run:r.id},className:`relative z-10 rounded-sm text-muted-foreground underline-offset-4 outline-none hover:text-foreground hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring/70 focus-visible:outline-solid`,children:r.loop})}),(0,J.jsx)(V,{className:`py-3 text-right`,children:a!==null&&(0,J.jsx)(`time`,{dateTime:a.at,title:a.title,className:`font-mono text-xs text-muted-foreground tabular-nums`,children:A(a.at)})})]},e.url)})})})})]})},Re=({task:e,project:t,disabled:n})=>{let r=re(t),[l]=e.items,u=e.items.find(({itemKey:t})=>t===e.current)??l,d=t.board.lanes.flatMap(e=>e.items.map(t=>({lane:e,card:t}))).find(({card:t})=>t.itemKey===e.current),f=d===void 0?void 0:r.moves.find(({itemKey:e})=>e===d.card.itemKey),p=d===void 0?[]:t.board.lanes.filter(e=>e._tag===`WritableBoardLane`&&e.id!==d.lane.id),m=t.board.lanes.find(({id:e})=>e===f?.toLane)?.name??d?.lane.name??e.lane.name,h=new Set(t.board.lanes.flatMap(e=>e._tag===`WritableBoardLane`?e.labels:[])),g=d===void 0?u.labels:te(d.card,d.lane).filter(e=>f===void 0||!h.has(e)),_=new Map(t.labels.map(e=>[e.name,e])),v=!n&&!r.isPending&&f===void 0&&p.length>0,{origin:y,pullRequests:b}=c(e.items);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(a,{actionsBeside:`sm`,heading:(0,J.jsx)(Te,{variant:`page`,item:de(y),title:e.title}),facts:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ee,{pullRequests:b}),(0,J.jsx)(i,{icon:he,title:`Lane`,children:(0,J.jsx)(`span`,{className:`text-foreground`,children:m})}),f!==void 0&&(0,J.jsx)(`span`,{role:`status`,children:ee(f.phase)}),g.length>0&&(0,J.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:g.map(e=>(0,J.jsx)(ke,{name:e,label:_.get(e)},e))}),e.needsYou&&(0,J.jsx)(De,{})]}),...d!==void 0&&v?{actions:(0,J.jsxs)(T,{children:[(0,J.jsxs)(E,{render:(0,J.jsx)(O,{variant:`outline`}),"aria-label":`Move ${s(u)} to another lane`,children:[`Move to`,(0,J.jsx)(ie,{"data-icon":`inline-end`,"aria-hidden":`true`})]}),(0,J.jsx)(C,{align:`end`,className:`w-auto min-w-40`,children:(0,J.jsx)(w,{children:p.map(e=>(0,J.jsx)(S,{onClick:()=>r.moveItem(d.card,e),children:e.name},e.id))})})]})}:{}}),r.error!==null&&(0,J.jsx)(o,{className:`max-w-3xl`,message:r.error.message})]})},ze=({task:e})=>{let t=e.items.filter(({kind:e})=>e===`pr`);return(0,J.jsxs)(`section`,{"aria-labelledby":`task-pull-requests`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-pull-requests`,title:`Pull requests`,count:t.length}),t.length===0?(0,J.jsx)(q,{title:`No pull requests`,children:`Pull requests that close the issue, or that a run on the issue opened, appear here`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsx)(H,{"aria-labelledby":`task-pull-requests`,children:(0,J.jsx)(z,{className:`border-t`,children:t.map(e=>(0,J.jsxs)(B,{className:K,children:[(0,J.jsx)(V,{className:`w-0 py-3`,children:(0,J.jsx)(l,{item:e,linked:!1})}),(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`a`,{"data-row-link":!0,href:e.url,target:`_blank`,rel:`noreferrer`,className:`font-medium wrap-anywhere ${W}`,children:[e.title,(0,J.jsx)(ne,{className:`ml-1.5 inline size-3.5 text-muted-foreground`,"aria-label":`Opens on GitHub`})]})}),(0,J.jsx)(V,{className:`py-3 text-right`,children:e.conflicting&&(0,J.jsx)(`span`,{className:`text-xs text-destructive`,children:`Conflicts with base`})})]},e.itemKey))})})})]})},Y=n(e(),1),X=({run:e})=>{let t=we(3e4);return k(Me(e,t),{onNone:()=>null,onSome:e=>(0,J.jsx)(`span`,{className:`font-mono text-xs tabular-nums`,title:`Total attempt time`,children:fe(e)})})},Be=({run:e})=>k(Ae(e),{onNone:()=>null,onSome:e=>(0,J.jsxs)(`p`,{className:`line-clamp-2 text-xs wrap-anywhere`,title:p(e),children:[(0,J.jsx)(`span`,{className:`font-medium text-destructive`,children:h(e)}),` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:p(e)})]})}),Z=({run:e})=>(0,J.jsx)(`time`,{dateTime:e.openedAt,title:`Opened ${j(e.openedAt)}`,className:`font-mono text-xs whitespace-nowrap tabular-nums`,children:A(e.openedAt)}),Q=({pullRequest:e})=>k(e,{onNone:()=>null,onSome:e=>(0,J.jsx)(l,{item:e,className:`relative z-10`})}),Ve=(e,t)=>`${e} ${t}${e===1?``:`s`}`,$=({run:e,pullRequest:t})=>(0,J.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-0.5 text-xs text-muted-foreground xl:hidden`,children:[(0,J.jsx)(`span`,{className:`font-medium text-foreground sm:hidden`,children:e.state}),(0,J.jsx)(`span`,{children:e.agent}),(0,J.jsx)(`span`,{children:Ve(e.attempts.length,`attempt`)}),(0,J.jsx)(X,{run:e}),(0,J.jsx)(Z,{run:e}),(0,J.jsx)(Q,{pullRequest:t})]}),He=e=>e.canApprove?`approve`:e.canRetry&&e.canResolveFailure?`retry`:null,Ue=({run:e,onEdit:t,openRun:n,status:r})=>{let i=M(),a=ve(),[o,s]=(0,Y.useState)(!1);if(i.isPending&&i.variables!==void 0)return(0,J.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:y[i.variables.request.action]});if(a.isPending)return(0,J.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:v});let c=t=>i.mutate({runId:e.id,request:t},{onSuccess:()=>r(null),onError:e=>r((0,J.jsx)(`span`,{className:`text-destructive`,children:e.message}))}),l=()=>a.mutate(ge(e),{onSuccess:e=>{e._tag===`Claimed`?(r(null),n(e.runId)):r((0,J.jsx)(`span`,{className:`text-needs-you`,children:f}))},onError:e=>r((0,J.jsx)(`span`,{className:`text-destructive`,children:e.message}))}),u=e.attempts.at(-1),p=He(e),m=u?.outcome?._tag===`Failed`&&u.outcome.failure._tag===`QuestionFailure`,h=[];return e.canApprove&&p!==`approve`&&h.push({label:_.approve,select:()=>c({action:`approve`})}),e.canRetry&&p!==`retry`&&h.push({label:_.retry,description:d(e.agentBrain),select:()=>c({action:`retry`})}),e.canRetry&&h.push({label:`Edit and retry`,select:()=>t(`retry`)}),e.canRunAgain&&(h.push({label:_.runAgain,select:l}),h.push({label:`Edit and run again`,select:()=>t(`runAgain`)})),e.canResolveFailure&&u!==void 0&&h.push({label:m?`Mark answered`:`Mark resolved`,select:()=>c({action:`resolveFailure`,attemptId:u.id})}),e.canCancel&&h.push({label:_.cancel,destructive:!0,select:()=>s(!0)}),(0,J.jsxs)(`div`,{className:`relative z-10 flex items-center justify-end gap-1`,children:[p!==null&&(0,J.jsx)(O,{variant:`outline`,size:`sm`,title:p===`retry`?d(e.agentBrain):void 0,onClick:()=>c({action:p}),children:_[p]}),h.length>0&&(0,J.jsxs)(T,{children:[(0,J.jsx)(E,{render:(0,J.jsx)(O,{variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground hover:text-foreground aria-expanded:text-foreground`}),"aria-label":`Actions for the ${e.loop} run opened ${A(e.openedAt)}`,children:(0,J.jsx)(se,{weight:`bold`,className:`size-4`,"aria-hidden":`true`})}),(0,J.jsx)(C,{align:`end`,className:`w-auto min-w-44`,children:(0,J.jsx)(w,{children:h.map(({label:e,description:t,destructive:n,select:r})=>(0,J.jsx)(S,{title:t,variant:n===!0?`destructive`:`default`,onClick:r,children:e},e))})})]}),e.canCancel&&(0,J.jsx)(_e,{open:o,onOpenChange:s,children:(0,J.jsxs)(Ce,{children:[(0,J.jsxs)(ye,{children:[(0,J.jsxs)(P,{children:[`Cancel `,e.loop,`?`]}),(0,J.jsx)(xe,{children:`The run stops, including any attempt in progress.`})]}),(0,J.jsxs)(Se,{children:[(0,J.jsx)(F,{children:_.keepRunning}),(0,J.jsx)(me,{variant:`destructive`,onClick:()=>{s(!1),c({action:`cancel`})},children:_.confirmCancel})]})]})})]})},We=8,Ge=({run:e,item:t,pullRequest:n,openRun:r})=>{let[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(B,{className:D(K,`[&>td]:align-top`),children:[(0,J.jsx)(V,{className:`hidden py-3 sm:table-cell`,children:(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-foreground`,children:[(0,J.jsx)(L,{state:e.state}),e.state]})}),(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,J.jsxs)(`p`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,J.jsx)(L,{state:e.state,className:`self-center sm:hidden`}),(0,J.jsx)(x,{"data-row-link":!0,to:`/projects/$owner/$name/runs/$run`,params:{...g(e.repository),run:e.id},className:D(`font-medium wrap-anywhere`,W),children:e.loop}),t!==null&&(0,J.jsx)(l,{item:t,className:`relative z-10 shrink-0`})]}),(0,J.jsx)(Be,{run:e}),e.runAgain!==null&&(0,J.jsx)(Pe,{run:e,source:`link`,className:`text-xs`}),e.approval!==null&&(0,J.jsx)(Ne,{approval:e.approval,className:`text-xs`}),(0,J.jsx)($,{run:e,pullRequest:n}),o!==null&&(0,J.jsx)(`p`,{role:`status`,className:`text-xs`,children:o})]})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:e.agent}),(0,J.jsx)(V,{className:`hidden py-3 text-right tabular-nums xl:table-cell`,children:e.attempts.length}),(0,J.jsx)(V,{className:`hidden py-3 text-right xl:table-cell`,children:(0,J.jsx)(X,{run:e})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:(0,J.jsx)(Z,{run:e})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:(0,J.jsx)(Q,{pullRequest:n})}),(0,J.jsx)(V,{className:`py-2.5`,children:(0,J.jsx)(Ue,{run:e,onEdit:a,openRun:r,status:s})})]}),i!==null&&ae(e,i)&&(0,J.jsx)(B,{className:`hover:bg-transparent`,children:(0,J.jsx)(V,{colSpan:We,className:`px-2 pt-1 pb-4 whitespace-normal`,children:(0,J.jsx)(oe,{run:e,intent:i,close:()=>a(null),openRun:r,className:`max-w-2xl rounded-lg border p-4`},`${e.id}:${i}`)})})]})},Ke=({task:e,openRun:t})=>{let n=new Map(e.items.map(e=>[e.itemKey,e])),r=e.items.length>1;return(0,J.jsxs)(`section`,{"aria-labelledby":`task-runs`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-runs`,title:`Runs`,count:e.runs.length}),e.runs.length===0?(0,J.jsx)(q,{title:`No runs yet`,children:`A run opens when a loop's trigger matches one of the task's items`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsxs)(H,{children:[(0,J.jsx)(Oe,{children:(0,J.jsxs)(B,{className:`hover:bg-transparent`,children:[(0,J.jsx)(R,{className:`hidden sm:table-cell`,children:`State`}),(0,J.jsx)(R,{children:`Run`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Agent`}),(0,J.jsx)(R,{className:`hidden text-right xl:table-cell`,children:`Attempts`}),(0,J.jsx)(R,{className:`hidden text-right xl:table-cell`,children:`Duration`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Opened`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Pull request`}),(0,J.jsx)(R,{children:(0,J.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,J.jsx)(z,{children:e.runs.map(i=>{let a=ce(le(i.pullRequestUrl),t=>u(t,e.items)),o=r?n.get(i.itemKey)??null:null;return(0,J.jsx)(Ge,{run:i,item:o===null||ue(a,({number:e})=>e===o.number)?null:o,pullRequest:a,openRun:t},i.id)})})]})})]})},qe=({children:e})=>(0,J.jsx)(`main`,{className:`px-4 pt-5 pb-10 md:px-5`,children:(0,J.jsx)(`div`,{className:`flex max-w-5xl flex-col gap-8`,children:e})}),Je=({repository:e,number:t})=>{let{data:n}=r(m()),i=n.projects.find(t=>t.repository===e),a=N(),s=r(be(e,t));if(s.error instanceof pe&&s.error.error===`BoardItemNotFoundError`)return(0,J.jsx)(Fe,{repository:e,number:String(t)});let c=s.isError&&(0,J.jsx)(o,{className:`max-w-3xl`,title:`Could not refresh the task`,message:s.error.message}),l=s.data;return l.number===t?(0,J.jsxs)(qe,{children:[c,i!==void 0&&(0,J.jsx)(Re,{task:l,project:i,disabled:n._tag===`NeedsSetup`}),(0,J.jsx)(Ke,{task:l,openRun:a}),(0,J.jsx)(ze,{task:l}),(0,J.jsx)(Le,{task:l})]}):(0,J.jsx)(b,{to:`/projects/$owner/$name/tasks/$number`,params:{...g(e),number:String(l.number)},search:e=>e,replace:!0})},Ye=()=>{let{repository:e}=I.useParams(),{number:t}=I.useLoaderData();return(0,J.jsx)(Je,{repository:e,number:t},`${e}#${t}`)};export{Ye as component};
1
+ import{i as e,r as t,s as n}from"./useRouter-Hur3RN7j.js";import{a as r,n as i,r as a}from"./page-BuzrT_cg.js";import{t as o}from"./error-alert-DLgCFo2-.js";import{i as s,l as c,n as l,s as u}from"./queries-DukDpdNB.js";import{_ as d,b as f,f as p,n as m,p as h,r as g,v as _,x as v,y}from"./overview-BJ2nG5Gg.js";import{t as b}from"./useNavigate-AT5VkfZa.js";import{t as x}from"./link-C7GfYrMt.js";import{n as ee,r as te,s as ne,t as re}from"./moves-Bhr6UZiC.js";import{a as ie,n as ae,t as oe}from"./edit-and-retry-BK-XY4Xi.js";import{d as se,i as S,n as C,r as w,t as T,u as E}from"./dropdown-menu-9ThPB2Vn.js";import{D,t as O}from"./button-4rhhIcK8.js";import{$t as k,Gt as ce,Kt as le,Ut as ue,a as A,f as j,nn as de,o as fe,x as pe}from"./strings-Dk-NCuvO.js";import{$ as me,Ct as he,J as ge,Q as _e,X as ve,Y as M,Z as N,at as P,et as F,it as ye,n as be,nt as xe,rt as Se,t as I,tt as Ce}from"./index-X0VlRMdq.js";import{t as we}from"./use-now-vNgLntlV.js";import{t as Te}from"./heading-DHV4sZ8C.js";import{t as Ee}from"./pull-request-marks-DdrCqbvg.js";import{n as L,t as De}from"./status-badge-CLPsMXtK.js";import{a as Oe,i as R,n as z,o as B,r as V,t as H}from"./table-hbKjhjeL.js";import{t as U}from"./fill-cell-CjksmixH.js";import{t as ke}from"./label-badge-BTquNkDG.js";import{a as Ae,n as je,t as Me}from"./model-Dvz5vIXW.js";import{n as Ne,t as Pe}from"./run-again-CXsSTd7G.js";import{t as Fe}from"./not-found-CDgqgf5H.js";import{i as W,n as G,r as K,t as q}from"./section-BwxXJ9H0.js";var J=t(),Ie=e=>e.postedAt===null?e.attemptEndedAt===null?null:{at:e.attemptEndedAt,title:`Posted during the attempt that ended ${j(e.attemptEndedAt)}`}:{at:e.postedAt,title:`Posted ${j(e.postedAt)}`},Le=({task:e})=>{let t=new Map(e.runs.map(e=>[e.id,e])),n=new Map(e.items.map(e=>[e.itemKey,e]));return(0,J.jsxs)(`section`,{"aria-labelledby":`task-comments`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-comments`,title:`Comments and reviews`,count:e.comments.length}),e.comments.length===0?(0,J.jsx)(q,{title:`No comments or reviews`,children:`Comments and reviews an agent posts on the task's items appear here after the attempt ends`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsx)(H,{"aria-labelledby":`task-comments`,children:(0,J.jsx)(z,{className:`border-t`,children:e.comments.map(e=>{let r=t.get(e.runId),i=r===void 0?void 0:n.get(r.itemKey),a=Ie(e);return(0,J.jsxs)(B,{className:K,children:[(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`a`,{"data-row-link":!0,href:e.url,target:`_blank`,rel:`noreferrer`,className:`font-medium ${W}`,children:[je(e.kind),i!==void 0&&(0,J.jsxs)(`span`,{className:`ml-2 text-xs font-normal text-muted-foreground`,children:[`on `,(0,J.jsx)(l,{item:i,linked:!1})]})]})}),(0,J.jsx)(V,{className:`py-3`,children:r!==void 0&&(0,J.jsx)(x,{to:`/projects/$owner/$name/runs/$run`,params:{...g(r.repository),run:r.id},className:`relative z-10 rounded-sm text-muted-foreground underline-offset-4 outline-none hover:text-foreground hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring/70 focus-visible:outline-solid`,children:r.loop})}),(0,J.jsx)(V,{className:`py-3 text-right`,children:a!==null&&(0,J.jsx)(`time`,{dateTime:a.at,title:a.title,className:`font-mono text-xs text-muted-foreground tabular-nums`,children:A(a.at)})})]},e.url)})})})})]})},Re=({task:e,project:t,disabled:n})=>{let r=re(t),[l]=e.items,u=e.items.find(({itemKey:t})=>t===e.current)??l,d=t.board.lanes.flatMap(e=>e.items.map(t=>({lane:e,card:t}))).find(({card:t})=>t.itemKey===e.current),f=d===void 0?void 0:r.moves.find(({itemKey:e})=>e===d.card.itemKey),p=d===void 0?[]:t.board.lanes.filter(e=>e._tag===`WritableBoardLane`&&e.id!==d.lane.id),m=t.board.lanes.find(({id:e})=>e===f?.toLane)?.name??d?.lane.name??e.lane.name,h=new Set(t.board.lanes.flatMap(e=>e._tag===`WritableBoardLane`?e.labels:[])),g=d===void 0?u.labels:te(d.card,d.lane).filter(e=>f===void 0||!h.has(e)),_=new Map(t.labels.map(e=>[e.name,e])),v=!n&&!r.isPending&&f===void 0&&p.length>0,{origin:y,pullRequests:b}=c(e.items);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(a,{actionsBeside:`sm`,heading:(0,J.jsx)(Te,{variant:`page`,item:de(y),title:e.title}),facts:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ee,{pullRequests:b}),(0,J.jsx)(i,{icon:he,title:`Lane`,children:(0,J.jsx)(`span`,{className:`text-foreground`,children:m})}),f!==void 0&&(0,J.jsx)(`span`,{role:`status`,children:ee(f.phase)}),g.length>0&&(0,J.jsx)(`span`,{className:`flex flex-wrap gap-1`,children:g.map(e=>(0,J.jsx)(ke,{name:e,label:_.get(e)},e))}),e.needsYou&&(0,J.jsx)(De,{})]}),...d!==void 0&&v?{actions:(0,J.jsxs)(T,{children:[(0,J.jsxs)(E,{render:(0,J.jsx)(O,{variant:`outline`}),"aria-label":`Move ${s(u)} to another lane`,children:[`Move to`,(0,J.jsx)(ie,{"data-icon":`inline-end`,"aria-hidden":`true`})]}),(0,J.jsx)(C,{align:`end`,className:`w-auto min-w-40`,children:(0,J.jsx)(w,{children:p.map(e=>(0,J.jsx)(S,{onClick:()=>r.moveItem(d.card,e),children:e.name},e.id))})})]})}:{}}),r.error!==null&&(0,J.jsx)(o,{className:`max-w-3xl`,message:r.error.message})]})},ze=({task:e})=>{let t=e.items.filter(({kind:e})=>e===`pr`);return(0,J.jsxs)(`section`,{"aria-labelledby":`task-pull-requests`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-pull-requests`,title:`Pull requests`,count:t.length}),t.length===0?(0,J.jsx)(q,{title:`No pull requests`,children:`Pull requests that close the issue, or that a run on the issue opened, appear here`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsx)(H,{"aria-labelledby":`task-pull-requests`,children:(0,J.jsx)(z,{className:`border-t`,children:t.map(e=>(0,J.jsxs)(B,{className:K,children:[(0,J.jsx)(V,{className:`w-0 py-3`,children:(0,J.jsx)(l,{item:e,linked:!1})}),(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`a`,{"data-row-link":!0,href:e.url,target:`_blank`,rel:`noreferrer`,className:`font-medium wrap-anywhere ${W}`,children:[e.title,(0,J.jsx)(ne,{className:`ml-1.5 inline size-3.5 text-muted-foreground`,"aria-label":`Opens on GitHub`})]})}),(0,J.jsx)(V,{className:`py-3 text-right`,children:e.conflicting&&(0,J.jsx)(`span`,{className:`text-xs text-destructive`,children:`Conflicts with base`})})]},e.itemKey))})})})]})},Y=n(e(),1),X=({run:e})=>{let t=we(3e4);return k(Me(e,t),{onNone:()=>null,onSome:e=>(0,J.jsx)(`span`,{className:`font-mono text-xs tabular-nums`,title:`Total attempt time`,children:fe(e)})})},Be=({run:e})=>k(Ae(e),{onNone:()=>null,onSome:e=>(0,J.jsxs)(`p`,{className:`line-clamp-2 text-xs wrap-anywhere`,title:p(e),children:[(0,J.jsx)(`span`,{className:`font-medium text-destructive`,children:h(e)}),` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:p(e)})]})}),Z=({run:e})=>(0,J.jsx)(`time`,{dateTime:e.openedAt,title:`Opened ${j(e.openedAt)}`,className:`font-mono text-xs whitespace-nowrap tabular-nums`,children:A(e.openedAt)}),Q=({pullRequest:e})=>k(e,{onNone:()=>null,onSome:e=>(0,J.jsx)(l,{item:e,className:`relative z-10`})}),Ve=(e,t)=>`${e} ${t}${e===1?``:`s`}`,$=({run:e,pullRequest:t})=>(0,J.jsxs)(`p`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-0.5 text-xs text-muted-foreground xl:hidden`,children:[(0,J.jsx)(`span`,{className:`font-medium text-foreground sm:hidden`,children:e.state}),(0,J.jsx)(`span`,{children:e.agent}),(0,J.jsx)(`span`,{children:Ve(e.attempts.length,`attempt`)}),(0,J.jsx)(X,{run:e}),(0,J.jsx)(Z,{run:e}),(0,J.jsx)(Q,{pullRequest:t})]}),He=e=>e.canApprove?`approve`:e.canRetry&&e.canResolveFailure?`retry`:null,Ue=({run:e,onEdit:t,openRun:n,status:r})=>{let i=M(),a=ve(),[o,s]=(0,Y.useState)(!1);if(i.isPending&&i.variables!==void 0)return(0,J.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:y[i.variables.request.action]});if(a.isPending)return(0,J.jsx)(`span`,{role:`status`,className:`text-xs text-muted-foreground`,children:v});let c=t=>i.mutate({runId:e.id,request:t},{onSuccess:()=>r(null),onError:e=>r((0,J.jsx)(`span`,{className:`text-destructive`,children:e.message}))}),l=()=>a.mutate(ge(e),{onSuccess:e=>{e._tag===`Claimed`?(r(null),n(e.runId)):r((0,J.jsx)(`span`,{className:`text-needs-you`,children:f}))},onError:e=>r((0,J.jsx)(`span`,{className:`text-destructive`,children:e.message}))}),u=e.attempts.at(-1),p=He(e),m=u?.outcome?._tag===`Failed`&&u.outcome.failure._tag===`QuestionFailure`,h=[];return e.canApprove&&p!==`approve`&&h.push({label:_.approve,select:()=>c({action:`approve`})}),e.canRetry&&p!==`retry`&&h.push({label:_.retry,description:d(e.agentBrain),select:()=>c({action:`retry`})}),e.canRetry&&h.push({label:`Edit and retry`,select:()=>t(`retry`)}),e.canRunAgain&&(h.push({label:_.runAgain,select:l}),h.push({label:`Edit and run again`,select:()=>t(`runAgain`)})),e.canResolveFailure&&u!==void 0&&h.push({label:m?`Mark answered`:`Mark resolved`,select:()=>c({action:`resolveFailure`,attemptId:u.id})}),e.canCancel&&h.push({label:_.cancel,destructive:!0,select:()=>s(!0)}),(0,J.jsxs)(`div`,{className:`relative z-10 flex items-center justify-end gap-1`,children:[p!==null&&(0,J.jsx)(O,{variant:`outline`,size:`sm`,title:p===`retry`?d(e.agentBrain):void 0,onClick:()=>c({action:p}),children:_[p]}),h.length>0&&(0,J.jsxs)(T,{children:[(0,J.jsx)(E,{render:(0,J.jsx)(O,{variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground hover:text-foreground aria-expanded:text-foreground`}),"aria-label":`Actions for the ${e.loop} run opened ${A(e.openedAt)}`,children:(0,J.jsx)(se,{weight:`bold`,className:`size-4`,"aria-hidden":`true`})}),(0,J.jsx)(C,{align:`end`,className:`w-auto min-w-44`,children:(0,J.jsx)(w,{children:h.map(({label:e,description:t,destructive:n,select:r})=>(0,J.jsx)(S,{title:t,variant:n===!0?`destructive`:`default`,onClick:r,children:e},e))})})]}),e.canCancel&&(0,J.jsx)(_e,{open:o,onOpenChange:s,children:(0,J.jsxs)(Ce,{children:[(0,J.jsxs)(ye,{children:[(0,J.jsxs)(P,{children:[`Cancel `,e.loop,`?`]}),(0,J.jsx)(xe,{children:`The run stops, including any attempt in progress.`})]}),(0,J.jsxs)(Se,{children:[(0,J.jsx)(F,{children:_.keepRunning}),(0,J.jsx)(me,{variant:`destructive`,onClick:()=>{s(!1),c({action:`cancel`})},children:_.confirmCancel})]})]})})]})},We=8,Ge=({run:e,item:t,pullRequest:n,openRun:r})=>{let[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(B,{className:D(K,`[&>td]:align-top`),children:[(0,J.jsx)(V,{className:`hidden py-3 sm:table-cell`,children:(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-foreground`,children:[(0,J.jsx)(L,{state:e.state}),e.state]})}),(0,J.jsx)(U,{className:`py-3 whitespace-normal`,children:(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,J.jsxs)(`p`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,J.jsx)(L,{state:e.state,className:`self-center sm:hidden`}),(0,J.jsx)(x,{"data-row-link":!0,to:`/projects/$owner/$name/runs/$run`,params:{...g(e.repository),run:e.id},className:D(`font-medium wrap-anywhere`,W),children:e.loop}),t!==null&&(0,J.jsx)(l,{item:t,className:`relative z-10 shrink-0`})]}),(0,J.jsx)(Be,{run:e}),e.runAgain!==null&&(0,J.jsx)(Pe,{run:e,source:`link`,className:`text-xs`}),e.approval!==null&&(0,J.jsx)(Ne,{approval:e.approval,className:`text-xs`}),(0,J.jsx)($,{run:e,pullRequest:n}),o!==null&&(0,J.jsx)(`p`,{role:`status`,className:`text-xs`,children:o})]})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:e.agent}),(0,J.jsx)(V,{className:`hidden py-3 text-right tabular-nums xl:table-cell`,children:e.attempts.length}),(0,J.jsx)(V,{className:`hidden py-3 text-right xl:table-cell`,children:(0,J.jsx)(X,{run:e})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:(0,J.jsx)(Z,{run:e})}),(0,J.jsx)(V,{className:`hidden py-3 xl:table-cell`,children:(0,J.jsx)(Q,{pullRequest:n})}),(0,J.jsx)(V,{className:`py-2.5`,children:(0,J.jsx)(Ue,{run:e,onEdit:a,openRun:r,status:s})})]}),i!==null&&ae(e,i)&&(0,J.jsx)(B,{className:`hover:bg-transparent`,children:(0,J.jsx)(V,{colSpan:We,className:`px-2 pt-1 pb-4 whitespace-normal`,children:(0,J.jsx)(oe,{run:e,intent:i,close:()=>a(null),openRun:r,className:`max-w-2xl rounded-lg border p-4`},`${e.id}:${i}`)})})]})},Ke=({task:e,openRun:t})=>{let n=new Map(e.items.map(e=>[e.itemKey,e])),r=e.items.length>1;return(0,J.jsxs)(`section`,{"aria-labelledby":`task-runs`,className:`flex flex-col gap-2`,children:[(0,J.jsx)(G,{id:`task-runs`,title:`Runs`,count:e.runs.length}),e.runs.length===0?(0,J.jsx)(q,{title:`No runs yet`,children:`A run opens when a loop's trigger matches one of the task's items`}):(0,J.jsx)(`div`,{className:`-mx-2`,children:(0,J.jsxs)(H,{children:[(0,J.jsx)(Oe,{children:(0,J.jsxs)(B,{className:`hover:bg-transparent`,children:[(0,J.jsx)(R,{className:`hidden sm:table-cell`,children:`State`}),(0,J.jsx)(R,{children:`Run`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Agent`}),(0,J.jsx)(R,{className:`hidden text-right xl:table-cell`,children:`Attempts`}),(0,J.jsx)(R,{className:`hidden text-right xl:table-cell`,children:`Duration`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Opened`}),(0,J.jsx)(R,{className:`hidden xl:table-cell`,children:`Pull request`}),(0,J.jsx)(R,{children:(0,J.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,J.jsx)(z,{children:e.runs.map(i=>{let a=ce(le(i.pullRequestUrl),t=>u(t,e.items)),o=r?n.get(i.itemKey)??null:null;return(0,J.jsx)(Ge,{run:i,item:o===null||ue(a,({number:e})=>e===o.number)?null:o,pullRequest:a,openRun:t},i.id)})})]})})]})},qe=({children:e})=>(0,J.jsx)(`main`,{className:`px-4 pt-5 pb-10 md:px-5`,children:(0,J.jsx)(`div`,{className:`flex max-w-5xl flex-col gap-8`,children:e})}),Je=({repository:e,number:t})=>{let{data:n}=r(m()),i=n.projects.find(t=>t.repository===e),a=N(),s=r(be(e,t));if(s.error instanceof pe&&s.error.error===`BoardItemNotFoundError`)return(0,J.jsx)(Fe,{repository:e,number:String(t)});let c=s.isError&&(0,J.jsx)(o,{className:`max-w-3xl`,title:`Could not refresh the task`,message:s.error.message}),l=s.data;return l.number===t?(0,J.jsxs)(qe,{children:[c,i!==void 0&&(0,J.jsx)(Re,{task:l,project:i,disabled:n._tag===`NeedsSetup`}),(0,J.jsx)(Ke,{task:l,openRun:a}),(0,J.jsx)(ze,{task:l}),(0,J.jsx)(Le,{task:l})]}):(0,J.jsx)(b,{to:`/projects/$owner/$name/tasks/$number`,params:{...g(e),number:String(l.number)},search:e=>e,replace:!0})},Ye=()=>{let{repository:e}=I.useParams(),{number:t}=I.useLoaderData();return(0,J.jsx)(Je,{repository:e,number:t},`${e}#${t}`)};export{Ye as component};
@@ -0,0 +1 @@
1
+ import{U as e}from"./index-X0VlRMdq.js";var t=e;export{t as errorComponent};
@@ -1 +1 @@
1
- import{r as e}from"./useRouter-Hur3RN7j.js";import{t}from"./index-8Vdgwdmm.js";import{t as n}from"./not-found-p5k4wRrG.js";var r=e(),i=()=>{let{repository:e,number:i}=t.useParams();return(0,r.jsx)(n,{repository:e,number:i})};export{i as notFoundComponent};
1
+ import{r as e}from"./useRouter-Hur3RN7j.js";import{t}from"./index-X0VlRMdq.js";import{t as n}from"./not-found-CDgqgf5H.js";var r=e(),i=()=>{let{repository:e,number:i}=t.useParams();return(0,r.jsx)(n,{repository:e,number:i})};export{i as notFoundComponent};