opensip-cli 0.1.5 → 0.1.7

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 (229) hide show
  1. package/dist/bootstrap/admit-tool-package.d.ts +15 -1
  2. package/dist/bootstrap/admit-tool-package.d.ts.map +1 -1
  3. package/dist/bootstrap/admit-tool-package.js +30 -5
  4. package/dist/bootstrap/admit-tool-package.js.map +1 -1
  5. package/dist/bootstrap/bind-tool-context.d.ts.map +1 -1
  6. package/dist/bootstrap/bind-tool-context.js +5 -3
  7. package/dist/bootstrap/bind-tool-context.js.map +1 -1
  8. package/dist/bootstrap/build-command-registration-input.d.ts +7 -0
  9. package/dist/bootstrap/build-command-registration-input.d.ts.map +1 -1
  10. package/dist/bootstrap/build-command-registration-input.js +11 -4
  11. package/dist/bootstrap/build-command-registration-input.js.map +1 -1
  12. package/dist/bootstrap/build-per-run-scope.d.ts +12 -0
  13. package/dist/bootstrap/build-per-run-scope.d.ts.map +1 -1
  14. package/dist/bootstrap/build-per-run-scope.js +84 -9
  15. package/dist/bootstrap/build-per-run-scope.js.map +1 -1
  16. package/dist/bootstrap/bundled-manifest.d.ts +5 -0
  17. package/dist/bootstrap/bundled-manifest.d.ts.map +1 -0
  18. package/dist/bootstrap/bundled-manifest.js +13 -0
  19. package/dist/bootstrap/bundled-manifest.js.map +1 -0
  20. package/dist/bootstrap/bundled-tools.manifest.json +19 -1
  21. package/dist/bootstrap/config-and-capabilities.d.ts +5 -3
  22. package/dist/bootstrap/config-and-capabilities.d.ts.map +1 -1
  23. package/dist/bootstrap/config-and-capabilities.js +10 -7
  24. package/dist/bootstrap/config-and-capabilities.js.map +1 -1
  25. package/dist/bootstrap/constants.d.ts +3 -0
  26. package/dist/bootstrap/constants.d.ts.map +1 -0
  27. package/dist/bootstrap/constants.js +3 -0
  28. package/dist/bootstrap/constants.js.map +1 -0
  29. package/dist/bootstrap/decorate-tool-primary.d.ts +50 -0
  30. package/dist/bootstrap/decorate-tool-primary.d.ts.map +1 -0
  31. package/dist/bootstrap/decorate-tool-primary.js +111 -0
  32. package/dist/bootstrap/decorate-tool-primary.js.map +1 -0
  33. package/dist/bootstrap/execute-post-bailout-bootstrap.d.ts +1 -0
  34. package/dist/bootstrap/execute-post-bailout-bootstrap.d.ts.map +1 -1
  35. package/dist/bootstrap/execute-post-bailout-bootstrap.js +12 -1
  36. package/dist/bootstrap/execute-post-bailout-bootstrap.js.map +1 -1
  37. package/dist/bootstrap/index.d.ts +1 -1
  38. package/dist/bootstrap/index.d.ts.map +1 -1
  39. package/dist/bootstrap/index.js +1 -4
  40. package/dist/bootstrap/index.js.map +1 -1
  41. package/dist/bootstrap/io-plane.d.ts +47 -0
  42. package/dist/bootstrap/io-plane.d.ts.map +1 -0
  43. package/dist/bootstrap/io-plane.js +73 -0
  44. package/dist/bootstrap/io-plane.js.map +1 -0
  45. package/dist/bootstrap/load-tool-capabilities.d.ts.map +1 -1
  46. package/dist/bootstrap/load-tool-capabilities.js +18 -2
  47. package/dist/bootstrap/load-tool-capabilities.js.map +1 -1
  48. package/dist/bootstrap/owning-tool-init.d.ts.map +1 -1
  49. package/dist/bootstrap/owning-tool-init.js +7 -4
  50. package/dist/bootstrap/owning-tool-init.js.map +1 -1
  51. package/dist/bootstrap/phase-map.d.ts +20 -0
  52. package/dist/bootstrap/phase-map.d.ts.map +1 -0
  53. package/dist/bootstrap/phase-map.js +108 -0
  54. package/dist/bootstrap/phase-map.js.map +1 -0
  55. package/dist/bootstrap/plan-pre-action-bootstrap.d.ts +5 -5
  56. package/dist/bootstrap/plan-pre-action-bootstrap.d.ts.map +1 -1
  57. package/dist/bootstrap/plan-pre-action-bootstrap.js +3 -19
  58. package/dist/bootstrap/plan-pre-action-bootstrap.js.map +1 -1
  59. package/dist/bootstrap/pre-action-guards.d.ts +2 -1
  60. package/dist/bootstrap/pre-action-guards.d.ts.map +1 -1
  61. package/dist/bootstrap/pre-action-guards.js +3 -27
  62. package/dist/bootstrap/pre-action-guards.js.map +1 -1
  63. package/dist/bootstrap/pre-action-hook.d.ts +2 -1
  64. package/dist/bootstrap/pre-action-hook.d.ts.map +1 -1
  65. package/dist/bootstrap/pre-action-hook.js +23 -4
  66. package/dist/bootstrap/pre-action-hook.js.map +1 -1
  67. package/dist/bootstrap/register-tools-discovery.d.ts +38 -39
  68. package/dist/bootstrap/register-tools-discovery.d.ts.map +1 -1
  69. package/dist/bootstrap/register-tools-discovery.js +134 -85
  70. package/dist/bootstrap/register-tools-discovery.js.map +1 -1
  71. package/dist/bootstrap/register-tools-mount.d.ts +18 -1
  72. package/dist/bootstrap/register-tools-mount.d.ts.map +1 -1
  73. package/dist/bootstrap/register-tools-mount.js +118 -18
  74. package/dist/bootstrap/register-tools-mount.js.map +1 -1
  75. package/dist/bootstrap/register-tools.d.ts +58 -14
  76. package/dist/bootstrap/register-tools.d.ts.map +1 -1
  77. package/dist/bootstrap/register-tools.js +185 -14
  78. package/dist/bootstrap/register-tools.js.map +1 -1
  79. package/dist/bootstrap/root-version.d.ts +26 -0
  80. package/dist/bootstrap/root-version.d.ts.map +1 -0
  81. package/dist/bootstrap/root-version.js +36 -0
  82. package/dist/bootstrap/root-version.js.map +1 -0
  83. package/dist/bootstrap/scope-access.d.ts +11 -0
  84. package/dist/bootstrap/scope-access.d.ts.map +1 -1
  85. package/dist/bootstrap/scope-access.js +26 -0
  86. package/dist/bootstrap/scope-access.js.map +1 -1
  87. package/dist/bootstrap/tool-lifecycle.d.ts +0 -22
  88. package/dist/bootstrap/tool-lifecycle.d.ts.map +1 -1
  89. package/dist/bootstrap/tool-lifecycle.js +0 -23
  90. package/dist/bootstrap/tool-lifecycle.js.map +1 -1
  91. package/dist/bootstrap/validate-tool.d.ts +10 -4
  92. package/dist/bootstrap/validate-tool.d.ts.map +1 -1
  93. package/dist/bootstrap/validate-tool.js +76 -22
  94. package/dist/bootstrap/validate-tool.js.map +1 -1
  95. package/dist/cli-context.d.ts +2 -2
  96. package/dist/cli-context.d.ts.map +1 -1
  97. package/dist/cli-context.js +20 -35
  98. package/dist/cli-context.js.map +1 -1
  99. package/dist/commands/agent-catalog.d.ts +29 -0
  100. package/dist/commands/agent-catalog.d.ts.map +1 -1
  101. package/dist/commands/agent-catalog.js +77 -36
  102. package/dist/commands/agent-catalog.js.map +1 -1
  103. package/dist/commands/clear.d.ts.map +1 -1
  104. package/dist/commands/clear.js +0 -1
  105. package/dist/commands/clear.js.map +1 -1
  106. package/dist/commands/command-scope-index.d.ts +45 -0
  107. package/dist/commands/command-scope-index.d.ts.map +1 -0
  108. package/dist/commands/command-scope-index.js +51 -0
  109. package/dist/commands/command-scope-index.js.map +1 -0
  110. package/dist/commands/completion.d.ts +67 -6
  111. package/dist/commands/completion.d.ts.map +1 -1
  112. package/dist/commands/completion.js +84 -12
  113. package/dist/commands/completion.js.map +1 -1
  114. package/dist/commands/configure.d.ts.map +1 -1
  115. package/dist/commands/configure.js +0 -1
  116. package/dist/commands/configure.js.map +1 -1
  117. package/dist/commands/host-command-specs.d.ts +16 -9
  118. package/dist/commands/host-command-specs.d.ts.map +1 -1
  119. package/dist/commands/host-command-specs.js +47 -21
  120. package/dist/commands/host-command-specs.js.map +1 -1
  121. package/dist/commands/host-config-flag.d.ts +21 -0
  122. package/dist/commands/host-config-flag.d.ts.map +1 -0
  123. package/dist/commands/host-config-flag.js +21 -0
  124. package/dist/commands/host-config-flag.js.map +1 -0
  125. package/dist/commands/host-subcommand-groups.d.ts +46 -5
  126. package/dist/commands/host-subcommand-groups.d.ts.map +1 -1
  127. package/dist/commands/host-subcommand-groups.js +97 -65
  128. package/dist/commands/host-subcommand-groups.js.map +1 -1
  129. package/dist/commands/index.d.ts +1 -1
  130. package/dist/commands/index.js +1 -1
  131. package/dist/commands/internal-command-visibility.d.ts +42 -0
  132. package/dist/commands/internal-command-visibility.d.ts.map +1 -0
  133. package/dist/commands/internal-command-visibility.js +54 -0
  134. package/dist/commands/internal-command-visibility.js.map +1 -0
  135. package/dist/commands/mount-command-action.d.ts +24 -0
  136. package/dist/commands/mount-command-action.d.ts.map +1 -0
  137. package/dist/commands/mount-command-action.js +78 -0
  138. package/dist/commands/mount-command-action.js.map +1 -0
  139. package/dist/commands/mount-command-spec-wiring.d.ts +24 -0
  140. package/dist/commands/mount-command-spec-wiring.d.ts.map +1 -0
  141. package/dist/commands/mount-command-spec-wiring.js +71 -0
  142. package/dist/commands/mount-command-spec-wiring.js.map +1 -0
  143. package/dist/commands/mount-command-spec.d.ts +9 -2
  144. package/dist/commands/mount-command-spec.d.ts.map +1 -1
  145. package/dist/commands/mount-command-spec.js +11 -135
  146. package/dist/commands/mount-command-spec.js.map +1 -1
  147. package/dist/commands/plugin/domain-resolution.d.ts +12 -13
  148. package/dist/commands/plugin/domain-resolution.d.ts.map +1 -1
  149. package/dist/commands/plugin/domain-resolution.js +12 -58
  150. package/dist/commands/plugin/domain-resolution.js.map +1 -1
  151. package/dist/commands/plugin/host-dir.d.ts +0 -1
  152. package/dist/commands/plugin/host-dir.d.ts.map +1 -1
  153. package/dist/commands/plugin/host-dir.js +1 -1
  154. package/dist/commands/plugin/host-dir.js.map +1 -1
  155. package/dist/commands/plugin.d.ts +20 -14
  156. package/dist/commands/plugin.d.ts.map +1 -1
  157. package/dist/commands/plugin.js +39 -47
  158. package/dist/commands/plugin.js.map +1 -1
  159. package/dist/commands/render-outcome.d.ts.map +1 -1
  160. package/dist/commands/render-outcome.js.map +1 -1
  161. package/dist/commands/shared.d.ts +9 -0
  162. package/dist/commands/shared.d.ts.map +1 -1
  163. package/dist/commands/tools/create.d.ts +11 -0
  164. package/dist/commands/tools/create.d.ts.map +1 -0
  165. package/dist/commands/tools/create.js +84 -0
  166. package/dist/commands/tools/create.js.map +1 -0
  167. package/dist/commands/tools/index.d.ts.map +1 -1
  168. package/dist/commands/tools/index.js +31 -0
  169. package/dist/commands/tools/index.js.map +1 -1
  170. package/dist/commands/tools/runtime-probe-entry.d.ts.map +1 -1
  171. package/dist/commands/tools/runtime-probe-entry.js +4 -2
  172. package/dist/commands/tools/runtime-probe-entry.js.map +1 -1
  173. package/dist/commands/tools/validate.d.ts.map +1 -1
  174. package/dist/commands/tools/validate.js +12 -5
  175. package/dist/commands/tools/validate.js.map +1 -1
  176. package/dist/commands/uninstall.d.ts.map +1 -1
  177. package/dist/commands/uninstall.js +0 -1
  178. package/dist/commands/uninstall.js.map +1 -1
  179. package/dist/env/host-env-specs.d.ts +18 -0
  180. package/dist/env/host-env-specs.d.ts.map +1 -1
  181. package/dist/env/host-env-specs.js +36 -2
  182. package/dist/env/host-env-specs.js.map +1 -1
  183. package/dist/index.d.ts +1 -1
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +46 -21
  186. package/dist/index.js.map +1 -1
  187. package/dist/report-compose.d.ts.map +1 -1
  188. package/dist/report-compose.js +2 -2
  189. package/dist/report-compose.js.map +1 -1
  190. package/dist/session-replay-registry.d.ts +1 -1
  191. package/dist/session-replay-registry.d.ts.map +1 -1
  192. package/dist/session-replay-registry.js +3 -1
  193. package/dist/session-replay-registry.js.map +1 -1
  194. package/dist/ui/result-to-view.d.ts +27 -7
  195. package/dist/ui/result-to-view.d.ts.map +1 -1
  196. package/dist/ui/result-to-view.js +68 -75
  197. package/dist/ui/result-to-view.js.map +1 -1
  198. package/dist/ui/views/misc-views.d.ts.map +1 -1
  199. package/dist/ui/views/misc-views.js +3 -1
  200. package/dist/ui/views/misc-views.js.map +1 -1
  201. package/dist/ui/views/tools-views.d.ts +2 -1
  202. package/dist/ui/views/tools-views.d.ts.map +1 -1
  203. package/dist/ui/views/tools-views.js +21 -0
  204. package/dist/ui/views/tools-views.js.map +1 -1
  205. package/package.json +32 -32
  206. package/dist/bootstrap/authored-tool-admission.d.ts +0 -23
  207. package/dist/bootstrap/authored-tool-admission.d.ts.map +0 -1
  208. package/dist/bootstrap/authored-tool-admission.js +0 -54
  209. package/dist/bootstrap/authored-tool-admission.js.map +0 -1
  210. package/dist/bootstrap/egress-plane.d.ts +0 -22
  211. package/dist/bootstrap/egress-plane.d.ts.map +0 -1
  212. package/dist/bootstrap/egress-plane.js +0 -37
  213. package/dist/bootstrap/egress-plane.js.map +0 -1
  214. package/dist/bootstrap/installed-tool-admission.d.ts +0 -20
  215. package/dist/bootstrap/installed-tool-admission.d.ts.map +0 -1
  216. package/dist/bootstrap/installed-tool-admission.js +0 -60
  217. package/dist/bootstrap/installed-tool-admission.js.map +0 -1
  218. package/dist/bootstrap/live-plane.d.ts +0 -51
  219. package/dist/bootstrap/live-plane.d.ts.map +0 -1
  220. package/dist/bootstrap/live-plane.js +0 -72
  221. package/dist/bootstrap/live-plane.js.map +0 -1
  222. package/dist/bootstrap/register-tools-bundled.d.ts +0 -28
  223. package/dist/bootstrap/register-tools-bundled.d.ts.map +0 -1
  224. package/dist/bootstrap/register-tools-bundled.js +0 -107
  225. package/dist/bootstrap/register-tools-bundled.js.map +0 -1
  226. package/dist/bootstrap/register-tools-shared.d.ts +0 -40
  227. package/dist/bootstrap/register-tools-shared.d.ts.map +0 -1
  228. package/dist/bootstrap/register-tools-shared.js +0 -98
  229. package/dist/bootstrap/register-tools-shared.js.map +0 -1
