@kindgi/cli 0.2.0 → 0.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +12 -5
  2. package/dist/cli.js +4 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/agents.d.ts.map +1 -1
  5. package/dist/commands/agents.js +75 -19
  6. package/dist/commands/agents.js.map +1 -1
  7. package/dist/commands/approval-wait.d.ts +90 -0
  8. package/dist/commands/approval-wait.d.ts.map +1 -0
  9. package/dist/commands/approval-wait.js +154 -0
  10. package/dist/commands/approval-wait.js.map +1 -0
  11. package/dist/commands/artifacts.d.ts.map +1 -1
  12. package/dist/commands/artifacts.js +131 -14
  13. package/dist/commands/artifacts.js.map +1 -1
  14. package/dist/commands/auth.d.ts.map +1 -1
  15. package/dist/commands/auth.js +48 -5
  16. package/dist/commands/auth.js.map +1 -1
  17. package/dist/commands/deploy.js +7 -3
  18. package/dist/commands/deploy.js.map +1 -1
  19. package/dist/commands/deployments.d.ts.map +1 -1
  20. package/dist/commands/deployments.js +36 -13
  21. package/dist/commands/deployments.js.map +1 -1
  22. package/dist/commands/doctor.d.ts +3 -2
  23. package/dist/commands/doctor.d.ts.map +1 -1
  24. package/dist/commands/doctor.js +47 -14
  25. package/dist/commands/doctor.js.map +1 -1
  26. package/dist/commands/eval-runs.d.ts.map +1 -1
  27. package/dist/commands/eval-runs.js +21 -9
  28. package/dist/commands/eval-runs.js.map +1 -1
  29. package/dist/commands/helpers.d.ts +31 -1
  30. package/dist/commands/helpers.d.ts.map +1 -1
  31. package/dist/commands/helpers.js +45 -2
  32. package/dist/commands/helpers.js.map +1 -1
  33. package/dist/commands/init.js +5 -4
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/mail-triggers.d.ts.map +1 -1
  36. package/dist/commands/mail-triggers.js +27 -3
  37. package/dist/commands/mail-triggers.js.map +1 -1
  38. package/dist/commands/promote.d.ts.map +1 -1
  39. package/dist/commands/promote.js +133 -11
  40. package/dist/commands/promote.js.map +1 -1
  41. package/dist/commands/provenance.d.ts.map +1 -1
  42. package/dist/commands/provenance.js +13 -5
  43. package/dist/commands/provenance.js.map +1 -1
  44. package/dist/commands/providers.d.ts.map +1 -1
  45. package/dist/commands/providers.js +47 -4
  46. package/dist/commands/providers.js.map +1 -1
  47. package/dist/commands/schedules.d.ts.map +1 -1
  48. package/dist/commands/schedules.js +25 -9
  49. package/dist/commands/schedules.js.map +1 -1
  50. package/dist/commands/skills.d.ts +16 -0
  51. package/dist/commands/skills.d.ts.map +1 -1
  52. package/dist/commands/skills.js +122 -36
  53. package/dist/commands/skills.js.map +1 -1
  54. package/dist/commands/webhooks.d.ts.map +1 -1
  55. package/dist/commands/webhooks.js +21 -5
  56. package/dist/commands/webhooks.js.map +1 -1
  57. package/dist/config.d.ts +8 -0
  58. package/dist/config.d.ts.map +1 -1
  59. package/dist/config.js +11 -0
  60. package/dist/config.js.map +1 -1
  61. package/dist/context.d.ts +7 -3
  62. package/dist/context.d.ts.map +1 -1
  63. package/dist/context.js +1 -0
  64. package/dist/context.js.map +1 -1
  65. package/dist/dev/runtime-image.d.ts +1 -1
  66. package/dist/dev/runtime-image.d.ts.map +1 -1
  67. package/dist/dev/runtime-image.js +1 -1
  68. package/dist/dev/runtime-image.js.map +1 -1
  69. package/dist/errors.d.ts.map +1 -1
  70. package/dist/errors.js +14 -1
  71. package/dist/errors.js.map +1 -1
  72. package/dist/exports/plan.d.ts.map +1 -1
  73. package/dist/exports/plan.js +50 -0
  74. package/dist/exports/plan.js.map +1 -1
  75. package/dist/init/augment-scaffolder.d.ts +1 -1
  76. package/dist/init/augment-scaffolder.js +9 -8
  77. package/dist/init/augment-scaffolder.js.map +1 -1
  78. package/dist/init/java-augment.d.ts.map +1 -1
  79. package/dist/init/java-augment.js +7 -6
  80. package/dist/init/java-augment.js.map +1 -1
  81. package/dist/init/python-augment.d.ts.map +1 -1
  82. package/dist/init/python-augment.js +7 -6
  83. package/dist/init/python-augment.js.map +1 -1
  84. package/dist/init/scala-augment.js +7 -6
  85. package/dist/init/scala-augment.js.map +1 -1
  86. package/dist/main.d.ts +3 -0
  87. package/dist/main.d.ts.map +1 -1
  88. package/dist/main.js +1 -0
  89. package/dist/main.js.map +1 -1
  90. package/dist/providers/presets/anthropic.json +15 -3
  91. package/dist/providers/presets/azure-openai.json +10 -2
  92. package/dist/providers/presets/bedrock.json +6 -2
  93. package/dist/providers/presets/gemini-api.json +6 -2
  94. package/dist/providers/presets/openai.json +15 -3
  95. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +21 -9
  96. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +5 -3
  97. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +202 -68
  98. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +12 -188
  99. package/dist/sdk-skills/kindgi-authoring-mcp-servers/common-mistakes.md +44 -0
  100. package/dist/sdk-skills/kindgi-authoring-mcp-servers/how-it-works.md +41 -0
  101. package/dist/sdk-skills/kindgi-authoring-mcp-servers/other-clients.md +19 -0
  102. package/dist/sdk-skills/kindgi-authoring-mcp-servers/postgres.md +45 -0
  103. package/dist/sdk-skills/kindgi-authoring-mcp-servers/several-servers.md +32 -0
  104. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +49 -906
  105. package/dist/sdk-skills/kindgi-authoring-providers/bedrock.md +64 -0
  106. package/dist/sdk-skills/kindgi-authoring-providers/common-mistakes.md +125 -0
  107. package/dist/sdk-skills/kindgi-authoring-providers/keys-and-registration.md +58 -0
  108. package/dist/sdk-skills/kindgi-authoring-providers/kindgi-cloud.md +36 -0
  109. package/dist/sdk-skills/kindgi-authoring-providers/path-a-anthropic.md +216 -0
  110. package/dist/sdk-skills/kindgi-authoring-providers/path-b-openai-compat.md +127 -0
  111. package/dist/sdk-skills/kindgi-authoring-providers/path-c-onnx.md +97 -0
  112. package/dist/sdk-skills/kindgi-authoring-providers/path-d-vertex.md +95 -0
  113. package/dist/sdk-skills/kindgi-authoring-providers/router.md +113 -0
  114. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +12 -387
  115. package/dist/sdk-skills/kindgi-authoring-tools/common-mistakes.md +135 -0
  116. package/dist/sdk-skills/kindgi-authoring-tools/declarative-http.md +34 -0
  117. package/dist/sdk-skills/kindgi-authoring-tools/imperative-handler.md +65 -0
  118. package/dist/sdk-skills/kindgi-authoring-tools/iterating-and-testing.md +45 -0
  119. package/dist/sdk-skills/kindgi-authoring-tools/secrets-and-connections.md +79 -0
  120. package/dist/sdk-skills/kindgi-authoring-tools/tool-flags.md +45 -0
  121. package/dist/sdk-skills/kindgi-fix-corrections/SKILL.md +13 -178
  122. package/dist/sdk-skills/kindgi-fix-corrections/make-the-change.md +25 -0
  123. package/dist/sdk-skills/kindgi-fix-corrections/publish-and-promote.md +76 -0
  124. package/dist/sdk-skills/kindgi-fix-corrections/pull-corrections.md +48 -0
  125. package/dist/sdk-skills/kindgi-fix-corrections/worked-example.md +27 -0
  126. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +10 -180
  127. package/dist/sdk-skills/kindgi-framework-feedback/common-mistakes.md +19 -0
  128. package/dist/sdk-skills/kindgi-framework-feedback/editing-feedback-file.md +33 -0
  129. package/dist/sdk-skills/kindgi-framework-feedback/fields-and-entry-shape.md +53 -0
  130. package/dist/sdk-skills/kindgi-framework-feedback/hearing-back.md +24 -0
  131. package/dist/sdk-skills/kindgi-framework-feedback/sending.md +50 -0
  132. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +24 -21
  133. package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +12 -4
  134. package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +6 -4
  135. package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +33 -23
  136. package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +19 -12
  137. package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +16 -16
  138. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +18 -6
  139. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +6 -4
  140. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +39 -30
  141. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +19 -9
  142. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +24 -21
  143. package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +12 -4
  144. package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +6 -4
  145. package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +34 -23
  146. package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +15 -9
  147. package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +16 -16
  148. package/dist/sdk-skills/kindgi-using/SKILL.md +11 -11
  149. package/dist/templates/sample/README.md.tmpl +8 -7
  150. package/dist/templates/sample/agents/echo-agent/index.ts.tmpl +1 -1
  151. package/dist/templates/sample/kindgi.config.ts.tmpl +1 -1
  152. package/dist/templates/sample/package.json.tmpl +1 -1
  153. package/dist/templates/woocommerce/README.md.tmpl +9 -3
  154. package/package.json +13 -13
