@revenexx/cli 0.2.1 → 0.4.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 (134) hide show
  1. package/README.md +60 -4
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.mjs +15234 -8801
  4. package/dist/index.cjs +2 -64
  5. package/dist/index.js +2 -64
  6. package/dist/lib/client.d.ts +0 -46
  7. package/dist/lib/client.d.ts.map +1 -1
  8. package/dist/lib/commands/create/appsdk-core.d.ts +36 -0
  9. package/dist/lib/commands/create/appsdk-core.d.ts.map +1 -1
  10. package/dist/lib/commands/create/scaffold-app.d.ts.map +1 -1
  11. package/dist/lib/commands/create/scaffold-theme.d.ts.map +1 -1
  12. package/dist/lib/commands/deploy.d.ts +8 -0
  13. package/dist/lib/commands/deploy.d.ts.map +1 -1
  14. package/dist/lib/commands/generators/base.d.ts +1 -1
  15. package/dist/lib/commands/generic.d.ts.map +1 -1
  16. package/dist/lib/commands/repl.d.ts.map +1 -1
  17. package/dist/lib/commands/services/carts-io.d.ts +3 -0
  18. package/dist/lib/commands/services/carts-io.d.ts.map +1 -0
  19. package/dist/lib/commands/services/carts-items.d.ts +3 -0
  20. package/dist/lib/commands/services/carts-items.d.ts.map +1 -0
  21. package/dist/lib/commands/services/customers-contacts.d.ts +3 -0
  22. package/dist/lib/commands/services/customers-contacts.d.ts.map +1 -0
  23. package/dist/lib/commands/services/customers-organizations.d.ts +3 -0
  24. package/dist/lib/commands/services/customers-organizations.d.ts.map +1 -0
  25. package/dist/lib/commands/services/customers-roles.d.ts +3 -0
  26. package/dist/lib/commands/services/customers-roles.d.ts.map +1 -0
  27. package/dist/lib/commands/services/customers-segments.d.ts +3 -0
  28. package/dist/lib/commands/services/customers-segments.d.ts.map +1 -0
  29. package/dist/lib/commands/services/customers-value-lists.d.ts +3 -0
  30. package/dist/lib/commands/services/customers-value-lists.d.ts.map +1 -0
  31. package/dist/lib/commands/services/customers.d.ts.map +1 -1
  32. package/dist/lib/commands/services/events.d.ts +3 -0
  33. package/dist/lib/commands/services/events.d.ts.map +1 -0
  34. package/dist/lib/commands/services/health.d.ts +3 -0
  35. package/dist/lib/commands/services/health.d.ts.map +1 -0
  36. package/dist/lib/commands/services/inventories-locations.d.ts +3 -0
  37. package/dist/lib/commands/services/inventories-locations.d.ts.map +1 -0
  38. package/dist/lib/commands/services/inventories-reservations.d.ts +3 -0
  39. package/dist/lib/commands/services/inventories-reservations.d.ts.map +1 -0
  40. package/dist/lib/commands/services/inventories-stock.d.ts +3 -0
  41. package/dist/lib/commands/services/inventories-stock.d.ts.map +1 -0
  42. package/dist/lib/commands/services/io.d.ts.map +1 -1
  43. package/dist/lib/commands/services/pages-collaboration.d.ts +3 -0
  44. package/dist/lib/commands/services/pages-collaboration.d.ts.map +1 -0
  45. package/dist/lib/commands/services/pages-delivery.d.ts +3 -0
  46. package/dist/lib/commands/services/pages-delivery.d.ts.map +1 -0
  47. package/dist/lib/commands/services/pages-editor.d.ts +3 -0
  48. package/dist/lib/commands/services/pages-editor.d.ts.map +1 -0
  49. package/dist/lib/commands/services/payments-ledger.d.ts +3 -0
  50. package/dist/lib/commands/services/payments-ledger.d.ts.map +1 -0
  51. package/dist/lib/commands/services/payments-methods.d.ts +3 -0
  52. package/dist/lib/commands/services/payments-methods.d.ts.map +1 -0
  53. package/dist/lib/commands/services/payments-providers.d.ts +3 -0
  54. package/dist/lib/commands/services/payments-providers.d.ts.map +1 -0
  55. package/dist/lib/commands/services/products-assets.d.ts +3 -0
  56. package/dist/lib/commands/services/products-assets.d.ts.map +1 -0
  57. package/dist/lib/commands/services/products-categories.d.ts +3 -0
  58. package/dist/lib/commands/services/products-categories.d.ts.map +1 -0
  59. package/dist/lib/commands/services/products-data-model.d.ts +3 -0
  60. package/dist/lib/commands/services/products-data-model.d.ts.map +1 -0
  61. package/dist/lib/commands/services/products-references.d.ts +3 -0
  62. package/dist/lib/commands/services/products-references.d.ts.map +1 -0
  63. package/dist/lib/commands/services/shipping-carriers.d.ts +3 -0
  64. package/dist/lib/commands/services/shipping-carriers.d.ts.map +1 -0
  65. package/dist/lib/commands/services/shipping-methods.d.ts +3 -0
  66. package/dist/lib/commands/services/shipping-methods.d.ts.map +1 -0
  67. package/dist/lib/commands/services/shipping-value-lists.d.ts +3 -0
  68. package/dist/lib/commands/services/shipping-value-lists.d.ts.map +1 -0
  69. package/dist/lib/commands/tui.d.ts.map +1 -1
  70. package/dist/lib/commands/watch.d.ts +23 -0
  71. package/dist/lib/commands/watch.d.ts.map +1 -0
  72. package/dist/lib/constants.d.ts +1 -1
  73. package/dist/lib/parser.d.ts.map +1 -1
  74. package/dist/lib/sdks.d.ts.map +1 -1
  75. package/dist/lib/tui/app.d.ts.map +1 -1
  76. package/dist/lib/tui/command-tree.d.ts +3 -2
  77. package/dist/lib/tui/command-tree.d.ts.map +1 -1
  78. package/dist/lib/tui/slash-commands.d.ts +62 -0
  79. package/dist/lib/tui/slash-commands.d.ts.map +1 -0
  80. package/dist/lib/tui/watch-create.d.ts +17 -0
  81. package/dist/lib/tui/watch-create.d.ts.map +1 -0
  82. package/dist/lib/tui/watch-pane.d.ts +7 -0
  83. package/dist/lib/tui/watch-pane.d.ts.map +1 -0
  84. package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -1
  85. package/dist/lib/type-generation/languages/dart.d.ts.map +1 -1
  86. package/dist/lib/type-generation/languages/java.d.ts.map +1 -1
  87. package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -1
  88. package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -1
  89. package/dist/lib/type-generation/languages/php.d.ts.map +1 -1
  90. package/dist/lib/type-generation/languages/swift.d.ts.map +1 -1
  91. package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -1
  92. package/dist/lib/watch/condition.d.ts +51 -0
  93. package/dist/lib/watch/condition.d.ts.map +1 -0
  94. package/dist/lib/watch/duration.d.ts +28 -0
  95. package/dist/lib/watch/duration.d.ts.map +1 -0
  96. package/dist/lib/watch/field-path.d.ts +54 -0
  97. package/dist/lib/watch/field-path.d.ts.map +1 -0
  98. package/dist/lib/watch/notify.d.ts +49 -0
  99. package/dist/lib/watch/notify.d.ts.map +1 -0
  100. package/dist/lib/watch/registry.d.ts +25 -0
  101. package/dist/lib/watch/registry.d.ts.map +1 -0
  102. package/dist/lib/watch/run-queue.d.ts +55 -0
  103. package/dist/lib/watch/run-queue.d.ts.map +1 -0
  104. package/dist/lib/watch/scheduler.d.ts +78 -0
  105. package/dist/lib/watch/scheduler.d.ts.map +1 -0
  106. package/dist/lib/watch/session.d.ts +17 -0
  107. package/dist/lib/watch/session.d.ts.map +1 -0
  108. package/dist/lib/watch/types.d.ts +144 -0
  109. package/dist/lib/watch/types.d.ts.map +1 -0
  110. package/dist/lib/watch/use-watchers.d.ts +25 -0
  111. package/dist/lib/watch/use-watchers.d.ts.map +1 -0
  112. package/dist/tests/deploy-pack.test.d.ts +2 -0
  113. package/dist/tests/deploy-pack.test.d.ts.map +1 -0
  114. package/dist/tests/watch-condition.test.d.ts +2 -0
  115. package/dist/tests/watch-condition.test.d.ts.map +1 -0
  116. package/dist/tests/watch-field-path.test.d.ts +2 -0
  117. package/dist/tests/watch-field-path.test.d.ts.map +1 -0
  118. package/dist/tests/watch-notify.test.d.ts +2 -0
  119. package/dist/tests/watch-notify.test.d.ts.map +1 -0
  120. package/dist/tests/watch-registry.test.d.ts +2 -0
  121. package/dist/tests/watch-registry.test.d.ts.map +1 -0
  122. package/dist/tests/watch-run-queue.test.d.ts +2 -0
  123. package/dist/tests/watch-run-queue.test.d.ts.map +1 -0
  124. package/dist/tests/watch-scheduler.test.d.ts +2 -0
  125. package/dist/tests/watch-scheduler.test.d.ts.map +1 -0
  126. package/package.json +2 -2
  127. package/dist/lib/commands/services/inventories.d.ts +0 -3
  128. package/dist/lib/commands/services/inventories.d.ts.map +0 -1
  129. package/dist/lib/commands/services/payments.d.ts +0 -3
  130. package/dist/lib/commands/services/payments.d.ts.map +0 -1
  131. package/dist/lib/commands/services/shipping.d.ts +0 -3
  132. package/dist/lib/commands/services/shipping.d.ts.map +0 -1
  133. package/dist/lib/commands/services/tokens.d.ts +0 -3
  134. package/dist/lib/commands/services/tokens.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipping-carriers.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/shipping-carriers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,gBAAgB,SAOzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const shippingMethods: Command;