@@ -21,18 +21,38 @@
21
21
  * matching existing check slugs) is ever needed, that's an additive change
22
22
  * that can query `opensip fit --list` at completion time.
23
23
  */
24
- // @fitness-ignore-file only-documented-toolcli-seams -- the `completion <shell>` command's whole purpose is to write a sourceable shell-completion script to stdout for the user to pipe/redirect; that script IS its output, not run findings through a ToolCliContext seam (mirrors the ESLint exemption for this file). See architecture review finding 5 (interactive host commands legitimately need a narrow TTY/script seam outside the run data path).
25
24
  import { commonFlags } from '@opensip-cli/contracts';
26
25
  /**
27
26
  * Internal/machine-facing command names never offered in shell completion.
28
27
  * These are spawned by the host (sharded build, off-process engine workers,
29
- * machine exports), never typed by a user. Single source for both the
30
- * inventory builder and the drift test.
28
+ * machine exports), never typed by a user.
29
+ *
30
+ * This is the STATIC FALLBACK / default for {@link assembleCompletionInventory}'s
31
+ * `internalCommands` argument. The live path passes a descriptor-driven set
32
+ * (`visibility: 'internal'` + this fallback), keeping the runtime filter in
33
+ * lockstep with the `--help` hide pass. The set still backs the completion-drift
34
+ * test, and matters whenever a caller does not supply the descriptor-derived set.
35
+ *
36
+ * Note: the four `*-run-worker` / `*-shard-worker` names AND
37
+ * `graph-equivalence-check` are the Tier-3 `visibility: 'internal'` commands —
38
+ * they also flow through the descriptor-driven set. They are listed here so the
39
+ * static fallback is correct on its own (the historical gap was the missing
40
+ * `graph-equivalence-check`).
41
+ */
42
+ /**
43
+ * Internal/machine-facing command names never offered in shell completion — the
44
+ * `visibility: 'internal'` Tier-3 commands: `*-run-worker` / `*-shard-worker` and
45
+ * `graph-equivalence-check` are machine-only IPC/CI bootstrap entry points
46
+ * (ADR-0028), revealed by `OPENSIP_CLI_SHOW_INTERNAL=1`.
47
+ *
48
+ * The legacy flat-root export aliases (`catalog-export` / `sarif-export` /
49
+ * `graph-baseline-export` / `fit-baseline-export`) were removed entirely, so they
50
+ * no longer appear in the tool registry and need no completion suppression — the
51
+ * canonical nested `<tool> export` forms are the only export surface.
31
52
  */