package/README.md CHANGED
@@ -862,8 +862,11 @@ Ed25519 signing keys for `kindgi build`, as files under `~/.kindgi/keys/`
862
862
  ## `kindgi skills`
863
863
 
864
864
  `kindgi skills sync [--force] [--dry-run]` refreshes `.claude/skills/` and
865
- `.agents/skills/` from the skills bundled with this CLI. Skills you edited are
866
- kept unless `--force`; a skill you deleted comes back. After an upgrade,
865
+ `.agents/skills/` from the skills bundled with this CLI. A skill is a folder:
866
+ its `SKILL.md` and the files beside it. Skills you edited are kept unless
867
+ `--force`; a skill or a file of one you deleted comes back, and a file you
868
+ added to a skill's folder is left as it is, unless a later release ships a
869
+ file by that name: that counts as an edit. After an upgrade,
867
870
  `kindgi dev` refreshes them as it starts, the same way without `--force`,
868
871
  except that a skill or a skills folder you deleted stays deleted.
869
872
 
@@ -964,9 +967,13 @@ The API URL and token come from, in order:
964
967
 
965
968
  `kindgi dev` writes `.kindgirc.json` in the pack. For another API, save the
966
969
  pair once with `kindgi auth login --url=<url> --token=<token>`, and check it