3
+ //# sourceMappingURL=shipping-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipping-methods.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/shipping-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,eAAe,SAOxB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const shippingValueLists: Command;
3
+ //# sourceMappingURL=shipping-value-lists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shipping-value-lists.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/shipping-value-lists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,kBAAkB,SAO3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../lib/commands/tui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AA+E3B;;+EAE+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UAAU,EAIrD,CAAC;AAEF,eAAO,MAAM,GAAG,SAgJb,CAAC"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../lib/commands/tui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAqF3B;;+EAE+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,SAAS,OAAO,KAAG,UAAU,EAIrD,CAAC;AAEF,eAAO,MAAM,GAAG,SA8Jb,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The `watch` command group (DX-141): poll a resource field until it reaches a
3
+ * condition.
4
+ *
5
+ * watch add --until 'status terminal' -- imports get-import --import-id abc
6
+ * watch list
7
+ * watch rm 1
8
+ *
9
+ * It behaves differently depending on where it is invoked from, and the split
10
+ * is the whole point of the feature:
11
+ *
12
+ * - Inside the REPL or the TUI, a watcher is registered against the session
13
+ * and the prompt comes straight back, so you keep working while it polls.
14
+ * - One-shot on a terminal there is no session to come back to, so the
15
+ * command blocks with a live line and turns the outcome into an exit code —
16
+ * which is what makes `watch add … && deploy` work in a script.
17
+ * - Non-interactive it refuses, the way `repl` does. Scripts that want a
18
+ * poll loop with no TTY should write the loop; a half-rendered progress
19
+ * line in a CI log helps nobody.
20
+ */
21
+ import { Command } from "commander";
22
+ export declare const watch: Command;
23
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../lib/commands/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA8X5C,eAAO,MAAM,KAAK,SAIG,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export declare const SDK_TITLE = "Revenexx";
2
2
  export declare const SDK_TITLE_LOWER = "revenexx";