32
53
  export const INTERNAL_COMMANDS = new Set([
33
54
  'graph-shard-worker',
34
- 'catalog-export',
35
- 'sarif-export',
55
+ 'graph-equivalence-check',
36
56
  'fit-run-worker',
37
57
  'sim-run-worker',
38
58
  'graph-run-worker',
@@ -85,16 +105,39 @@ export function specLongFlags(spec) {
85
105
  * Assemble the completion inventory from the live specs. Pure: callers pass
86
106
  * the tool command specs (from the populated `ToolRegistry`), the top-level
87
107
  * host specs, and the action-less groups; this turns them into the flag /
88
- * subcommand maps the script builders consume. Internal worker commands are
89
- * filtered out ({@link INTERNAL_COMMANDS}).
108
+ * subcommand maps the script builders consume.
109
+ *
110
+ * Internal commands are filtered out by `input.internalCommands` — the
111
+ * descriptor-driven `visibility: 'internal'` set the host computes from the live
112
+ * tool registry (`internalCommandNames`), so completion and the `--help` hide
113
+ * pass key on the SAME source. Defaults to the static {@link INTERNAL_COMMANDS}
114
+ * fallback when omitted (tests / callers without a registry). The
115
+ * `OPENSIP_CLI_SHOW_INTERNAL=1` reveal is applied at the call site: the host
116
+ * passes an EMPTY set to skip filtering when the override is on.
90
117
  */
91
118
  export function assembleCompletionInventory(input) {
119
+ const internalCommands = input.internalCommands ?? INTERNAL_COMMANDS;
92
120
  const commandFlags = {};
93
121
  const subcommands = [];
122
+ // `parent` → leaf names, accumulated from `parent`-nested tool specs (the
123
+ // `<tool> <verb>` grammar). Merged into `groupSubcommands` below so the
124
+ // emitted script offers `<parent> <leaf>` exactly like a host group.
125
+ const toolGroupLeaves = {};
94
126
  for (const spec of [...input.toolSpecs, ...input.hostSpecs]) {
95
- if (INTERNAL_COMMANDS.has(spec.name))
127
+ if (internalCommands.has(spec.name))
96
128
  continue;
97
129
  const flags = specLongFlags(spec);
130
+ // A `parent`-nested tool spec is a sub-subcommand, NOT a top-level command:
131
+ // offer it as a leaf under its parent and key its flags under the qualified
132
+ // `${parent} ${name}` path (mirroring the host group leaves).
133
+ if (spec.parent !== undefined) {
134
+ const leaves = (toolGroupLeaves[spec.parent] ??= []);
135
+ for (const name of [spec.name, ...(spec.aliases ?? [])]) {
136
+ leaves.push(name);
137
+ commandFlags[`${spec.parent} ${name}`] = flags;
138
+ }
139
+ continue;
140
+ }
98
141
  for (const name of [spec.name, ...(spec.aliases ?? [])]) {
99
142
  subcommands.push(name);
100
143
  commandFlags[name] = flags;
@@ -105,6 +148,20 @@ export function assembleCompletionInventory(input) {
105
148
  subcommands.push(group.name);
106
149
  groupSubcommands[group.name] = group.leaves.map((l) => l.name);
107
150
  }
151
+ // Fold tool-command sub-subcommands into the group map. A primary verb
152
+ // (e.g. `graph`) is already a top-level subcommand with its own flags; adding
153
+ // its nested leaves here lets the script also complete `graph export` etc.
154
+ for (const [parent, leaves] of Object.entries(toolGroupLeaves)) {
155
+ groupSubcommands[parent] = [...(groupSubcommands[parent] ?? []), ...leaves];
156
+ }
157
+ // Fold the per-tool `plugin` groups in: `plugin` becomes a completable leaf
158
+ // under the tool verb (`opensip fit <TAB>` ⇒ `… plugin`), and the bound
159
+ // leaf names register under the doubly-nested `${toolVerb} plugin` key for
160
+ // deeper completion. There is NO top-level `plugin` group anymore.
161
+ for (const group of input.toolPluginGroups ?? []) {
162
+ groupSubcommands[group.toolVerb] = [...(groupSubcommands[group.toolVerb] ?? []), 'plugin'];
163
+ groupSubcommands[`${group.toolVerb} plugin`] = group.leaves.map((l) => l.name);
164
+ }
108
165
  // `help` is a Commander built-in the script also surfaces.
109
166
  subcommands.push('help');
110
167
  return {
@@ -121,7 +178,14 @@ function bashScript(inv) {
121
178
  const commonFlagList = COMMON_FLAGS.join(' ');
122
179
  const arms = [];
123
180
  for (const [name, subsList] of Object.entries(inv.groupSubcommands)) {
124
- arms.push(` ${name}) COMPREPLY=($(compgen -W "${subsList.join(' ')}" -- "\${cur}")) ;;`);
181
+ // A primary tool verb (e.g. `fit`/`graph`) is BOTH a flag-bearing command
182
+ // AND a group with nested `<tool> <verb>` children (taxonomy Task 0.4): at
183
+ // the second-word position the user can type either a nested subcommand or
184
+ // one of the parent's own flags, so offer the union. An action-less host
185
+ // group (`plugin`/`sessions`) has no own flags, so its union is just leaves.
186
+ const ownFlags = inv.commandFlags[name] ?? [];
187
+ const offered = [...new Set([...subsList, ...ownFlags])];
188
+ arms.push(` ${name}) COMPREPLY=($(compgen -W "${offered.join(' ')}" -- "\${cur}")) ;;`);
125
189
  }
126
190
  for (const [name, flags] of Object.entries(inv.commandFlags)) {
127
191
  if (name in inv.groupSubcommands)
@@ -162,7 +226,10 @@ function zshScript(inv) {
162
226
  const commonFlagList = COMMON_FLAGS.join(' ');
163
227
  const arms = [];
164
228
  for (const [name, subsList] of Object.entries(inv.groupSubcommands)) {
165
- arms.push(` ${name}) _values '${name} subcommand' ${subsList.join(' ')} ;;`);
229
+ // Union of nested subcommands + the parent verb's own flags (see bashScript).
230
+ const ownFlags = inv.commandFlags[name] ?? [];
231
+ const offered = [...new Set([...subsList, ...ownFlags])];
232
+ arms.push(` ${name}) _values '${name} subcommand' ${offered.join(' ')} ;;`);
166
233
  }
167
234
  for (const [name, flags] of Object.entries(inv.commandFlags)) {
168
235
  if (name in inv.groupSubcommands)
@@ -203,8 +270,13 @@ function fishScript(inv) {
203
270
  `complete -c opensip -f -n "__fish_use_subcommand" -a "${subs}" -d "opensip subcommand"`,
204
271
  ];
205
272
  for (const [name, flags] of Object.entries(inv.commandFlags)) {
206
- if (name in inv.groupSubcommands)
207
- continue;
273
+ // A primary tool verb that also hosts nested `<tool> <verb>` children stays
274
+ // in `groupSubcommands`, but it still owns its own flags — emit them so fish
275
+ // completes `fit --<flag>` (the qualified `${parent} ${name}` keys for the
276
+ // nested leaves are skipped here; they are not top-level commands). An
277
+ // action-less host group has no `commandFlags` entry, so it is unaffected.
278
+ if (name.includes(' '))
279
+ continue; // a nested `${parent} ${name}` key, not a verb
208
280
  for (const flag of flags) {
209
281
  lines.push(`complete -c opensip -n "__fish_seen_subcommand_from ${name}" -l "${flag.replace(/^--/, '')}"`);
210
282
  }
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAIzE;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,oBAAoB;IACpB,yBAAyB;IACzB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;CACnB,CAAC,CAAC;AAsDH;;;wEAGwE;AACxE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC,CAC8B,CAAC;AAEnC;;oEAEoE;AACpE,MAAM,YAAY,GAAsB;IACtC,UAAU,CAAC,GAAG;IACd,UAAU,CAAC,IAAI;IACf,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,KAAK;IAChB,UAAU,CAAC,KAAK;IAChB,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAY3C;IACC,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;IACrE,MAAM,YAAY,GAAsC,EAAE,CAAC;IAC3D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,0EAA0E;IAC1E,wEAAwE;IACxE,qEAAqE;IACrE,MAAM,eAAe,GAA6B,EAAE,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,4EAA4E;QAC5E,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;YACjD,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAsC,EAAE,CAAC;IAC/D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,uEAAuE;IACvE,8EAA8E;IAC9E,2EAA2E;IAC3E,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/D,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,4EAA4E;IAC5E,wEAAwE;IACxE,2EAA2E;IAC3E,mEAAmE;IACnE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QACjD,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3F,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,SAAS,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,2DAA2D;IAC3D,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzB,OAAO;QACL,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;QAC7C,YAAY;QACZ,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,UAAU,CAAC,GAAwB;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpE,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,8BAA8B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC7F,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,IAAI,IAAI,IAAI,GAAG,CAAC,gBAAgB;YAAE,SAAS;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,8BAA8B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,mCAAmC,cAAc,qBAAqB,CAAC,CAAC;IAClF,OAAO;;;;;;;;;;;+BAWsB,IAAI;;;;;;EAMjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;CAMhB,CAAC;AACF,CAAC;AAED,8EAA8E;AAC9E,MAAM;AACN,8EAA8E;AAE9E,SAAS,SAAS,CAAC,GAAwB;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpE,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,gBAAgB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,IAAI,IAAI,IAAI,GAAG,CAAC,gBAAgB;YAAE,SAAS;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,oBAAoB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,yBAAyB,cAAc,KAAK,CAAC,CAAC;IACxD,OAAO;;;;;;iBAMQ,IAAI;;;;;;;;EAQnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;CAKhB,CAAC;AACF,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,UAAU,CAAC,GAAwB;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,KAAK,GAAa;QACtB,+BAA+B;QAC/B,wDAAwD;QACxD,EAAE;QACF,yDAAyD,IAAI,2BAA2B;KACzF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,4EAA4E;QAC5E,6EAA6E;QAC7E,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,+CAA+C;QACjF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CACR,uDAAuD,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,UAAU,qBAAqB,CAAC,KAAY,EAAE,SAA8B;IAChF,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAY,EACZ,SAA8B,EAC9B,QAA6B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D,KAAK,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqBpD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAevE;AAMD;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CA2BrE"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqBpD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAevE;AAMD;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CA2BrE"}
@@ -12,7 +12,6 @@
12
12
  * layer. This file is the prompt+UX wrapper around those primitives.
13
13
  * Audit 2026-05-23 M3.
14
14
  */
15
- // @fitness-ignore-file only-documented-toolcli-seams -- interactive TTY prompts: readline prompt text + masked-key verification UX, not machine run output through a ToolCliContext seam (mirrors the ESLint exemption for this file). Result lines route through the Ink `configure-done` CommandResult. (Architecture review finding 5: host UX commands have a narrow sanctioned exemption.)
16
15
  import { join } from 'node:path';
17
16
  import { createInterface } from 'node:readline';
18
17
  import { GLOBAL_CONFIG_PATH, readGlobalConfig, writeGlobalConfig } from '@opensip-cli/config';
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,15 @@
3
3
  * {@link CommandSpec}s, mounted through the SAME `mountCommandSpec` plane the
4
4
  * tools use (launch Phase 6).
5
5
  *
6
- * Host commands (`init` / `configure` / `sessions` / `plugin` / `report` /
7
- * `completion` / `uninstall`) are NOT tool plugins — they don't ride on a
6
+ * Host commands (`init` / `configure` / `sessions` / `report` / `completion` /
7
+ * `uninstall` / `tools`) are NOT tool plugins — they don't ride on a
8
8
  * `Tool.commandSpecs` and aren't discovered. But making them mount via the same
9
9
  * `mountCommandSpec` means the Phase 7 `command-surface-parity` guardrail sees
10
- * ONE uniform command surface: there is no second, more-privileged
11
- * raw-Commander path for "blessed" CLI-owned commands.
10
+ * ONE uniform command surface: no second, more-privileged raw-Commander path for
11
+ * "blessed" CLI-owned commands. The pack-management `plugin {add,list,remove,
12
+ * sync}` ops are host-owned too, but mount UNDER each pack-supporting tool
13
+ * primary (`opensip fit plugin …`) via {@link mountToolPluginGroups} — there is
14
+ * no top-level `opensip plugin`.
12
15
  *
13
16
  * Each spec's handler closes over the per-invocation {@link CliCommandsContext}
14
17
  * (render / setExitCode / datastore thunk / pluginLayouts) — the same data the
@@ -18,10 +21,11 @@
18
21
  * `signal-envelope` / `live-view` arms are never exercised by a host command, so
19
22
  * `CliCommandsContext` is a valid (leaner) `CommandMountContext`.
20
23
  *
21
- * The two action-less subcommand GROUPS (`sessions`, `plugin`) and their leaf
22
- * specs live in `host-subcommand-groups.ts` (a leaf module that lets
23
- * `completion.ts` source its sub-subcommand names without a module cycle). This
24
- * module assembles the TOP-LEVEL specs and mounts the whole surface.
24
+ * The action-less subcommand GROUPS (`sessions`, `tools`) + the domain-bound
25
+ * per-tool `plugin` group leaves (and their {@link mountToolPluginGroups}) live
26
+ * in `host-subcommand-groups.ts` (a leaf module that lets `completion.ts` source
27
+ * its sub-subcommand names without a module cycle). This module assembles the
28
+ * TOP-LEVEL specs and mounts the whole surface.
25
29
  *
26
30
  * Specs are built per-invocation (inside the builders below, not at module
27
31
  * load) so the `--cwd` defaults that resolve to `process.cwd()` are evaluated
@@ -43,7 +47,10 @@ export declare function buildTopLevelHostSpecs(ctx: CliCommandsContext): readonl
43
47
  * Mount every host command onto `program` through the shared `mountCommandSpec`
44
48
  * plane. Top-level specs mount directly; each subcommand group becomes a raw
45
49
  * action-less parent (the documented exception) onto which its leaf specs mount
46
- * via the same `mountCommandSpec`.
50
+ * via the same `mountCommandSpec`. Finally, the per-tool `plugin` groups mount
51
+ * UNDER each pack-supporting tool primary via {@link mountToolPluginGroups} —
52
+ * which runs AFTER the tools were mounted (the composition root mounts tools
53
+ * before `registerCliCommands`), so the tool primaries already exist.
47
54
  */
48
55
  export declare function mountHostCommands(program: CliProgram, ctx: CliCommandsContext): void;
49
56
  //# sourceMappingURL=host-command-specs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-command-specs.d.ts","sourceRoot":"","sources":["../../src/commands/host-command-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAgBH,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAC;AAiTtE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,QAAQ,EAAE,CASnF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAUpF"}
1
+ {"version":3,"file":"host-command-specs.d.ts","sourceRoot":"","sources":["../../src/commands/host-command-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAkBH,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,6BAA6B,CAAC;AAMrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,wBAAwB,CAAC;AAmUtE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,QAAQ,EAAE,CASnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAWpF"}
@@ -3,12 +3,15 @@
3
3
  * {@link CommandSpec}s, mounted through the SAME `mountCommandSpec` plane the
4
4
  * tools use (launch Phase 6).
5
5
  *
6
- * Host commands (`init` / `configure` / `sessions` / `plugin` / `report` /
7
- * `completion` / `uninstall`) are NOT tool plugins — they don't ride on a
6
+ * Host commands (`init` / `configure` / `sessions` / `report` / `completion` /
7
+ * `uninstall` / `tools`) are NOT tool plugins — they don't ride on a
8
8
  * `Tool.commandSpecs` and aren't discovered. But making them mount via the same
9
9
  * `mountCommandSpec` means the Phase 7 `command-surface-parity` guardrail sees
10
- * ONE uniform command surface: there is no second, more-privileged
11
- * raw-Commander path for "blessed" CLI-owned commands.
10
+ * ONE uniform command surface: no second, more-privileged raw-Commander path for
11
+ * "blessed" CLI-owned commands. The pack-management `plugin {add,list,remove,
12
+ * sync}` ops are host-owned too, but mount UNDER each pack-supporting tool
13
+ * primary (`opensip fit plugin …`) via {@link mountToolPluginGroups} — there is
14
+ * no top-level `opensip plugin`.
12
15
  *
13
16
  * Each spec's handler closes over the per-invocation {@link CliCommandsContext}
14
17
  * (render / setExitCode / datastore thunk / pluginLayouts) — the same data the
@@ -18,10 +21,11 @@
18
21
  * `signal-envelope` / `live-view` arms are never exercised by a host command, so
19
22
  * `CliCommandsContext` is a valid (leaner) `CommandMountContext`.
20
23
  *
21
- * The two action-less subcommand GROUPS (`sessions`, `plugin`) and their leaf
22
- * specs live in `host-subcommand-groups.ts` (a leaf module that lets
23
- * `completion.ts` source its sub-subcommand names without a module cycle). This
24
- * module assembles the TOP-LEVEL specs and mounts the whole surface.
24
+ * The action-less subcommand GROUPS (`sessions`, `tools`) + the domain-bound
25
+ * per-tool `plugin` group leaves (and their {@link mountToolPluginGroups}) live
26
+ * in `host-subcommand-groups.ts` (a leaf module that lets `completion.ts` source
27
+ * its sub-subcommand names without a module cycle). This module assembles the
28
+ * TOP-LEVEL specs and mounts the whole surface.
25
29
  *
26
30
  * Specs are built per-invocation (inside the builders below, not at module
27
31
  * load) so the `--cwd` defaults that resolve to `process.cwd()` are evaluated
@@ -32,10 +36,11 @@ import { EXIT_CODES } from '@opensip-cli/contracts';
32
36
  import { ConfigurationError, defineCommand } from '@opensip-cli/core';
33
37
  import { composeAndWriteReport } from '../report-compose.js';
34
38
  import { executeAgentCatalog } from './agent-catalog.js';
35
- import { assembleCompletionInventory, printCompletionScript, } from './completion.js';
39
+ import { assembleCompletionInventory, printCompletionScript, INTERNAL_COMMANDS, } from './completion.js';
36
40
  import { executeConfigure } from './configure.js';
37
- import { buildHostSubcommandGroups } from './host-subcommand-groups.js';
41
+ import { buildHostSubcommandGroups, buildToolPluginGroups, mountToolPluginGroups, } from './host-subcommand-groups.js';
38
42
  import { executeInit } from './init.js';
43
+ import { showInternalCommands } from './internal-command-visibility.js';
39
44
  import { mountCommandSpec } from './mount-command-spec.js';
40
45
  import { executeUninstall } from './uninstall.js';
41
46
  /** Shared `output` mode for the host commands that return a renderable result. */
@@ -66,7 +71,7 @@ function buildInitSpec(ctx) {
66
71
  default: false,
67
72
  },
68
73
  ],
69
- scope: 'project',
74
+ scope: 'none',
70
75
  output: COMMAND_RESULT,
71
76
  handler: (rawOpts) => {
72
77
  const opts = rawOpts;
@@ -168,10 +173,25 @@ function buildCompletionSpec(ctx) {
168
173
  // completion spec (it contributes a static, options-free descriptor for
169
174
  // itself), keeping the dependency one-directional.
170
175
  const host = buildHostCompletionSurface(ctx);
176
+ // tool-command-surface-taxonomy Task 1.3/1.5: filter Tier-3 internal
177
+ // commands from completion using the descriptor-driven set (the SAME source
178
+ // the `--help` hide pass keys on), so help and completion stay in lockstep.
179
+ //
180
+ // The legacy flat-root export aliases were removed entirely, so there is no
181
+ // separate deprecated-export suppression set to union here — the canonical
182
+ // nested `<tool> export` forms flow into completion via the sub-subcommand
183
+ // emission. The descriptor-driven internal set is the ONLY part the
184
+ // OPENSIP_CLI_SHOW_INTERNAL override un-hides — revealing it = passing an
185
+ // empty internal set so no command is filtered.
186
+ const internalCommands = showInternalCommands()
187
+ ? new Set()
188
+ : (ctx.toolInternalCommands ?? INTERNAL_COMMANDS);
171
189
  const inventory = assembleCompletionInventory({
172
190
  toolSpecs: ctx.toolCommandSpecs ?? [],
173
191
  hostSpecs: host.specs,
174
192
  groups: host.groups,
193
+ toolPluginGroups: host.toolPluginGroups,
194
+ internalCommands,
175
195
  });
176
196
  printCompletionScript(normalized, inventory);
177
197
  },
@@ -206,7 +226,7 @@ function buildUninstallSpec() {
206
226
  },
207
227
  { flag: '--json', description: 'Output structured JSON', default: false },
208
228
  ],
209
- scope: 'project',
229
+ scope: 'none',
210
230
  output: COMMAND_RESULT,
211
231
  handler: (rawOpts) => {
212
232
  const opts = rawOpts;
@@ -279,19 +299,21 @@ function buildNonCompletionHostSpecs(ctx) {
279
299
  }
280
300
  /**
281
301
  * The host portion of the completion inventory: the `SpecLike` views of every
282
- * top-level host command and the action-less groups. The completion command's
283
- * own surface is the static {@link COMPLETION_SELF_SPEC} stand-in; every OTHER
284
- * host command is read from its live spec (so its flags can't drift). Consumed
285
- * by the `completion` handler INSTEAD of {@link buildTopLevelHostSpecs}, so the
286
- * handler never depends back on {@link buildCompletionSpec}.
287
- *
288
- * Order is irrelevant here — the inventory subcommand list is sorted — so the
289
- * static completion descriptor is simply appended.
302
+ * top-level host command, the action-less groups, and the per-tool `plugin`
303
+ * groups. The completion command's own surface is the static
304
+ * {@link COMPLETION_SELF_SPEC} stand-in; every OTHER host command is read from
305
+ * its live spec (so its flags can't drift). Consumed by the `completion` handler
306
+ * INSTEAD of {@link buildTopLevelHostSpecs}, so the handler never depends back on
307
+ * {@link buildCompletionSpec}.
290
308
  */
291
309
  function buildHostCompletionSurface(ctx) {
292
310
  return {
293
311
  specs: [...buildNonCompletionHostSpecs(ctx), COMPLETION_SELF_SPEC],
294
312
  groups: buildHostSubcommandGroups(ctx),
313
+ toolPluginGroups: buildToolPluginGroups(ctx).map((g) => ({
314
+ toolVerb: g.toolVerb,
315
+ leaves: g.leaves.map((l) => ({ name: l.name })),
316
+ })),
295
317
  };
296
318
  }
297
319
  /**
@@ -315,7 +337,10 @@ export function buildTopLevelHostSpecs(ctx) {
315
337
  * Mount every host command onto `program` through the shared `mountCommandSpec`
316
338
  * plane. Top-level specs mount directly; each subcommand group becomes a raw
317
339
  * action-less parent (the documented exception) onto which its leaf specs mount
318
- * via the same `mountCommandSpec`.
340
+ * via the same `mountCommandSpec`. Finally, the per-tool `plugin` groups mount
341
+ * UNDER each pack-supporting tool primary via {@link mountToolPluginGroups} —
342
+ * which runs AFTER the tools were mounted (the composition root mounts tools
343
+ * before `registerCliCommands`), so the tool primaries already exist.
319
344
  */
320
345
  export function mountHostCommands(program, ctx) {
321
346
  for (const spec of buildTopLevelHostSpecs(ctx)) {
@@ -327,5 +352,6 @@ export function mountHostCommands(program, ctx) {
327
352
  mountCommandSpec(parent, leaf, ctx);
328
353
  }
329
354
  }
355
+ mountToolPluginGroups(program, ctx);
330
356
  }
331
357
  //# sourceMappingURL=host-command-specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-command-specs.js","sourceRoot":"","sources":["../../src/commands/host-command-specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-command-specs.js","sourceRoot":"","sources":["../../src/commands/host-command-specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * host-config-flag — the canonical `--config` flag the host guarantees on every
3
+ * tool primary.
4
+ *
5
+ * `--config` is NOT an ADR-0021 `commonFlags` registry entry: it is a HOST flag,
6
+ * read by the pre-action hook as `opts.config` (the explicit
7
+ * `opensip-cli.config.yml` path that overrides the package.json pointer and the
8
+ * default discovery). Fitness historically declared its own `--config`
9
+ * OptionSpec; the host decorator (`decorateToolPrimary`) now guarantees the SAME
10
+ * flag on graph / sim / any third-party primary that did not declare it, so the
11
+ * targeting-config override is uniform across tools.
12
+ *
13
+ * The definition lives here (host-owned) so the decorator and any future host
14
+ * surface read one source of truth. Fitness's in-spec `--config` is byte-matched
15
+ * to this text; the decorator is idempotent and skips it where already present.
16
+ */
17
+ export declare const CONFIG_FLAG: {
18
+ readonly flags: "--config <path>";
19
+ readonly description: "Path to opensip-cli.config.yml (overrides package.json pointer and default)";
20
+ };
21
+ //# sourceMappingURL=host-config-flag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-config-flag.d.ts","sourceRoot":"","sources":["../../src/commands/host-config-flag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;;;CAGd,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * host-config-flag — the canonical `--config` flag the host guarantees on every
3
+ * tool primary.
4
+ *
5
+ * `--config` is NOT an ADR-0021 `commonFlags` registry entry: it is a HOST flag,
6
+ * read by the pre-action hook as `opts.config` (the explicit
7
+ * `opensip-cli.config.yml` path that overrides the package.json pointer and the
8
+ * default discovery). Fitness historically declared its own `--config`
9
+ * OptionSpec; the host decorator (`decorateToolPrimary`) now guarantees the SAME
10
+ * flag on graph / sim / any third-party primary that did not declare it, so the
11
+ * targeting-config override is uniform across tools.
12
+ *
13
+ * The definition lives here (host-owned) so the decorator and any future host
14
+ * surface read one source of truth. Fitness's in-spec `--config` is byte-matched
15
+ * to this text; the decorator is idempotent and skips it where already present.
16
+ */
17
+ export const CONFIG_FLAG = {
18
+ flags: '--config <path>',
19
+ description: 'Path to opensip-cli.config.yml (overrides package.json pointer and default)',
20
+ };
21
+ //# sourceMappingURL=host-config-flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-config-flag.js","sourceRoot":"","sources":["../../src/commands/host-config-flag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,6EAA6E;CAClF,CAAC"}
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * host-subcommand-groups — the action-less Commander subcommand GROUPS
3
- * (`sessions`, `plugin`) and their leaf {@link CommandSpec}s (launch
4
- * Phase 6).
3
+ * (`sessions`, `tools`) and their leaf {@link CommandSpec}s, PLUS the
4
+ * DOMAIN-BOUND per-tool `plugin` group leaves (launch Phase 6 + the
5
+ * command-surface-taxonomy "packs under the tool" refinement).
5
6
  *
6
7
  * Split out of `host-command-specs.ts` for ONE reason: to break a module cycle.
7
- * The completion-script generator (`completion.ts`) sources its `plugin` /
8
- * `sessions` sub-subcommand NAME lists from the live leaf specs (single source —
8
+ * The completion-script generator (`completion.ts`) sources its `sessions` /
9
+ * `tools` sub-subcommand NAME lists from the live leaf specs (single source —
9
10
  * Phase 6 Task 6.2), so it must import the group inventory. The
10
11
  * `host-command-specs.ts` module, in turn, imports `printCompletionScript` from
11
12
  * `completion.ts` for the `completion` command's handler. Housing the GROUP
@@ -16,10 +17,17 @@
16
17
  * a single mountable `CommandSpec`, so it stays a raw `program.command(name)`
17
18
  * shell (the FINITE, NAMED documented exceptions for the Phase 7
18
19
  * `command-surface-parity` guardrail's allow-list, see {@link HOST_SUBCOMMAND_GROUPS}).
19
- * Their LEAVES (`sessions list|purge`, `plugin list|add|remove|sync`) ARE specs.
20
+ * Their LEAVES (`sessions list|purge`, `tools list|install|…`) ARE specs.
21
+ *
22
+ * The PACK-management `plugin {add,list,remove,sync}` ops are NO LONGER a
23
+ * top-level group: they mount as a `plugin` group UNDER each pack-supporting
24
+ * tool primary (`opensip fit plugin …`, `opensip sim plugin …`) via
25
+ * `mountToolPluginGroups`, with the domain pre-bound from the tool (no
26
+ * `--domain` flag). Whole Tool plugins remain `opensip tools …`.
20
27
  */
21
28
  import { type CommandSpec, type ProjectContext } from '@opensip-cli/core';
22
29
  import type { CliCommandsContext } from './shared.js';
30
+ import type { CliProgram } from '@opensip-cli/contracts';
23
31
  /** A host command spec — handler receives the {@link CliCommandsContext}. */
24
32
  export type HostSpec = CommandSpec<unknown, CliCommandsContext>;
25
33
  /** Prefer the discovered project root; fall back to literal cwd; finally process.cwd(). */
@@ -27,6 +35,39 @@ export declare function effectiveCwd(opts: {
27
35
  cwd?: string;
28
36
  projectContext?: ProjectContext;
29
37
  }): string;
38
+ /**
39
+ * Build the four domain-bound `plugin` leaf specs for ONE pack-supporting tool
40
+ * (`add`/`list`/`remove`/`sync`, all scoped to `domain`). Shared by the mount
41
+ * path (`mountToolPluginGroups`), the command-scope index, and the completion
42
+ * inventory so the three derive the SAME leaves.
43
+ */
44
+ export declare function buildToolPluginLeaves(ctx: CliCommandsContext, domain: string): readonly HostSpec[];
45
+ /** One pack-supporting tool's `plugin` group: the tool's primary verb + the
46
+ * action-less `plugin` parent + the four domain-bound leaves. */
47
+ export interface ToolPluginGroup {
48
+ /** The tool primary verb the `plugin` group mounts under (`fit`/`sim`). */
49
+ readonly toolVerb: string;
50
+ /** The plugin domain (== `toolVerb` for the pack-supporting tools). */
51
+ readonly domain: string;
52
+ readonly description: string;
53
+ readonly leaves: readonly HostSpec[];
54
+ }
55
+ /**
56
+ * Derive the per-tool `plugin` groups from the host's contributed
57
+ * `pluginLayouts` — one group per pack-supporting domain (fit/sim). A tool with
58
+ * no `pluginLayout` (e.g. `graph`) contributes none, so it gets no `plugin`
59
+ * group. The single source the mount path + scope index + completion all read.
60
+ */
61
+ export declare function buildToolPluginGroups(ctx: CliCommandsContext): readonly ToolPluginGroup[];
62
+ /**
63
+ * Mount each per-tool `plugin` group UNDER its pack-supporting tool primary
64
+ * (`opensip fit plugin …`), domain pre-bound from the tool. The host derives the
65
+ * groups from the contributed `pluginLayouts` (fit/sim; graph has none, so no
66
+ * group). The tool primary must already be mounted — it is, because the
67
+ * composition root mounts tools before the host commands; a domain whose primary
68
+ * is absent (isolated host-only tests) is skipped (nowhere to hang it).
69
+ */
70
+ export declare function mountToolPluginGroups(program: CliProgram, ctx: CliCommandsContext): void;
30
71
  /** One subcommand-group parent: a raw action-less `program.command(name)`
31
72
  * shell + the leaf specs that mount onto it. */
32
73
  export interface HostSubcommandGroup {
@@ -1 +1 @@
1
- {"version":3,"file":"host-subcommand-groups.d.ts","sourceRoot":"","sources":["../../src/commands/host-subcommand-groups.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,6EAA6E;AAC7E,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAWhE,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,MAAM,CAE5F;AAuTD;iDACiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA6C,CAAC;AAElG;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,mBAAmB,EAAE,CAuBjG;AA4BD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACxE;AAED,qFAAqF;AACrF,wBAAgB,yBAAyB,IAAI,oBAAoB,CAMhE"}
1
+ {"version":3,"file":"host-subcommand-groups.d.ts","sourceRoot":"","sources":["../../src/commands/host-subcommand-groups.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAIL,KAAK,WAAW,EAEhB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,6EAA6E;AAC7E,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;AAWhE,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,cAAc,CAAA;CAAE,GAAG,MAAM,CAE5F;AA+RD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,MAAM,GACb,SAAS,QAAQ,EAAE,CAOrB;AAED;kEACkE;AAClE,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,eAAe,EAAE,CAOzF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CASxF;AAMD;iDACiD;AACjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAmC,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,kBAAkB,GAAG,SAAS,mBAAmB,EAAE,CAajG;AA4BD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACxE;AAED,qFAAqF;AACrF,wBAAgB,yBAAyB,IAAI,oBAAoB,CAMhE"}