967
- with `kindgi auth whoami`. Login writes `~/.kindgi/config.json` `0600`, in a
968
- `~/.kindgi` that's `0700`, and tightens ones an older CLI left looser (not on
969
- Windows).
970
+ with `kindgi auth whoami`. Login keeps a login `~/.kindgi/config.json` holds
971
+ for another address, or a key with no address beside it, and exits 2 naming
972
+ it: to use both, skip the login, and set `KINDGI_API_URL` and
973
+ `KINDGI_API_TOKEN` to the new address and its key in the shell you use it
974
+ from. `--force` replaces it, and warns that its key is no
975
+ longer stored. Login writes `~/.kindgi/config.json` `0600`, in a `~/.kindgi`
976
+ that's `0700`, and tightens ones an older CLI left looser (not on Windows).
970
977
 
971
978
  **In a folder where `kindgi dev` ran, `--hosted` reaches the other API.**
972
979
  There, `.kindgirc.json` points every command at the dev runtime, ahead of
package/dist/cli.js CHANGED
@@ -15,9 +15,10 @@ async function main() {
15
15
  process.exit(1);
16
16
  }
17
17
  const { runCli } = await import('./main.js');
18
- // SIGINT/SIGTERM/SIGHUP → an AbortSignal so long-lived commands
19
- // (currently only `kindgi dev` — the watch loop) can shut down cleanly;
20
- // a second Ctrl+C forces the exit. Short-lived commands never observe it.
18
+ // SIGINT/SIGTERM/SIGHUP → an AbortSignal so long-lived commands (`kindgi
19
+ // dev`'s watch loop, a download, a deploy's waits) stop cleanly on the
20
+ // first Ctrl+C; a second one forces the exit. A command that doesn't
21
+ // watch it stops only at that second one.
21
22
  const stopSignal = createStopSignal(process, (code) => process.exit(code));
22
23
  ignoreOutputAfterHangup(process, [process.stdout, process.stderr]);