3
- export declare const SDK_VERSION = "0.2.1";
3
+ export declare const SDK_VERSION = "0.4.0";
4
4
  export declare const SDK_NAME = "Revenexx CLI";
5
5
  export declare const SDK_PLATFORM = "";
6
6
  export declare const SDK_LANGUAGE = "cli";
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdks.d.ts","sourceRoot":"","sources":["../../lib/sdks.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,aAAa,CAAC;AAYjC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CAgDpD,CAAC;AAEF,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CAyFpD,CAAC"}
1
+ {"version":3,"file":"sdks.d.ts","sourceRoot":"","sources":["../../lib/sdks.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,aAAa,CAAC;AAYjC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CAgDpD,CAAC;AAEF,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CAuFpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../lib/tui/app.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW/C,OAAO,EACL,IAAI,EAIL,MAAM,WAAW,CAAC;AA4BnB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA82B/C,eAAO,MAAM,GAAG,GAAI,oEAYjB;IACD,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACxE,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,gCAkrCA,CAAC;AAuCF;0DAC0D;AAC1D,eAAO,MAAM,MAAM,GACjB,SAAS,UAAU,EACnB,SAAS,SAAS,EAClB,YAAY,MAAM,KACjB,OAAO,CAAC,IAAI,CAuDd,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../lib/tui/app.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW/C,OAAO,EACL,IAAI,EAIL,MAAM,WAAW,CAAC;AAmCnB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAy6B/C,eAAO,MAAM,GAAG,GAAI,oEAYjB;IACD,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACxE,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,gCAyxCA,CAAC;AAuCF;0DAC0D;AAC1D,eAAO,MAAM,MAAM,GACjB,SAAS,UAAU,EACnB,SAAS,SAAS,EAClB,YAAY,MAAM,KACjB,OAAO,CAAC,IAAI,CAuDd,CAAC"}
@@ -21,8 +21,9 @@ export type CommandLeaf = {
21
21
  * browsing: a get/update/delete whose actions are reached from its list. */
22
22
  hidden?: boolean;
23
23
  /** TUI-only synthetic action — open an in-app panel instead of running a
24
- * command (settings → themes opens the theme picker). */
25
- tuiAction?: "theme-picker";
24
+ * command (settings → themes opens the theme picker, and the `/watch` and
25
+ * `/watchlist` slash commands open the watchlist surfaces). */
26
+ tuiAction?: "theme-picker" | "watch-create" | "watch-list";
26
27
  /** Real invocation path when the nav path differs from the command path:
27
28
  * the settings subtree relocates `alias`, so its actions browse under
28
29
  * `settings › alias` but still run as `alias set|list|remove`. */
@@ -1 +1 @@
1
- {"version":3,"file":"command-tree.d.ts","sourceRoot":"","sources":["../../../lib/tui/command-tree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;;mDAE+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gFAC4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;6DACyD;IACzD,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;sEAEkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;0DACsD;IACtD,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B;6EACyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,wDAAwD;IACxD,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC;IAClB;0EACsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;0DAG0D;AAC1D,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,EAAE,KAAG,YAAY,EAmD3D,CAAC;AAmBL;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAOpD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,UAAU,gDAAiD,CAAC;AAUzE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,EAcrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,WAAW,WAAW,CAAC,MAAM,CAAC,KAC7B,MAAM,GAAG,IA4BX,CAAC;AAaF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,YAAY,EAAE,EACvB,OAAO,MAAM,KACZ,YAAY,EAoDd,CAAC"}
1
+ {"version":3,"file":"command-tree.d.ts","sourceRoot":"","sources":["../../../lib/tui/command-tree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;;mDAE+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;gFAC4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;mEAE+D;IAC/D,SAAS,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;IAC3D;;sEAEkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;0DACsD;IACtD,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B;6EACyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,wDAAwD;IACxD,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,IAAI,EAAE,WAAW,CAAC;IAClB;0EACsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;0DAG0D;AAC1D,eAAO,MAAM,WAAW,GAAI,OAAO,WAAW,EAAE,KAAG,YAAY,EAmD3D,CAAC;AAmBL;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAOpD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,UAAU,gDAAiD,CAAC;AAUzE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,EAcrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,WAAW,WAAW,CAAC,MAAM,CAAC,KAC7B,MAAM,GAAG,IA4BX,CAAC;AAaF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,YAAY,EAAE,EACvB,OAAO,MAAM,KACZ,YAAY,EAoDd,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The TUI's `/`-command registry (DX-141): the closed set of words that mean
3
+ * "do a thing" rather than "search for a command", replacing the hardcoded
4
+ * exit/debug/fps chain that used to sit inline in app.tsx's filter handler.
5
+ *
6
+ * `/` does not open a separate palette — it enters the fuzzy command filter
7
+ * with an empty query, so `/` followed by a word *is* the slash command.
8
+ *
9
+ * The visible entries are also the source of their **nav rows**: lib/commands/
10
+ * tui.ts turns them into synthetic CommandNodes (slashNavEntries) so they can be
11
+ * browsed and searched like anything else, rather than only being findable by
12
+ * someone who already knows the word. One registry, both surfaces.
13
+ *
14
+ * Pure and ink-free on purpose: the matching is unit-testable without rendering
15
+ * an app, tui.ts can import it on the one-shot path, and the actions arrive as
16
+ * a context object supplied by App.
17
+ */
18
+ import type { CommandLeaf, CommandNode } from "./command-tree.js";
19
+ /** Callbacks App hands the registry; one per action a slash command can take. */
20
+ export type SlashContext = {
21
+ requestQuit: () => void;
22
+ toggleDebug: () => void;
23
+ openWatchCreate: () => void;
24
+ openWatchList: () => void;
25
+ };
26
+ export type SlashCommand = {
27
+ name: string;
28
+ aliases?: readonly string[];
29
+ description: string;
30
+ /**
31
+ * Dispatchable by typing the word, but never given a nav row. The three
32
+ * inherited words are hidden to preserve their long-standing behaviour
33
+ * exactly: typing `exi` or `deb` has always shown "no matches", and `debug`
34
+ * is an undocumented diagnostics egg.
35
+ */
36
+ hidden?: boolean;
37
+ /** Which in-app pane a visible entry opens, for its synthetic nav row. */
38
+ tuiAction?: NonNullable<CommandLeaf["tuiAction"]>;
39
+ run: (context: SlashContext) => void;
40
+ };
41
+ export declare const SLASH_COMMANDS: readonly SlashCommand[];
42
+ /**
43
+ * Exact-word lookup for the **hidden** words only, which fire the instant the
44
+ * word completes — the behaviour `exit`, `debug` and `fps` have always had, and
45
+ * the reason typing `exi` shows no matches rather than a row.
46
+ *
47
+ * Visible commands deliberately do NOT fire this way. `watch` is a prefix of
48
+ * `watchlist`, so instant-firing on the shorter word would make the longer one
49
+ * impossible to type; they are offered as rows and dispatched on Enter, which
50
+ * is also how you discover them.
51
+ */
52
+ export declare const matchInstantSlash: (word: string) => SlashCommand | undefined;
53
+ /**
54
+ * The visible commands as browsable nav rows. They land in the root "commands"
55
+ * section next to `login`/`status` — a synthetic node with no subcommands and a
56
+ * tuiAction, exactly the shape the `themes` entry already uses — so the
57
+ * watchlist is something you can find by looking rather than only by knowing
58
+ * the word. Because they are real nav entries, flattenTree picks them up and
59
+ * they appear in `/` search too, with no second code path.
60
+ */
61
+ export declare const slashNavEntries: () => CommandNode[];
62
+ //# sourceMappingURL=slash-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../../lib/tui/slash-commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,iFAAiF;AACjF,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EA2BjD,CAAC;AASF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,YAAY,GAAG,SAM/D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,QAAO,WAAW,EAMzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { CommandNode, PaletteEntry } from "./command-tree.js";
2
+ import type { PromptSpec, ResourceRecord } from "../interactive.js";
3
+ export declare const WATCH_CREATE_HINTS: [string, string][];
4
+ /**
5
+ * Get-by-id commands, enumerated straight off the command tree. flattenTree
6
+ * deliberately drops leaves folded behind their list (which is exactly what a
7
+ * get is), so it can't be reused here.
8
+ */
9
+ export declare const getByIdEntries: (commands: CommandNode[]) => PaletteEntry[];
10
+ export declare const WatchCreate: ({ commands, width, onClose, onNotice, loadResourceRecords, }: {
11
+ commands: CommandNode[];
12
+ width: number;
13
+ onClose: () => void;
14
+ onNotice: (text: string, tone: "success" | "danger" | "warn") => void;
15
+ loadResourceRecords?: (spec: PromptSpec, query?: string) => Promise<ResourceRecord[]>;
16
+ }) => import("react").JSX.Element;
17
+ //# sourceMappingURL=watch-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-create.d.ts","sourceRoot":"","sources":["../../../lib/tui/watch-create.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAe,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBhF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMpE,eAAO,MAAM,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAIhD,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,WAAW,EAAE,KAAG,YAAY,EAclE,CAAC;AA+EJ,eAAO,MAAM,WAAW,GAAI,8DAMzB;IACD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,KAAK,IAAI,CAAC;IACtE,mBAAmB,CAAC,EAAE,CACpB,IAAI,EAAE,UAAU,EAChB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAChC,gCAibA,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Status-bar keys while this pane owns the keyboard. */
2
+ export declare const WATCH_PANE_HINTS: [string, string][];
3
+ export declare const WatchPane: ({ width, onClose, }: {
4
+ width: number;
5
+ onClose: () => void;
6
+ }) => import("react").JSX.Element;
7
+ //# sourceMappingURL=watch-pane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-pane.d.ts","sourceRoot":"","sources":["../../../lib/tui/watch-pane.tsx"],"names":[],"mappings":"AAyBA,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAK9C,CAAC;AA0EF,eAAO,MAAM,SAAS,GAAI,qBAGvB;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,gCAkGA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/csharp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,MAAO,SAAQ,YAAY;IACtC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAqHrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/csharp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,MAAO,SAAQ,YAAY;IACtC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAqHrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"dart.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/dart.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAC;AAmBvB,qBAAa,IAAK,SAAQ,YAAY;IACpC,cAAc,IAAI,MAAM;IAqCxB,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,cAAc;IAWjB,WAAW,IAAI,MAAM;IA+GrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"dart.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/dart.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAC;AAoBvB,qBAAa,IAAK,SAAQ,YAAY;IACpC,cAAc,IAAI,MAAM;IAqCxB,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,cAAc;IAWjB,WAAW,IAAI,MAAM;IA+GrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA2DT,WAAW,IAAI,MAAM;IAiFrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/java.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,IAAK,SAAQ,YAAY;IACpC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA2DT,WAAW,IAAI,MAAM;IAiFrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/javascript.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM;IA4DjE,YAAY,IAAI,OAAO;IAIvB,OAAO,CAAC,iBAAiB;IAezB,WAAW,IAAI,MAAM;IA8BrB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM;CAG/C"}
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/javascript.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,MAAM;IA4DjE,YAAY,IAAI,OAAO;IAIvB,OAAO,CAAC,iBAAiB;IAezB,WAAW,IAAI,MAAM;IA8BrB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM;CAG/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/kotlin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,MAAO,SAAQ,YAAY;IACtC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAiCrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/kotlin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,MAAO,SAAQ,YAAY;IACtC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAiCrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/php.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,GAAI,SAAQ,YAAY;IACnC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA0DT,WAAW,IAAI,MAAM;IA0DrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/php.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,GAAI,SAAQ,YAAY;IACnC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA0DT,WAAW,IAAI,MAAM;IA0DrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/swift.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,qBAAa,KAAM,SAAQ,YAAY;IACrC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAiHrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/swift.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,KAAM,SAAQ,YAAY;IACrC,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IA8DT,WAAW,IAAI,MAAM;IAiHrB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;CAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAC;AAyBvB,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IAuBT,YAAY,IAAI,OAAO;IAIvB,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,cAAc;IAWjB,WAAW,IAAI,MAAM;IAiCrB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM;CAG/C"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../lib/type-generation/languages/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EAEf,MAAM,eAAe,CAAC;AA0BvB,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,UAAU,EAAE,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM;IAuBT,YAAY,IAAI,OAAO;IAIvB,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,cAAc;IAWjB,WAAW,IAAI,MAAM;IAiCrB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM;CAG/C"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Watch conditions (DX-141): the closed set of ways a watcher can decide it is
3
+ * done, plus the parser behind `--until` and the formatter the UIs echo back.
4
+ */
5
+ import type { Resolved, WatchCondition } from "./types.js";
6
+ export declare const CONDITION_KEYWORDS: readonly ["changed", "equals", "matches", "terminal", "truthy"];
7
+ /**
8
+ * "Terminal" means *stopped moving*, not *won*: a watcher must stop and tell
9
+ * you the deploy failed, not spin to timeout while the resource sits in
10
+ * `failed`. Both the success and the failure sinks are in the set.
11
+ */
12
+ export declare const DEFAULT_TERMINAL_STATES: readonly string[];
13
+ export declare const defaultTerminalStates: () => readonly string[];
14
+ /**
15
+ * The absent arm of each branch is declared as `undefined` rather than omitted:
16
+ * this package compiles with `strict: false`, where TypeScript will not narrow
17
+ * a union by a boolean discriminant, so callers must be able to read `.error`
18
+ * off the union directly.
19
+ */
20
+ export type ConditionParse = {
21
+ ok: true;
22
+ condition: WatchCondition;
23
+ error?: undefined;
24
+ } | {
25
+ ok: false;
26
+ condition?: undefined;
27
+ error: string;
28
+ };
29
+ export declare const parseCondition: (text: string) => ConditionParse;
30
+ export type UntilParse = {
31
+ ok: true;
32
+ fieldPath: string;
33
+ condition: WatchCondition;
34
+ error?: undefined;
35
+ } | {
36
+ ok: false;
37
+ fieldPath?: undefined;
38
+ condition?: undefined;
39
+ error: string;
40
+ };
41
+ /**
42
+ * `[<field-path>] <condition>` — the shape `--until` takes. One flag carries
43
+ * both because `--until 'status equals ready'` reads better than splitting it,
44
+ * and the condition keywords are a closed set, so a leading token that is not
45
+ * one of them is unambiguously the field path. Callers that pass `--field`
46
+ * separately can use parseCondition directly.
47
+ */
48
+ export declare const parseUntil: (text: string) => UntilParse;
49
+ export declare const evaluateCondition: (condition: WatchCondition, current: Resolved, baseline: Resolved | null) => boolean;
50
+ export declare const formatCondition: (condition: WatchCondition) => string;
51
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../lib/watch/condition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D,eAAO,MAAM,kBAAkB,iEAMrB,CAAC;AAMX;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAuBpD,CAAC;AAuBF,eAAO,MAAM,qBAAqB,QAAO,SAAS,MAAM,EACoB,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAwDxD,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,cA+B7C,CAAC;AAYF,MAAM,MAAM,UAAU,GAClB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,UAkBzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,cAAc,EACzB,SAAS,QAAQ,EACjB,UAAU,QAAQ,GAAG,IAAI,KACxB,OAuCF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,cAAc,KAAG,MAe3D,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Human durations for the watch flags (`--every 5s`, `--for 10m`) and the TUI
3
+ * wizard's cadence step (DX-141).
4
+ */
5
+ /**
6
+ * The absent arm of each branch is declared as `undefined` rather than omitted:
7
+ * this package compiles with `strict: false`, where TypeScript will not narrow
8
+ * a union by a boolean discriminant, so callers must be able to read `.error`
9
+ * off the union directly.
10
+ */
11
+ export type DurationParse = {
12
+ ok: true;
13
+ ms: number;
14
+ error?: undefined;
15
+ } | {
16
+ ok: false;
17
+ ms?: undefined;
18
+ error: string;
19
+ };
20
+ /**
21
+ * `500ms` | `5s` | `2m` | `1h` | `30` — a bare number is **seconds**, which is
22
+ * what everyone means when they type `--every 5`. Fractions are allowed
23
+ * (`0.5m`); the result is rounded to whole milliseconds.
24
+ */
25
+ export declare const parseDuration: (text: string) => DurationParse;
26
+ /** Compact, for status lines and table cells: `900ms`, `42s`, `3m 05s`, `2h 07m`. */
27
+ export declare const formatDuration: (ms: number) => string;
28
+ //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../../lib/watch/duration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC3C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,aAoB5C,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAS3C,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Dot-path resolution into a poll payload, plus the canonical text form every
3
+ * condition compares against (DX-141).
4
+ *
5
+ * The one design decision worth knowing before reading: there is **no implicit
6
+ * descent into a list envelope**. See resolveFieldPath.
7
+ */
8
+ import type { Resolved } from "./types.js";
9
+ /**
10
+ * Comparable text for a resolved value. Scalars stringify to exactly what a
11
+ * user would type at the flag (`null`, `true`, `42`, `ready`), so
12
+ * `--until 'code equals 200'` matches the number 200 and
13
+ * `--until 'error equals null'` matches JSON null without the caller having to
14
+ * guess the wire type. Containers get stable JSON — `equals` on them is
15
+ * possible, though `matches` is the sane tool there.
16
+ */
17
+ export declare const canonical: (value: unknown) => string;
18
+ /** Segments, or null when the path is malformed (an empty segment). */
19
+ export declare const parseFieldPath: (path: string) => string[] | null;
20
+ /**
21
+ * Walk `path` into `data`.
22
+ *
23
+ * Deliberately strict about list envelopes: a bare `status` against the
24
+ * gateway's `{ items, page }` resolves to `missing`, **not** `items[0].status`.
25
+ * A page of 50 records has 50 statuses, and picking `[0]` would depend on a
26
+ * default sort the CLI neither controls nor displays — a watcher silently
27
+ * tracking whichever row sorted first is a wrong answer wearing a right
28
+ * answer's clothes. It would also make the same `--until 'status equals ready'`
29
+ * mean two different things depending on which command it was pointed at.
30
+ * Being explicit costs eight characters: `items.0.status`. What falls out free
31
+ * and is worth knowing: `page.total`, `page.hasMore`, `items.length`.
32
+ */
33
+ export declare const resolveFieldPath: (data: unknown, path: string) => Resolved;
34
+ /**
35
+ * Every path a surface can offer as a suggestion, depth-first and capped. Used
36
+ * by the TUI wizard to turn a probed payload into a pick list instead of making
37
+ * the user know the field names.
38
+ */
39
+ export declare const enumerateFieldPaths: (data: unknown, { maxDepth, maxPaths }?: {
40
+ maxDepth?: number;
41
+ maxPaths?: number;
42
+ }) => string[];
43
+ /**
44
+ * Advisory only — a prefill for the surfaces, never applied by the resolver. A
45
+ * get-by-id response is a bare object whose interesting field is nearly always
46
+ * `status`; a list envelope's is `page.total`.
47
+ */
48
+ export declare const suggestFieldPath: (data: unknown) => string | null;
49
+ /**
50
+ * Short display text for a resolved value: an em dash for a miss, scalars bare,
51
+ * containers as truncated JSON.
52
+ */
53
+ export declare const formatResolved: (resolved: Resolved | null, max?: number) => string;
54
+ //# sourceMappingURL=field-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-path.d.ts","sourceRoot":"","sources":["../../../lib/watch/field-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,MAkB1C,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAM,EAAE,GAAG,IAKxD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAG,QAkC9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,EACb,yBAAkC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KAC9E,MAAM,EAqBR,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAOzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,GAAG,IAAI,EAAE,YAAQ,KAAG,MAIpE,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Notification ports for the watchlist (DX-141). The scheduler calls one
3
+ * interface on every state transition; the TUI renders a toast and a badge, the
4
+ * REPL prints a line and rings the bell. Ports differ in *rendering*, not in
5
+ * which transitions they care about — filtering belongs to the port.
6
+ */
7
+ import type { WatchState, Watcher } from "./types.js";
8
+ export type WatchNotification = {
9
+ watcher: Watcher;
10
+ /** The state it left, so a port can ignore intra-poll churn. */
11
+ from: WatchState;
12
+ to: WatchState;
13
+ };
14
+ export type NotificationPort = {
15
+ onTransition(event: WatchNotification): void;
16
+ };
17
+ export type NotificationPortSet = NotificationPort & {
18
+ /** Returns a detach function, mirroring registry.subscribe. */
19
+ attach(port: NotificationPort): () => void;
20
+ };
21
+ export declare const createPortSet: () => NotificationPortSet;
22
+ /** The scheduler singleton's port set. */
23
+ export declare const watchPorts: NotificationPortSet;
24
+ /** Test seam (and a hook for any future surface). Pass null to restore. */
25
+ export declare const bindOutOfBandWriter: (write: ((chunk: string) => void) | null) => void;
26
+ export declare const writeOutOfBand: (chunk: string) => void;
27
+ /** Reset the coalescing window. Tests only. */
28
+ export declare const resetBellState: () => void;
29
+ export declare const ringBell: (now?: () => number) => void;
30
+ /** Glyph + a one-line summary of how a watcher ended. */
31
+ export declare const formatWatchOutcome: (watcher: Watcher) => {
32
+ glyph: string;
33
+ tone: "success" | "danger" | "warn";
34
+ text: string;
35
+ };
36
+ /**
37
+ * REPL: a line plus a bell. readline may be parked mid-prompt, so the notice
38
+ * starts with \r + erase-line rather than half-overwriting the prompt, and the
39
+ * caller's `redraw` repaints it afterwards — otherwise the user is left
40
+ * apparently prompt-less until the next keystroke.
41
+ */
42
+ export declare const createReplNotificationPort: (redraw: () => void) => NotificationPort;
43
+ /**
44
+ * TUI: an in-app toast plus the bell. Built once and handed a ref-backed
45
+ * callback — the scheduler holds the port for the process lifetime, so a port
46
+ * closing over a render-scoped setter would go stale.
47
+ */
48
+ export declare const createTuiNotificationPort: (toast: (text: string, tone: "success" | "danger" | "warn") => void) => NotificationPort;
49
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../lib/watch/notify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,+DAA+D;IAC/D,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,mBAoBhC,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,UAAU,EAAE,mBAAqC,CAAC;AAsB/D,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,GAC9B,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,KACtC,IAEF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,IAE9C,CAAC;AAgBF,+CAA+C;AAC/C,eAAO,MAAM,cAAc,QAAO,IAEjC,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAK,MAAM,MAAiB,KAAG,IAOvD,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,KACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAyCpE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,IAAI,KACjB,gBAQD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,KAAK,IAAI,KACjE,gBAOD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The watcher store (DX-141). A mutable exported singleton, which is the grain
3
+ * of this codebase — lib/tui/theme.ts does the same with the active palette,
4
+ * and the TUI has no context or event bus (everything else is prop-drilled from
5
+ * App). The REPL, the one-shot `watch` command and the TUI pane all read the
6
+ * same store, so the surfaces cannot disagree about what is running.
7
+ */
8
+ import type { Watcher } from "./types.js";
9
+ export type WatchRegistry = {
10
+ get(id: string): Watcher | undefined;
11
+ /** Referentially stable between mutations — see the note on emit(). */
12
+ snapshot(): readonly Watcher[];
13
+ add(watcher: Watcher): Watcher;
14
+ update(id: string, patch: Partial<Watcher>): Watcher | undefined;
15
+ remove(id: string): boolean;
16
+ clear(): void;
17
+ /** Drop finished watchers past MAX_RETAINED_WATCHERS, oldest-finished first. */
18
+ prune(): void;
19
+ /** Listeners are NOT invoked on subscribe; callers read snapshot() first. */
20
+ subscribe(listener: () => void): () => void;
21
+ };
22
+ export declare const createWatchRegistry: () => WatchRegistry;
23
+ /** Process-wide store, shared by every surface. */
24
+ export declare const watchRegistry: WatchRegistry;
25
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../lib/watch/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,uEAAuE;IACvE,QAAQ,IAAI,SAAS,OAAO,EAAE,CAAC;IAC/B,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;IACd,gFAAgF;IAChF,KAAK,IAAI,IAAI,CAAC;IACd,6EAA6E;IAC7E,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,aAmEtC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,aAAa,EAAE,aAAqC,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * One process-wide lock over "something is driving the commander program right
3
+ * now" (DX-141). Everything that patches the shared process globals must pass
4
+ * through it:
5
+ *
6
+ * - lib/tui/executor.ts's runner patches process.exit, both stream writes,
7
+ * all five console.* methods and cliConfig, restoring them in a finally.
8
+ * Two overlapping calls corrupt each other — the inner finally restores
9
+ * while the outer is still running, so the outer's output leaks onto the
10
+ * ink frame and its captured buffers come back wrong.
11
+ * - lib/commands/repl.ts's runLine patches process.exit and resets cliConfig
12
+ * around a bare parseAsync — a different mechanism over the same globals.
13
+ *
14
+ * Background polls therefore cannot merely serialize against each other; they
15
+ * have to serialize against the foreground too. That is why the primitive here
16
+ * is a lock over *thunks* rather than a queue of token arrays: the REPL's line
17
+ * runner is not a TuiRunner call and could not otherwise be covered.
18
+ *
19
+ * RE-ENTRANCY RULE: never call withRunLock (or enqueueRun) from inside a locked
20
+ * task — it deadlocks. The scheduler's first poll is deliberately deferred onto
21
+ * a timer for exactly this reason: `watch add` typed at the REPL executes
22
+ * inside runLine, which already holds the lock.
23
+ */
24
+ import type { ExecutionResult, TuiRunner } from "../tui/executor.js";
25
+ export type RunPriority = "foreground" | "background";
26
+ /** Rejection handed to entries dropped by drainRunQueue. */
27
+ export declare class RunQueueClosed extends Error {
28
+ constructor();
29
+ }
30
+ /** The TUI and the REPL bind the live program's runner for the session. */
31
+ export declare const bindRunQueue: (runner: TuiRunner | null) => void;
32
+ export declare const isRunQueueBound: () => boolean;
33
+ /** For the status bar: "polling · 2 queued". */
34
+ export declare const runQueueDepth: () => {
35
+ running: boolean;
36
+ queued: number;
37
+ };
38
+ export declare const withRunLock: <T>(task: () => Promise<T>, priority?: RunPriority) => Promise<T>;
39
+ export declare const enqueueRun: (tokens: readonly string[], options?: {
40
+ force?: boolean;
41
+ priority?: RunPriority;
42
+ }) => Promise<ExecutionResult>;
43
+ /**
44
+ * Teardown: drop everything not yet started, then await the in-flight run so
45
+ * nothing resolves into a torn-down ink tree.
46
+ *
47
+ * Bounded, because "in flight" can mean a request the client is still retrying:
48
+ * its own timeout is 30 s and it retries idempotent GETs three times, so an
49
+ * unbounded wait would leave someone staring at a restored terminal for a
50
+ * minute after pressing q. Abandoning the wait is safe — every watcher has
51
+ * already been cancelled by the time this runs, so the poll's continuation
52
+ * re-reads a terminal state and does nothing.
53
+ */
54
+ export declare const drainRunQueue: (timeoutMs?: number) => Promise<void>;
55
+ //# sourceMappingURL=run-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-queue.d.ts","sourceRoot":"","sources":["../../../lib/watch/run-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtD,4DAA4D;AAC5D,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AAaD,2EAA2E;AAC3E,eAAO,MAAM,YAAY,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEvD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,OAAyB,CAAC;AAE7D,gDAAgD;AAChD,eAAO,MAAM,aAAa,QAAO;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAGjE,CAAC;AAqBH,eAAO,MAAM,WAAW,GAAI,CAAC,EAC3B,MAAM,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,WAAU,WAA0B,KACnC,OAAO,CAAC,CAAC,CAmBR,CAAC;AAEL,eAAO,MAAM,UAAU,GACrB,QAAQ,SAAS,MAAM,EAAE,EACzB,UAAS;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;CAAO,KACxD,OAAO,CAAC,eAAe,CAIY,CAAC;AAKvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GACxB,kBAA4B,KAC3B,OAAO,CAAC,IAAI,CAOd,CAAC"}