23
24
  const outcome = await runCli({
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,iCAAiC;AAEjC,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7C,gEAAgE;IAChE,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU;QACV,kEAAkE;QAClE,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;IACH,oEAAoE;IACpE,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;IAClC,MAAM,UAAU,CACd,OAAO,CAAC,MAAM,EACd,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC5E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,sCAAsC;AACtC,iCAAiC;AAEjC,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7C,yEAAyE;IACzE,uEAAuE;IACvE,qEAAqE;IACrE,0CAA0C;IAC1C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU;QACV,kEAAkE;QAClE,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;IACH,oEAAoE;IACpE,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;IAClC,MAAM,UAAU,CACd,OAAO,CAAC,MAAM,EACd,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAC5E,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,OAAO,KAAK,EAAE,OAAO,EAAe,eAAe,EAAE,MAAM,YAAY,CAAC;AAuOxE,gGAAgG;AAChG,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAQjE,CAAC;AAEF,eAAO,MAAM,WAAW,uFACyD,CAAC;AAElF,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAqBvF,yGAAyG;AACzG,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAWlD;AA0OD,eAAO,MAAM,aAAa,EAAE,OAmB3B,CAAC"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA8BpD,OAAO,KAAK,EAAE,OAAO,EAAe,eAAe,EAAE,MAAM,YAAY,CAAC;AAuOxE,gGAAgG;AAChG,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAQjE,CAAC;AAEF,eAAO,MAAM,WAAW,uFACyD,CAAC;AAElF,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;AAC1E,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAqBvF,yGAAyG;AACzG,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAWlD;AA4SD,eAAO,MAAM,aAAa,EAAE,OAmB3B,CAAC"}
@@ -1,8 +1,12 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
+ import { KindgiApiError } from '@kindgi/client';
3
4
  import { UsageError } from '../errors.js';
5
+ import { renderJson, successNote } from '../output.js';
6
+ import { progressLines } from '../progress-lines.js';
4
7
  import { callWaitingOutRateLimits } from '../rate-limit-wait.js';
5
- import { integerFlag, listFlag, projectIdFlag, readJsonInput, requiredPositional, runSdk, segmentsFlag, stringFlag, } from './helpers.js';
8
+ import { WAIT_FLAG, endedLine, stillOpenLine, unreadableLine, waitDeadline, waitFlag, waitForApproval, waitWords, waitingLine, } from './approval-wait.js';
9
+ import { ANSWER_NO_EXIT_CODE, integerFlag, listFlag, projectIdFlag, readJsonInput, requiredPositional, runSdk, runSdkRendered, segmentsFlag, stringFlag, } from './helpers.js';
6
10
  const PAGE_FLAGS = {
7
11
  limit: { type: 'string', description: 'The most to return (default 25, at most 100).' },
8
12
  cursor: {
@@ -288,8 +292,8 @@ const liveVersions = {
288
292
  const promote = {
289
293
  kind: 'leaf',
290
294
  name: 'promote',
291
- description: "Make a version live for a scope: its runs that don't name a version use it, from the next run. Open conversations keep their version. With a release gate policy for the scope, the run on the test cases named by --eval-run is checked first: the answer's `status` is `promoted`, or `pending-approval` (a reviewer approves it); a refusal lists every check. `--check` asks what would happen, changing nothing.",
292
- usage: `kindgi agents promote <agent-id> <version> ${SCOPE_USAGE} [--eval-run=<eval-run-id>] [--reason=<text>] [--check]`,
295
+ description: "Make a version live for a scope: its runs that don't name a version use it, from the next run. Open conversations keep their version. With a release gate policy for the scope, the run on the test cases named by --eval-run is checked first: the answer's `status` is `promoted`, or `pending-approval` (a reviewer approves it); a refusal lists every check. `--check` asks what would happen, changing nothing. Exits 3 when the answer is no: the gate refuses the version, or it waits for an approval (`--wait` waits for the decision).",
296
+ usage: `kindgi agents promote <agent-id> <version> ${SCOPE_USAGE} [--eval-run=<eval-run-id>] [--reason=<text>] [--check] [--wait[=<duration>]]`,
293
297
  optionSpec: {
294
298
  ...SCOPE_FLAGS,
295
299
  'eval-run': {
@@ -298,26 +302,78 @@ const promote = {
298
302
  },
299
303
  check: {
300
304
  type: 'boolean',
301
- description: 'What the release gate policy would say: would-promote, needs-approval or gate-failed. Changes nothing.',
305
+ description: 'What the release gate policy would say: would-promote, needs-approval or gate-failed. Changes nothing. Exits 3 unless it would promote.',
302
306
  },
307
+ ...WAIT_FLAG,
303
308
  ...WRITE_FLAGS,
304
309
  },
305
- run: (ctx) => runSdk(ctx, 'agents promote', async () => {
306
- const agentId = requiredPositional(ctx, 0, 'agent-id');
307
- const version = requiredPositional(ctx, 1, 'version');
308
- const evalRunId = stringFlag(ctx, 'eval-run');
309
- const input = {
310
- version,
311
- scope: scopeFrom(ctx, true),
312
- ...reasonFlag(ctx),
313
- ...(evalRunId !== undefined && { evalRunId }),
314
- };
315
- if (ctx.options.check === true) {
316
- return await ctx.client().agents.promotions.check(agentId, input);
317
- }
318
- return await ctx.client().agents.promotions.create(agentId, input, idempotency(ctx));
319
- }),
310
+ run: (ctx) => runSdkRendered(ctx, 'agents promote', () => promoteAgent(ctx), gateFailed),
320
311
  };
312
+ /** A release gate policy's refusal (`422 gate-failed`): the command's answer, not a failure. */
313
+ function gateFailed(err) {
314
+ if (!(err instanceof KindgiApiError))
315
+ return false;
316
+ const e = err.error;
317
+ return e.code === 'server' && e.serverCode === 'gate-failed';
318
+ }
319
+ async function promoteAgent(ctx) {
320
+ const agentId = requiredPositional(ctx, 0, 'agent-id');
321
+ const version = requiredPositional(ctx, 1, 'version');
322
+ const evalRunId = stringFlag(ctx, 'eval-run');
323
+ const waitMs = waitFlag(ctx);
324
+ const input = {
325
+ version,
326
+ scope: scopeFrom(ctx, true),
327
+ ...reasonFlag(ctx),
328
+ ...(evalRunId !== undefined && { evalRunId }),
329
+ };
330
+ const format = ctx.globals.format;
331
+ const promotions = ctx.client().agents.promotions;
332
+ if (ctx.options.check === true) {
333
+ if (waitMs !== undefined) {
334
+ throw new UsageError('--wait waits for a promotion, and --check makes none: leave one out');
335
+ }
336
+ const check = await promotions.check(agentId, input);
337
+ return {
338
+ ...renderJson(check, format),
339
+ ...(check.outcome !== 'would-promote' && { exitCode: ANSWER_NO_EXIT_CODE }),
340
+ };
341
+ }
342
+ const promotion = await promotions.create(agentId, input, idempotency(ctx));
343
+ if (promotion.status !== 'pending-approval')
344
+ return renderJson(promotion, format);
345
+ if (waitMs === undefined) {
346
+ return {
347
+ stdout: renderJson(promotion, format).stdout,
348
+ stderr: successNote(format, `${stillOpenLine(promotion)} \`--wait\` waits for the decision.\n`),
349
+ exitCode: ANSWER_NO_EXIT_CODE,
350
+ };
351
+ }
352
+ const out = progressLines(ctx.progress, format === 'quiet');
353
+ out.line(waitingLine(promotion, waitMs));
354
+ const waited = await waitForApproval(ctx, promotion, () => promotions.get(agentId, promotion.id), waitDeadline(ctx, waitMs));
355
+ return waitedAnswer(waited, waitMs, format, out);
356
+ }
357
+ /** What `agents promote --wait` answers: the promotion as the wait ended it, and how it ended. */
358
+ function waitedAnswer(waited, waitMs, format, out) {
359
+ const stdout = renderJson(waited.promotion, format).stdout;
360
+ switch (waited.kind) {
361
+ case 'stopped':
362
+ out.line(`Stopped waiting. ${stillOpenLine(waited.promotion)}`);
363
+ return { stdout, stderr: out.kept(), exitCode: 130 };
364
+ case 'still-waiting':
365
+ out.problem(`Still waiting after ${waitWords(waitMs)}. ${stillOpenLine(waited.promotion)}`);
366
+ return { stdout, stderr: out.kept(), exitCode: ANSWER_NO_EXIT_CODE };
367
+ case 'unreadable':
368
+ out.problem(unreadableLine(waited.promotion, waited.message));
369
+ return { stdout, stderr: out.kept(), exitCode: 1 };
370
+ case 'decided':
371
+ if (waited.promotion.status === 'promoted')
372
+ return { stdout, stderr: out.kept() };
373
+ out.problem(endedLine(waited.promotion));
374
+ return { stdout, stderr: out.kept(), exitCode: ANSWER_NO_EXIT_CODE };
375
+ }
376
+ }
321
377
  const gatePolicy = {
322
378
  kind: 'leaf',
323
379
  name: 'gate-policy',
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAahD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAoC,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAsB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAEL,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EAEnB,WAAW,EACX,QAAQ,EACR,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAC;AAUtB,MAAM,UAAU,GAA8C;IAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+CAA+C,EAAE;IACvF,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kEAAkE;KAChF;CACF,CAAC;AAEF,SAAS,IAAI,CAAC,GAAmB;IAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAA0C;IAC1D,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;QAC5C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QACtC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE;KAC/D;CACF,CAAC;AAEF,MAAM,IAAI,GAAgB;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,sDAAsD;IACnE,KAAK,EAAE,uFAAuF;IAC9F,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;QAC/E,iBAAiB,EAAE;YACjB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,yGAAyG;SAC5G;QACD,GAAG,UAAU;KACd;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CACJ,GAAG,EACH,aAAa,EACb,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YACpC,GAAG,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;SACzE,CAAC,CAAC;IACL,CAAC,EACD,YAAY,CACb;CACJ,CAAC;AAEF,MAAM,GAAG,GAAgB;IACvB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,qEAAqE;IAClF,KAAK,EAAE,0CAA0C;IACjD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAU,CAAC;QAChE,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QACnC,OAAO,OAAO,KAAK,SAAS;YAC1B,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAgB,CAAC,CAAC;IAC3D,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,OAAO,GAAgB;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,+BAA+B;IAC5C,KAAK,EAAE,uEAAuE;IAC9E,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8EAA8E;SAC5F;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,sFAAsF;SACzF;KACF;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAwB,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,CACvD,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAChD,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC;CACL,CAAC;AAEF,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAyB,EAAE,IAAY;IACvD,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,qCAAqC,KAAK,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,MAAM,GAAgB;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,wHAAwH;IAC1H,KAAK,EACH,kKAAkK;IACpK,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,gEAAgE;SAC9E;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,sIAAsI;SACzI;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,WAAW,EACT,6GAA6G;SAChH;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oCAAoC,EAAE;QAC5E,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,4FAA4F;SAC/F;KACF;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,UAAU,CAClB,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAkB,EAAE;YACnE,IAAI;YACJ,IAAI,EAAE;gBACJ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBACnD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;aACtD;YACD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,UAAU,GAAgB;IAC9B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,0DAA0D;IACvE,KAAK,EAAE,+CAA+C;IACtD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAU,CAAC;QAChE,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,OAAgB,CAAC,CAAC;IAClF,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,QAAQ,GAAgB;IAC5B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2CAA2C;IACxD,KAAK,EAAE,yFAAyF;IAChG,UAAU,EAAE;QACV,sBAAsB,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,WAAW,EACT,oFAAoF;SACvF;QACD,GAAG,UAAU;KACd;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CACJ,GAAG,EACH,iBAAiB,EACjB,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAU,CAAC;QAChE,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;YACtD,GAAG,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,IAAI,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;SACjF,CAAC,CAAC;IACL,CAAC,EACD,YAAY,CACb;CACJ,CAAC;AAEF,qDAAqD;AAErD,MAAM,YAAY,GAAoB;IACpC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,WAAW,EACT,yHAAyH;CAC5H,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,WAAW,GAA8C;IACpE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE;IAC7D,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACtD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;KACpE;IACD,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GACtB,+EAA+E,CAAC;AAKlF,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,QAAiB;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC5F,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;IAChF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS;QAChD,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;IACpD,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE;YACrD,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ;QAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;IACrE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,SAAS,CAAC,KAAgB;IACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,WAAW,KAAK,CAAC,SAAS,EAAE,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,WAAW,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClG,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAmB;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,GAAmB;IACtC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC/C,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,WAAW,GAA8C;IAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IACnE,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4DAA4D;KAC1E;CACF,CAAC;AAEF,MAAM,IAAI,GAAgB;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,wIAAwI;IAC1I,KAAK,EAAE,iFAAiF;IACxF,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;QACrE,OAAO,EAAE,YAAY;KACtB;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACrD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;SACzC,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,mBAAmB,GAAoC;IAC3D,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvD,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE;QAChD,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE;KAC9C;CACF,CAAC;AAEF,MAAM,YAAY,GAAgB;IAChC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,4DAA4D;IACzE,KAAK,EAAE,wCAAwC;IAC/C,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CACJ,GAAG,EACH,sBAAsB,EACtB,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EACvF,mBAAmB,CACpB;CACJ,CAAC;AAEF,MAAM,OAAO,GAAgB;IAC3B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,SAAS;IACf,WAAW,EACT,mhBAAmhB;IACrhB,KAAK,EAAE,8CAA8C,WAAW,+EAA+E;IAC/I,UAAU,EAAE;QACV,GAAG,WAAW;QACd,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+EAA+E;SAC7F;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EACT,yIAAyI;SAC5I;QACD,GAAG,SAAS;QACZ,GAAG,WAAW;KACf;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC;CACzF,CAAC;AAEF,gGAAgG;AAChG,SAAS,UAAU,CAAC,GAAY;IAC9B,IAAI,CAAC,CAAC,GAAG,YAAY,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IACpB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,GAAmB;IAEnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG;QACZ,OAAO;QACP,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;QAC3B,GAAG,UAAU,CAAC,GAAG,CAAC;QAClB,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;IAClD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,UAAU,CAAC,qEAAqE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO;YACL,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,eAAe,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;SAC5E,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,IAAI,SAAS,CAAC,MAAM,KAAK,kBAAkB;QAAE,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM;YAC5C,MAAM,EAAE,WAAW,CACjB,MAAM,EACN,GAAG,aAAa,CAAC,SAAS,CAAC,uCAAuC,CACnE;YACD,QAAQ,EAAE,mBAAmB;SAC9B,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,GAAG,EACH,SAAS,EACT,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAC3C,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAC1B,CAAC;IACF,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,SAAS,YAAY,CACnB,MAAsB,EACtB,MAAc,EACd,MAAoB,EACpB,GAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACZ,GAAG,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACvD,KAAK,eAAe;YAClB,GAAG,CAAC,OAAO,CAAC,uBAAuB,SAAS,CAAC,MAAM,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QACvE,KAAK,YAAY;YACf,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACrD,KAAK,SAAS;YACZ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAClF,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IACzE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAAgB;IAC9B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,mJAAmJ;IACrJ,KAAK,EAAE,wCAAwC,WAAW,EAAE;IAC5D,UAAU,EAAE,WAAW;IACvB,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,QAAQ,GAAgB;IAC5B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,yEAAyE;IACtF,KAAK,EAAE,qCAAqC,WAAW,oCAAoC;IAC3F,UAAU,EAAE;QACV,GAAG,WAAW;QACd,EAAE,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;SAC7E;QACD,GAAG,WAAW;KACf;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAC5C,OAAO,EACP;YACE,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;YAC3B,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,UAAU,CAAC,GAAG,CAAC;SACnB,EACD,WAAW,CAAC,GAAG,CAAC,CACjB,CAAC;IACJ,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,KAAK,GAAgB;IACzB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,WAAW,EACT,2GAA2G;IAC7G,KAAK,EAAE,kCAAkC,WAAW,oBAAoB;IACxE,UAAU,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW,EAAE;IAC9C,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,OAAO,MAAM,GAAG;aACb,MAAM,EAAE;aACR,MAAM,CAAC,IAAI,CAAC,KAAK,CAChB,OAAO,EACP,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,EACnD,WAAW,CAAC,GAAG,CAAC,CACjB,CAAC;IACN,CAAC,CAAC;CACL,CAAC;AAEF;;;;GAIG;AACH,SAAS,eAAe,CAAC,CAAY;IACnC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,gBAAgB,GAAwC;IAC5D,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;IACnB,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;QAC1C,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE;QAC1C,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;QACnD,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,GAAG,EAAE;QACpD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE;QAChD,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE;QACzE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE;KAC1C;CACF,CAAC;AAEF,MAAM,cAAc,GAAgB;IAClC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,0IAA0I;IAC5I,KAAK,EAAE,6CAA6C,WAAW,gCAAgC;IAC/F,UAAU,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,UAAU,EAAE;IAC7C,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CACJ,GAAG,EACH,wBAAwB,EACxB,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;YACxD,GAAG,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,EACD,gBAAgB,CACjB;CACJ,CAAC;AAEF,MAAM,aAAa,GAAgB;IACjC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,wDAAwD;IAC/D,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QAC/D,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,UAAU,GAAY;IAC1B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6DAA6D;IAC1E,WAAW,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,0DAA0D;IACvE,WAAW,EAAE;QACX,IAAI;QACJ,GAAG;QACH,OAAO;QACP,MAAM;QACN,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,YAAY;QACZ,OAAO;QACP,UAAU;QACV,QAAQ;QACR,KAAK;QACL,UAAU;KACX;CACF,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * `--wait[=<duration>]` on the commands that make an agent version live
3
+ * through its scope's release gate policy (`kindgi agents promote`,
4
+ * `kindgi promote --make-live`): read a promotion that waits for an
5
+ * approval until a reviewer decides it, or until the wait runs out.
6
+ *
7
+ * The wait never withdraws the approval. Once it's approved, the version
8
+ * goes live whether or not anything still waits.
9
+ */
10
+ import type { Promotion } from '@kindgi/client';
11
+ import type { CommandContext } from '../context.js';
12
+ import type { ParseArgsOption } from './types.js';
13
+ /** A test seam for the wait's clock and pauses. Production leaves it undefined. */
14
+ export interface ApprovalWaitSeam {
15
+ /** Milliseconds since the epoch. Default: `Date.now`. */
16
+ readonly now?: () => number;
17
+ /** The pause between reads of a promotion. Default: a timer the stop signal cuts short. */
18
+ readonly pause?: (ms: number, signal?: AbortSignal) => Promise<void>;
19
+ }
20
+ /** How often a wait reads the promotion. */
21
+ export declare const APPROVAL_POLL_MS = 5000;
22
+ /** How long a bare `--wait` waits. */
23
+ export declare const DEFAULT_APPROVAL_WAIT_MS: number;
24
+ /**
25
+ * Reads in a row that may fail before a wait gives up, as `kindgi deploy`'s
26
+ * wait for its pack service does: a wait reads the promotion up to 720
27
+ * times an hour, so one failed read mustn't end it.
28
+ */
29
+ export declare const APPROVAL_READ_TRIES = 3;
30
+ export declare const WAIT_FLAG: Readonly<Record<string, ParseArgsOption>>;
31
+ /** `--wait` in milliseconds: `undefined` when it isn't given, an hour when it's bare. */
32
+ export declare function waitFlag(ctx: CommandContext): number | undefined;
33
+ /** `ms` as a `--wait` value says it: `1h`, `30m` or `90s`. */
34
+ export declare function waitWords(ms: number): string;
35
+ /** How a wait ended. `P` is the promotion as last read: `undefined` when none was. */
36
+ export type ApprovalWaited<P extends Promotion | undefined = Promotion> =
37
+ /** A reviewer decided it, or it ended another way: `promotion.status` says how. */
38
+ {
39
+ readonly kind: 'decided';
40
+ readonly promotion: Promotion;
41
+ }
42
+ /** The wait ran out with the promotion still waiting. */
43
+ | {
44
+ readonly kind: 'still-waiting';
45
+ readonly promotion: P;
46
+ }
47
+ /** The person stopped the wait (Ctrl-C). */
48
+ | {
49
+ readonly kind: 'stopped';
50
+ readonly promotion: P;
51
+ }
52
+ /** `APPROVAL_READ_TRIES` reads in a row failed: `message` says why the last one did. */
53
+ | {
54
+ readonly kind: 'unreadable';
55
+ readonly promotion: P;
56
+ readonly message: string;
57
+ };
58
+ /** When a wait of `ms` from now ends, by the seam's clock. */
59
+ export declare function waitDeadline(ctx: CommandContext, ms: number): number;
60
+ /**
61
+ * Read a promotion with `read` until it no longer waits for an approval,
62
+ * until `deadline`, or until the person stops the wait. `promotion` is
63
+ * the promotion as last read; without it, the wait reads it first. A read
64
+ * the server answers with a rate limit is sent again once the limit says
65
+ * so. A read that fails is tried again at the next read, and the wait
66
+ * gives up only when `APPROVAL_READ_TRIES` fail in a row.
67
+ */
68
+ export declare function waitForApproval(ctx: CommandContext, promotion: Promotion, read: () => Promise<Promotion>, deadline: number): Promise<ApprovalWaited>;
69
+ export declare function waitForApproval(ctx: CommandContext, promotion: undefined, read: () => Promise<Promotion>, deadline: number): Promise<ApprovalWaited<Promotion | undefined>>;
70
+ /** A version that waits for an approval, as a line names it: a promotion, or a carried version. */
71
+ export interface WaitingVersion {
72
+ readonly agentId: string;
73
+ /** `null` only on an unpin, which never waits. */
74
+ readonly toVersion: string | null;
75
+ readonly approvalId?: string | undefined;
76
+ readonly status?: string | undefined;
77
+ readonly checks?: readonly {
78
+ readonly name: string;
79
+ readonly message: string;
80
+ }[] | undefined;
81
+ }
82
+ /** The line a wait starts with: what it waits for, and the command that approves it. */
83
+ export declare function waitingLine(promotion: WaitingVersion, ms: number): string;
84
+ /** What a promotion that still waits says: the approval stays open. */
85
+ export declare function stillOpenLine(promotion: WaitingVersion): string;
86
+ /** What a wait that couldn't read the promotion says: why, and that its approval stays open. */
87
+ export declare function unreadableLine(promotion: WaitingVersion, message: string): string;
88
+ /** What a promotion that ended without going live says: how it ended. */
89
+ export declare function endedLine(promotion: WaitingVersion): string;
90
+ //# sourceMappingURL=approval-wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-wait.d.ts","sourceRoot":"","sources":["../../src/commands/approval-wait.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { UsageError } from '../errors.js';
4
+ import { callWaitingOutRateLimits } from '../rate-limit-wait.js';
5
+ /** How often a wait reads the promotion. */
6
+ export const APPROVAL_POLL_MS = 5_000;
7
+ /** How long a bare `--wait` waits. */
8
+ export const DEFAULT_APPROVAL_WAIT_MS = 60 * 60 * 1_000;
9
+ /**
10
+ * Reads in a row that may fail before a wait gives up, as `kindgi deploy`'s
11
+ * wait for its pack service does: a wait reads the promotion up to 720
12
+ * times an hour, so one failed read mustn't end it.
13
+ */
14
+ export const APPROVAL_READ_TRIES = 3;
15
+ const WAIT_RE = /^(\d+)([smh])$/;
16
+ const UNIT_MS = { s: 1_000, m: 60_000, h: 3_600_000 };
17
+ export const WAIT_FLAG = {
18
+ wait: {
19
+ type: 'string',
20
+ optionalValue: true,
21
+ description: 'When a version waits for an approval, wait until a reviewer decides: at most the duration given (90s, 30m, 2h), 1h when none is. Exits 0 once it goes live, and 3 when it is rejected, its approval expires, it is superseded or the wait runs out, and 1 when 3 reads of the promotion in a row fail. An approval stays open after the wait.',
22
+ },
23
+ };
24
+ /** `--wait` in milliseconds: `undefined` when it isn't given, an hour when it's bare. */
25
+ export function waitFlag(ctx) {
26
+ const raw = ctx.options.wait;
27
+ if (raw === undefined)
28
+ return undefined;
29
+ if (raw === '')
30
+ return DEFAULT_APPROVAL_WAIT_MS;
31
+ const span = typeof raw === 'string' ? WAIT_RE.exec(raw) : null;
32
+ const ms = span === null ? 0 : Number(span[1]) * UNIT_MS[span[2]];
33
+ if (ms <= 0)
34
+ throw new UsageError(`--wait must be like 90s, 30m or 2h, got "${String(raw)}"`);
35
+ return ms;
36
+ }
37
+ /** `ms` as a `--wait` value says it: `1h`, `30m` or `90s`. */
38
+ export function waitWords(ms) {
39
+ if (ms % 3_600_000 === 0)
40
+ return `${ms / 3_600_000}h`;
41
+ if (ms % 60_000 === 0)
42
+ return `${ms / 60_000}m`;
43
+ return `${Math.ceil(ms / 1_000)}s`;
44
+ }
45
+ /** When a wait of `ms` from now ends, by the seam's clock. */
46
+ export function waitDeadline(ctx, ms) {
47
+ return (ctx.approvalWaitSeam?.now ?? Date.now)() + ms;
48
+ }
49
+ export async function waitForApproval(ctx, promotion, read, deadline) {
50
+ let current = promotion;
51
+ for (let failedReads = 0;;) {
52
+ if (current !== undefined && current.status !== 'pending-approval') {
53
+ return { kind: 'decided', promotion: current };
54
+ }
55
+ // Nothing to wait for before the first read of a promotion not yet read.
56
+ if (current !== undefined || failedReads > 0) {
57
+ const ended = await pauseBeforeRead(ctx, current, deadline);
58
+ if (ended !== undefined)
59
+ return ended;
60
+ }
61
+ const answer = await readOnce(ctx, read);
62
+ if ('promotion' in answer) {
63
+ current = answer.promotion;
64
+ failedReads = 0;
65
+ continue;
66
+ }
67
+ failedReads += 1;
68
+ if (failedReads >= APPROVAL_READ_TRIES) {
69
+ return { kind: 'unreadable', promotion: current, message: answer.message };
70
+ }
71
+ }
72
+ }
73
+ /** The pause before the next read; how the wait ends, when it runs out or is stopped first. */
74
+ async function pauseBeforeRead(ctx, current, deadline) {
75
+ const seam = ctx.approvalWaitSeam ?? {};
76
+ const left = deadline - (seam.now ?? Date.now)();
77
+ if (left <= 0)
78
+ return { kind: 'still-waiting', promotion: current };
79
+ await (seam.pause ?? pauseUnlessStopped)(Math.min(APPROVAL_POLL_MS, left), ctx.stopSignal);
80
+ return ctx.stopSignal?.aborted === true ? { kind: 'stopped', promotion: current } : undefined;
81
+ }
82
+ /** One read, with a rate limit waited out: the promotion, or why the read failed. */
83
+ async function readOnce(ctx, read) {
84
+ try {
85
+ return { promotion: await callWaitingOutRateLimits(ctx, read) };
86
+ }
87
+ catch (err) {
88
+ return { message: err instanceof Error ? err.message : String(err) };
89
+ }
90
+ }
91
+ /** The agent and the version, as the lines name them. */
92
+ function versionWords(promotion) {
93
+ return promotion.toVersion === null
94
+ ? promotion.agentId
95
+ : `${promotion.agentId} ${promotion.toVersion}`;
96
+ }
97
+ /** The line a wait starts with: what it waits for, and the command that approves it. */
98
+ export function waitingLine(promotion, ms) {
99
+ const what = versionWords(promotion);
100
+ return promotion.approvalId !== undefined
101
+ ? `Waiting up to ${waitWords(ms)} for approval ${promotion.approvalId} of ${what}: \`kindgi approvals complete ${promotion.approvalId} --decision=approve\` approves it.`
102
+ : `Waiting up to ${waitWords(ms)} for an approval of ${what}.`;
103
+ }
104
+ /** What a promotion that still waits says: the approval stays open. */
105
+ export function stillOpenLine(promotion) {
106
+ const which = promotion.approvalId !== undefined ? `Approval ${promotion.approvalId}` : 'Its approval';
107
+ return `${which} stays open: once it's approved, ${versionWords(promotion)} goes live.`;
108
+ }
109
+ /** What a wait that couldn't read the promotion says: why, and that its approval stays open. */
110
+ export function unreadableLine(promotion, message) {
111
+ return `Couldn't read the promotion of ${versionWords(promotion)} ${APPROVAL_READ_TRIES} times in a row (${message}). ${stillOpenLine(promotion)}`;
112
+ }
113
+ /** What a promotion that ended without going live says: how it ended. */
114
+ export function endedLine(promotion) {
115
+ const what = versionWords(promotion);
116
+ const approval = promotion.approvalId !== undefined ? `Approval ${promotion.approvalId}` : 'Its approval';
117
+ switch (promotion.status) {
118
+ case 'rejected':
119
+ return `${approval} was rejected: ${what} doesn't go live.`;
120
+ case 'expired':
121
+ return `${approval} expired undecided: ${what} doesn't go live.`;
122
+ case 'superseded': {
123
+ const reason = recheckMessage(promotion);
124
+ return reason !== undefined
125
+ ? `${what} was superseded: ${reason} Promote it again to ask again.`
126
+ : `${what} was approved, but superseded: something its check measured changed before the approval. Promote it again to ask again.`;
127
+ }
128
+ default:
129
+ return `${what} ended ${promotion.status ?? 'without a status'}: it doesn't go live.`;
130
+ }
131
+ }
132
+ /**
133
+ * Why the server superseded a promotion: its `approval.recheck` check, which
134
+ * the approval adds when something the check measured has changed by then.
135
+ */
136
+ function recheckMessage(promotion) {
137
+ return promotion.checks?.find((check) => check.name === 'approval.recheck')?.message;
138
+ }
139
+ function pauseUnlessStopped(ms, signal) {
140
+ return new Promise((resolve) => {
141
+ if (signal?.aborted === true) {
142
+ resolve();
143
+ return;
144
+ }
145
+ const done = () => {
146
+ clearTimeout(timer);
147
+ signal?.removeEventListener('abort', done);
148
+ resolve();
149
+ };
150
+ const timer = setTimeout(done, ms);
151
+ signal?.addEventListener('abort', done, { once: true });
152
+ });
153
+ }
154
+ //# sourceMappingURL=approval-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-wait.js","sourceRoot":"","sources":["../../src/commands/approval-wait.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AA0KvD,eAAO,MAAM,gBAAgB,EAAE,OAK9B,CAAC"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/commands/artifacts.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AAyStE,eAAO,MAAM,gBAAgB,EAAE,OAK9B,CAAC"}