infra-kit 0.1.114 → 0.1.117

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 (204) hide show
  1. package/.eslintcache +1 -1
  2. package/.omc/state/agent-replay-1fcfe0ec-7567-41c3-9bfd-501e99e86819.jsonl +19 -0
  3. package/.omc/state/agent-replay-38382db5-3088-4b5a-aff7-2561a60827c7.jsonl +17 -0
  4. package/.omc/state/agent-replay-50c36be9-a3a2-42b9-9c85-5a06d3e22f6a.jsonl +5 -0
  5. package/.omc/state/agent-replay-8198b3e5-fad6-4ee0-9c59-ef773ad89af4.jsonl +1 -0
  6. package/.omc/state/agent-replay-8cd7652a-b8b5-49cf-9b1f-bee8e5972458.jsonl +3 -0
  7. package/.omc/state/agent-replay-9bea518f-a9ee-4d14-bb53-a936ebaf647c.jsonl +7 -0
  8. package/.omc/state/agent-replay-b52d89fb-0e24-4901-bc66-27e3c1697126.jsonl +2 -0
  9. package/.omc/state/agent-replay-f581a1ae-0ee4-48a3-96f3-ce31a0633bb0.jsonl +1 -0
  10. package/.omc/state/agent-replay-fe1057b4-9a25-4e8e-8c3f-3e11652ee697.jsonl +5 -0
  11. package/.omc/state/idle-notif-cooldown.json +1 -1
  12. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/last-tool-error-state.json +7 -0
  13. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/mission-state.json +109 -0
  14. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/pre-tool-advisory-throttle.json +42 -0
  15. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ralph-state.json +13 -0
  16. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/skill-active-state.json +15 -0
  17. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/subagent-tracking-state.json +62 -0
  18. package/.omc/state/sessions/1fcfe0ec-7567-41c3-9bfd-501e99e86819/ultrawork-state.json +11 -0
  19. package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/last-tool-error-state.json +7 -0
  20. package/.omc/state/sessions/23d0ff82-17e5-428b-8743-38f7979bb6f3/pre-tool-advisory-throttle.json +18 -0
  21. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/last-tool-error-state.json +7 -0
  22. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/mission-state.json +145 -0
  23. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/pre-tool-advisory-throttle.json +38 -0
  24. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/ralplan-state.json +11 -0
  25. package/.omc/state/sessions/38382db5-3088-4b5a-aff7-2561a60827c7/subagent-tracking-state.json +98 -0
  26. package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +7 -0
  27. package/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +18 -0
  28. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/mission-state.json +61 -0
  29. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/pre-tool-advisory-throttle.json +22 -0
  30. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/skill-active-state.json +15 -0
  31. package/.omc/state/sessions/50c36be9-a3a2-42b9-9c85-5a06d3e22f6a/subagent-tracking-state.json +26 -0
  32. package/{src/lib/.omc/state/sessions/a60ac2ec-afbd-449f-a540-6df287392fc2 → .omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4}/pre-tool-advisory-throttle.json +3 -3
  33. package/.omc/state/sessions/8198b3e5-fad6-4ee0-9c59-ef773ad89af4/subagent-tracking-state.json +17 -0
  34. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/pre-tool-advisory-throttle.json +18 -0
  35. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/ralplan-state.json +11 -0
  36. package/.omc/state/sessions/8cd7652a-b8b5-49cf-9b1f-bee8e5972458/subagent-tracking-state.json +35 -0
  37. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/last-tool-error-state.json +7 -0
  38. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/mission-state.json +79 -0
  39. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/pre-tool-advisory-throttle.json +22 -0
  40. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/progress.txt +7 -0
  41. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/skill-active-state.json +15 -0
  42. package/.omc/state/sessions/9bea518f-a9ee-4d14-bb53-a936ebaf647c/subagent-tracking-state.json +26 -0
  43. package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/pre-tool-advisory-throttle.json +14 -0
  44. package/.omc/state/sessions/b52d89fb-0e24-4901-bc66-27e3c1697126/subagent-tracking-state.json +17 -0
  45. package/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +18 -0
  46. package/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +18 -0
  47. package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/pre-tool-advisory-throttle.json +18 -0
  48. package/.omc/state/sessions/f581a1ae-0ee4-48a3-96f3-ce31a0633bb0/subagent-tracking-state.json +17 -0
  49. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/last-tool-error-state.json +7 -0
  50. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/mission-state.json +61 -0
  51. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/prd.json +22 -0
  52. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/pre-tool-advisory-throttle.json +22 -0
  53. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/progress.txt +22 -0
  54. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/skill-active-state.json +15 -0
  55. package/.omc/state/sessions/fe1057b4-9a25-4e8e-8c3f-3e11652ee697/subagent-tracking-state.json +26 -0
  56. package/.turbo/turbo-build.log +3 -3
  57. package/.turbo/turbo-eslint-check.log +2 -0
  58. package/.turbo/turbo-test.log +90 -42
  59. package/dist/boot-K4QUAFSP.js +2 -0
  60. package/dist/boot-K4QUAFSP.js.map +7 -0
  61. package/dist/chunk-FEGOOVZE.js +166 -0
  62. package/dist/chunk-FEGOOVZE.js.map +7 -0
  63. package/dist/chunk-WA4BQRDC.js +2 -0
  64. package/dist/chunk-WA4BQRDC.js.map +7 -0
  65. package/dist/cli.js +11 -107
  66. package/dist/cli.js.map +4 -4
  67. package/dist/entry/index.d.ts +2 -0
  68. package/dist/index.js +1 -1
  69. package/dist/index.js.map +4 -4
  70. package/dist/lib/vendor/config-schema.d.ts +58 -0
  71. package/dist/mcp.js +1 -54
  72. package/dist/mcp.js.map +4 -4
  73. package/eslint.config.js +33 -1
  74. package/package.json +5 -1
  75. package/scripts/build.js +11 -1
  76. package/src/.omc/state/agent-replay-c513ef38-cc3e-4a29-9c4c-1e0137245dd5.jsonl +4 -0
  77. package/src/.omc/state/agent-replay-ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a.jsonl +2 -0
  78. package/src/.omc/state/idle-notif-cooldown.json +1 -1
  79. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/mission-state.json +79 -0
  80. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/pre-tool-advisory-throttle.json +22 -0
  81. package/src/.omc/state/sessions/c513ef38-cc3e-4a29-9c4c-1e0137245dd5/subagent-tracking-state.json +26 -0
  82. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/pre-tool-advisory-throttle.json +18 -0
  83. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ralph-state.json +13 -0
  84. package/src/.omc/state/sessions/ed3e2cfb-a666-4bb1-bcc1-569d5d0b837a/ultrawork-state.json +11 -0
  85. package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/last-tool-error-state.json +7 -0
  86. package/src/commands/config/.omc/state/sessions/41336850-028c-476b-be1a-2164e1e46cac/pre-tool-advisory-throttle.json +18 -0
  87. package/src/commands/config/config.ts +7 -37
  88. package/src/commands/doctor/__tests__/agent-files.test.ts +8 -30
  89. package/src/commands/doctor/__tests__/check-legacy-user-global-config.test.ts +110 -0
  90. package/src/commands/doctor/doctor.ts +104 -44
  91. package/src/commands/env-autoload/env-autoload.ts +12 -0
  92. package/src/commands/env-autoload/index.ts +1 -0
  93. package/src/commands/env-clear/__tests__/env-clear.test.ts +27 -0
  94. package/src/commands/env-clear/env-clear.ts +22 -8
  95. package/src/commands/env-load/__tests__/env-load.test.ts +36 -1
  96. package/src/commands/env-load/env-load.ts +152 -35
  97. package/src/commands/env-load/index.ts +2 -1
  98. package/src/commands/env-status/__tests__/env-status.test.ts +78 -0
  99. package/src/commands/env-status/env-status.ts +19 -7
  100. package/src/commands/gh-release-deploy-all/gh-release-deploy-all.ts +45 -1
  101. package/src/commands/gh-release-deploy-selected/gh-release-deploy-selected.ts +46 -1
  102. package/src/commands/init/__tests__/agent-files.test.ts +145 -27
  103. package/src/commands/init/__tests__/migrate-config.test.ts +136 -5
  104. package/src/commands/init/__tests__/migrate-factory-config.test.ts +93 -0
  105. package/src/commands/init/__tests__/seed-user-global-config.test.ts +64 -0
  106. package/src/commands/init/__tests__/shell-body.test.ts +30 -0
  107. package/src/commands/init/agent-files.ts +65 -45
  108. package/src/commands/init/init.ts +140 -31
  109. package/src/commands/init/migrate-config.ts +160 -32
  110. package/src/commands/vendor-check/__tests__/runtime-isolation.test.ts +71 -0
  111. package/src/commands/vendor-check/__tests__/vendor-check.test.ts +87 -0
  112. package/src/commands/vendor-check/index.ts +1 -0
  113. package/src/commands/vendor-check/vendor-check.ts +127 -0
  114. package/src/commands/vendor-config/__tests__/vendor-config.test.ts +103 -0
  115. package/src/commands/vendor-config/index.ts +1 -0
  116. package/src/commands/vendor-config/vendor-config.ts +162 -0
  117. package/src/commands/vendor-diff/__tests__/vendor-diff.test.ts +74 -0
  118. package/src/commands/vendor-diff/index.ts +1 -0
  119. package/src/commands/vendor-diff/vendor-diff.ts +77 -0
  120. package/src/commands/vendor-manifest/index.ts +1 -0
  121. package/src/commands/vendor-manifest/vendor-manifest.ts +60 -0
  122. package/src/commands/vendor-sync/__tests__/vendor-write.test.ts +86 -0
  123. package/src/commands/vendor-sync/index.ts +1 -0
  124. package/src/commands/vendor-sync/vendor-sync.ts +90 -0
  125. package/src/commands/worktrees-add/worktrees-add.ts +1 -1
  126. package/src/commands/worktrees-reload/worktrees-reload.ts +6 -5
  127. package/src/commands/worktrees-remove/worktrees-remove.ts +10 -1
  128. package/src/commands/worktrees-sync/worktrees-sync.ts +9 -1
  129. package/src/entry/cli.ts +417 -210
  130. package/src/entry/index.ts +7 -1
  131. package/src/integrations/cmux/__tests__/open-workspace-with-layout.test.ts +127 -0
  132. package/src/integrations/cmux/close-workspace-by-title.ts +2 -2
  133. package/src/integrations/cmux/list-workspace-titles.ts +1 -1
  134. package/src/integrations/cmux/open-workspace-with-layout.ts +15 -4
  135. package/src/integrations/cursor/open-cursor-workspace.ts +6 -11
  136. package/src/integrations/doppler/__tests__/doppler-errors.test.ts +76 -0
  137. package/src/integrations/doppler/doppler-cli-auth.ts +12 -4
  138. package/src/integrations/doppler/doppler-errors.ts +88 -0
  139. package/src/integrations/doppler/doppler-project.ts +80 -0
  140. package/src/integrations/doppler/index.ts +3 -1
  141. package/src/integrations/gh/gh-cli-auth/gh-cli-auth.ts +9 -5
  142. package/src/integrations/gh/gh-release-prs/gh-release-prs.ts +16 -8
  143. package/src/integrations/ide/__tests__/ide-facade.test.ts +49 -10
  144. package/src/integrations/ide/open-ide-workspace.ts +6 -6
  145. package/src/integrations/ide/remove-ide-worktree-folders.ts +95 -30
  146. package/src/integrations/ide/types.ts +10 -1
  147. package/src/integrations/zed/__tests__/open-zed-workspace.test.ts +1 -17
  148. package/src/integrations/zed/__tests__/reuse-zed-workspace.test.ts +86 -0
  149. package/src/integrations/zed/index.ts +1 -0
  150. package/src/integrations/zed/open-zed-workspace.ts +4 -10
  151. package/src/integrations/zed/reuse-zed-workspace.ts +57 -0
  152. package/src/lib/command-catalog/__tests__/__snapshots__/command-catalog.test.ts.snap +212 -0
  153. package/src/lib/command-catalog/__tests__/command-catalog.test.ts +193 -0
  154. package/src/lib/command-catalog/command-catalog.ts +141 -0
  155. package/src/lib/command-catalog/index.ts +2 -0
  156. package/src/lib/command-echo/__tests__/command-echo.test.ts +127 -0
  157. package/src/lib/constants/constants.ts +13 -0
  158. package/src/lib/constants/index.ts +2 -0
  159. package/src/lib/env-autoload/__tests__/env-autoload.test.ts +288 -0
  160. package/src/lib/env-autoload/env-autoload.ts +294 -0
  161. package/src/lib/env-autoload/index.ts +9 -0
  162. package/src/lib/errors/operation-error.ts +1 -1
  163. package/src/lib/infra-kit-config/__tests__/env-autoload-schema.test.ts +71 -0
  164. package/src/lib/infra-kit-config/__tests__/infra-kit-config.test.ts +77 -6
  165. package/src/lib/infra-kit-config/index.ts +9 -1
  166. package/src/lib/infra-kit-config/infra-kit-config.ts +71 -11
  167. package/src/lib/json-output/__tests__/json-output.test.ts +139 -0
  168. package/src/lib/json-output/index.ts +1 -0
  169. package/src/lib/json-output/json-output.ts +47 -0
  170. package/src/lib/managed-block/managed-block.ts +4 -4
  171. package/src/lib/package-config/package-config.ts +1 -3
  172. package/src/lib/path-display/index.ts +1 -0
  173. package/src/lib/path-display/path-display.ts +42 -0
  174. package/src/lib/render/__tests__/render.test.ts +48 -0
  175. package/src/lib/render/index.ts +1 -0
  176. package/src/lib/render/render.ts +24 -0
  177. package/src/lib/vendor/__tests__/config-schema.test.ts +31 -0
  178. package/src/lib/vendor/__tests__/config.test.ts +63 -0
  179. package/src/lib/vendor/__tests__/factory-config.test.ts +92 -0
  180. package/src/lib/vendor/__tests__/vendor-lib.test.ts +158 -0
  181. package/src/lib/vendor/__tests__/zx-mock.ts +32 -0
  182. package/src/lib/vendor/config-schema.ts +78 -0
  183. package/src/lib/vendor/config.ts +58 -0
  184. package/src/lib/vendor/factory-config-schema.ts +35 -0
  185. package/src/lib/vendor/factory-config.ts +91 -0
  186. package/src/lib/vendor/hash.ts +16 -0
  187. package/src/lib/vendor/index.ts +23 -0
  188. package/src/lib/vendor/manifest.ts +151 -0
  189. package/src/lib/vendor/skip-sets.ts +48 -0
  190. package/src/lib/vendor/sync-ops.ts +290 -0
  191. package/src/lib/vendor/walk.ts +56 -0
  192. package/src/mcp/tools/index.ts +5 -42
  193. package/src/sanity.test.tsx +1 -0
  194. package/src/tui/__tests__/no-react-boundary.test.ts +51 -0
  195. package/src/tui/boot.tsx +45 -0
  196. package/src/tui/screens/__tests__/command-palette.test.tsx +136 -0
  197. package/src/tui/screens/command-palette.tsx +159 -0
  198. package/src/tui/types.ts +8 -0
  199. package/tsconfig.json +1 -0
  200. package/tsconfig.tsbuildinfo +1 -1
  201. package/vitest.config.ts +8 -0
  202. package/src/commands/worktrees-open/__tests__/open-cmux.test.ts +0 -96
  203. package/src/commands/worktrees-open/index.ts +0 -1
  204. package/src/commands/worktrees-open/worktrees-open.ts +0 -195
@@ -0,0 +1,61 @@
1
+ {
2
+ "updatedAt": "2026-06-22T10:56:08.258Z",
3
+ "missions": [
4
+ {
5
+ "id": "session:fe1057b4-9a25-4e8e-8c3f-3e11652ee697:none",
6
+ "source": "session",
7
+ "name": "none",
8
+ "objective": "Session mission",
9
+ "createdAt": "2026-06-22T10:50:30.138Z",
10
+ "updatedAt": "2026-06-22T10:56:08.258Z",
11
+ "status": "done",
12
+ "workerCount": 1,
13
+ "taskCounts": {
14
+ "total": 1,
15
+ "pending": 0,
16
+ "blocked": 0,
17
+ "inProgress": 0,
18
+ "completed": 1,
19
+ "failed": 0
20
+ },
21
+ "agents": [
22
+ {
23
+ "name": "architect:a5b8b19",
24
+ "role": "architect",
25
+ "ownership": "a5b8b195fc9e1c552",
26
+ "status": "done",
27
+ "currentStep": null,
28
+ "latestUpdate": "completed",
29
+ "completedSummary": null,
30
+ "updatedAt": "2026-06-22T10:56:08.258Z"
31
+ }
32
+ ],
33
+ "timeline": [
34
+ {
35
+ "id": "session-start:a5b8b195fc9e1c552:2026-06-22T10:50:30.138Z",
36
+ "at": "2026-06-22T10:50:30.138Z",
37
+ "kind": "update",
38
+ "agent": "architect:a5b8b19",
39
+ "detail": "started architect:a5b8b19",
40
+ "sourceKey": "session-start:a5b8b195fc9e1c552"
41
+ },
42
+ {
43
+ "id": "session-stop:a5b8b195fc9e1c552:2026-06-22T10:51:50.153Z",
44
+ "at": "2026-06-22T10:51:50.153Z",
45
+ "kind": "completion",
46
+ "agent": "architect:a5b8b19",
47
+ "detail": "completed",
48
+ "sourceKey": "session-stop:a5b8b195fc9e1c552"
49
+ },
50
+ {
51
+ "id": "session-stop:a218b18d41dcf9eac:2026-06-22T10:56:08.258Z",
52
+ "at": "2026-06-22T10:56:08.258Z",
53
+ "kind": "completion",
54
+ "agent": "architect:a5b8b19",
55
+ "detail": "completed",
56
+ "sourceKey": "session-stop:a218b18d41dcf9eac"
57
+ }
58
+ ]
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "task": "Add unit tests for the command-echo module (apps/infra-kit/cli/src/lib/command-echo).",
3
+ "stories": [
4
+ {
5
+ "id": "US-001",
6
+ "title": "Cover command-echo print()/addOption()/lifecycle formatting",
7
+ "passes": true,
8
+ "acceptanceCriteria": [
9
+ "Test file exists at src/lib/command-echo/__tests__/command-echo.test.ts",
10
+ "print() emits nothing when not interactive (logger.info not called)",
11
+ "print() emits nothing when interactive but zero options",
12
+ "boolean true option renders as a bare flag (e.g. --yes), boolean false is omitted",
13
+ "string option is quoted (--flag \"value\")",
14
+ "array option is joined and quoted (--flag \"a, b\")",
15
+ "full equivalent-command line matches 'pnpm exec infra-kit <name> <opts>' format including the description round-trip via --release spec",
16
+ "start()/reset() clear prior state",
17
+ "All command-echo tests pass under vitest",
18
+ "Existing CLI tests still pass (no regression)"
19
+ ]
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "version": 1,
3
+ "entries": {
4
+ "79a93d4a2f8f50b95f852280616242fee1855dc99a3c75211917f55e72e95fae": {
5
+ "last_emitted_at_ms": 1782125437533,
6
+ "message": "Use parallel execution for independent tasks. Use run_in_background for long operations (npm install, builds, tests)."
7
+ },
8
+ "f6cbe67e25c00ba9a0ead130929145ece91fc2e69e856c9f7113a46311d4f6be": {
9
+ "last_emitted_at_ms": 1782125430019,
10
+ "message": "Spawning agent: oh-my-claudecode:architect (sonnet) | Task: Verify command-echo tests"
11
+ },
12
+ "466399dafa2d20f60587180bad0a07358eb7f2bce724df0ff682f038ad33f5ad": {
13
+ "last_emitted_at_ms": 1782125415238,
14
+ "message": "Read multiple files in parallel when possible for faster analysis."
15
+ },
16
+ "445ed27a3872b681d98190bae61ccb84954e1bc4e140df5370be958dee776b3a": {
17
+ "last_emitted_at_ms": 1782125373373,
18
+ "message": "Verify changes work after editing. Test functionality before marking complete."
19
+ }
20
+ },
21
+ "updated_at": "2026-06-22T10:50:37.533Z"
22
+ }
@@ -0,0 +1,22 @@
1
+ US-001 — Add unit tests for command-echo: COMPLETE
2
+
3
+ Implemented:
4
+ - New test: apps/infra-kit/cli/src/lib/command-echo/__tests__/command-echo.test.ts (9 tests)
5
+ - Covers: not-interactive no-op, zero-options no-op, boolean true→bare flag / false→omitted,
6
+ string quoting, array join+quote, full equivalent-command format with --release description
7
+ round-trip, start()/reset() state clearing.
8
+
9
+ Verification (fresh evidence):
10
+ - command-echo tests: 9/9 pass
11
+ - full CLI suite: 365/365 pass across 32 files
12
+ - tsc --noEmit: clean
13
+ - architect review (sonnet): APPROVE — all 7 criteria covered by real assertions
14
+ - deslop pass: clean, no edits needed
15
+ - post-deslop regression: 9/9 pass
16
+
17
+ Learnings / patterns:
18
+ - Logger is mocked via vi.mock('src/lib/logger', () => ({ logger: { info: vi.fn(), ... } }));
19
+ capture print() output with vi.mocked(logger.info).
20
+ - command-echo is a singleton — tests reset() + mockClear() in beforeEach for isolation.
21
+ - Test setup is intentionally explicit (not DRY-abstracted) per repo conventions.
22
+ - Untested edge (optional, non-blocking): addOption() before start() yields empty command name.
@@ -0,0 +1,15 @@
1
+ {
2
+ "active": true,
3
+ "skill_name": "ai-slop-cleaner",
4
+ "session_id": "fe1057b4-9a25-4e8e-8c3f-3e11652ee697",
5
+ "started_at": "2026-06-22T10:51:56.134Z",
6
+ "last_checked_at": "2026-06-22T10:51:56.134Z",
7
+ "reinforcement_count": 0,
8
+ "max_reinforcements": 5,
9
+ "stale_ttl_ms": 900000,
10
+ "_meta": {
11
+ "written_at": "2026-06-22T10:51:56.134Z",
12
+ "mode": "skill-active",
13
+ "sessionId": "fe1057b4-9a25-4e8e-8c3f-3e11652ee697"
14
+ }
15
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "agents": [
3
+ {
4
+ "agent_id": "a5b8b195fc9e1c552",
5
+ "agent_type": "oh-my-claudecode:architect",
6
+ "started_at": "2026-06-22T10:50:30.138Z",
7
+ "parent_mode": "none",
8
+ "status": "completed",
9
+ "completed_at": "2026-06-22T10:51:50.153Z",
10
+ "duration_ms": 80015
11
+ },
12
+ {
13
+ "agent_id": "a218b18d41dcf9eac",
14
+ "agent_type": "unknown",
15
+ "started_at": "2026-06-22T10:56:08.258Z",
16
+ "parent_mode": "none",
17
+ "status": "completed",
18
+ "completed_at": "2026-06-22T10:56:08.258Z",
19
+ "duration_ms": 0
20
+ }
21
+ ],
22
+ "total_spawned": 1,
23
+ "total_completed": 2,
24
+ "total_failed": 0,
25
+ "last_updated": "2026-06-22T10:56:08.362Z"
26
+ }
@@ -1,6 +1,6 @@
1
1
  $ pnpm run clean-artifacts && node ./scripts/build.js
2
2
  $ rm -rf dist
3
- ✅ Build was completed successfully: cli.js - 0.112 MB
4
- ✅ Build was completed successfully: index.js - 0.0000687 MB
5
- ✅ Build was completed successfully: mcp.js - 0.0876 MB
3
+ ✅ Build was completed successfully: cli.js - 0.0168 MB
4
+ ✅ Build was completed successfully: index.js - 0.000126 MB
5
+ ✅ Build was completed successfully: mcp.js - 0.00182 MB
6
6
  ✅ Type declarations emitted: dist/entry/index.d.ts
@@ -1 +1,3 @@
1
1
  $ pnpm exec eslint --cache --quiet --report-unused-disable-directives ./src
2
+ Dependency "react" could not be resolved for catalog "default"
3
+ Dependency "@types/react" could not be resolved for catalog "default"
@@ -2,6 +2,7 @@
2
2
  [?25l
3
3
   RUN  v4.1.9 /Users/arthur/projects/infra-kit/apps/infra-kit/cli
4
4
 
5
+ Sourcemap for "/Users/arthur/Library/pnpm/store/v11/links/@/ink-testing-library/4.0.0/990ef278cd16926ca8f94e3d73dd86da3c7d702a314086dabc7217c3d9b139d2/node_modules/ink-testing-library/build/index.js" points to missing source files
5
6
  INFO: ✓ Migrated ~/infra-kit.yml → ~/infra-kit.json
6
7
  INFO: ⚠ Skipped ~/infra-kit.yml — ~/infra-kit.json already exists (remove the stale .yml manually)
7
8
  INFO: ✓ Migrated ~/infra-kit.yml → ~/infra-kit.json
@@ -13,34 +14,43 @@
13
14
  ^
14
15
  
15
16
  INFO: ✓ Migrated ~/infra-kit.yml → ~/infra-kit.json
16
- INFO: ✓ Migrated ~/.infra-kit/config.yml → ~/.infra-kit/config.json
17
- INFO: ✓ Migrated ~/.infra-kit/projects/infra-kit-init-migrate-test-glLica/infra-kit.yml → ~/.infra-kit/projects/infra-kit-init-migrate-test-glLica/infra-kit.json
17
+ INFO: ✓ Migrated ~/.infra-kit/config.yml → ~/.infra-kit/infra-kit.json
18
+ INFO: ✓ Migrated ~/.infra-kit/projects/infra-kit-init-migrate-test-dC9SjH/infra-kit.yml → ~/.infra-kit/projects/infra-kit-init-migrate-test-dC9SjH/infra-kit.json
18
19
  INFO: ✓ Normalized ide config in ~/infra-kit.json (removed legacy "mode")
19
20
  INFO: ✓ Normalized ide config in ~/infra-kit.json (removed legacy "mode")
20
- INFO: ✓ Normalized ide config in ~/.infra-kit/config.json (removed legacy "mode")
21
- INFO: ✓ Normalized ide config in ~/.infra-kit/projects/infra-kit-init-migrate-test-Lx8fMU/infra-kit.json (removed legacy "mode")
21
+ INFO: ✓ Normalized ide config in ~/.infra-kit/infra-kit.json (removed legacy "mode")
22
+ INFO: ✓ Normalized ide config in ~/.infra-kit/projects/infra-kit-init-migrate-test-vlGJyA/infra-kit.json (removed legacy "mode")
22
23
  INFO: ⚠ Skipped normalizing ~/infra-kit.json — Expected property name or '}' in JSON at position 2 (line 1 column 3)
23
- INFO:  created AGENTS.md
24
- INFO:  created CLAUDE.md
25
- INFO:  created .cursor/rules/infra-kit.mdc
26
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
27
- INFO:  created AGENTS.md
28
- INFO:  updated CLAUDE.md
29
- INFO:  created .cursor/rules/infra-kit.mdc
30
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
31
- INFO:  created AGENTS.md
32
- INFO:  created CLAUDE.md
33
- INFO:  created .cursor/rules/infra-kit.mdc
34
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
35
- INFO:  unchanged AGENTS.md
36
- INFO:  unchanged CLAUDE.md
37
- INFO:  unchanged .cursor/rules/infra-kit.mdc
38
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
39
- INFO: Skipped agent-instruction files — no infra-kit.json at the repo root
40
- INFO:  updated AGENTS.md
41
- INFO:  created CLAUDE.md
42
- INFO:  created .cursor/rules/infra-kit.mdc
43
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
24
+ INFO: ✓ Renamed ~/.infra-kit/config.json → ~/.infra-kit/infra-kit.json
25
+ INFO: ✓ Renamed ~/.infra-kit/config.example.jsonc → ~/.infra-kit/infra-kit.example.jsonc
26
+ INFO: ⚠ Skipped ~/.infra-kit/config.json — ~/.infra-kit/infra-kit.json already exists (remove the stale file manually)
27
+ INFO: ✓ Renamed ~/.infra-kit/config.example.jsonc ~/.infra-kit/infra-kit.example.jsonc
28
+ INFO: Factory config: ~/.infra-kit/vendor.json [ ]
29
+ INFO: 
30
+ Not found — run `infra-kit vendor-config --init` to scaffold it.
31
+ INFO: Factory config: ~/.infra-kit/vendor.json [✓]
32
+ INFO: ✓ Migrated ~/.infra-kit/config.yml → ~/.infra-kit/infra-kit.json
33
+ INFO: workspaceDir: /tmp/vendor-config-home-L0d1PR/projects (resolved: /tmp/vendor-config-home-L0d1PR/projects) [✓ exists]
34
+ INFO: Targets:
35
+ INFO:  [✓] repo-a ~/projects/repo-a
36
+ INFO: Factory config: ~/.infra-kit/vendor.json [✓]
37
+ INFO: workspaceDir: /tmp/vendor-config-home-CVd2s7/projects (resolved: /tmp/vendor-config-home-CVd2s7/projects) [✓ exists]
38
+ INFO: Targets:
39
+ INFO:  [ ] missing-repo ~/projects/missing-repo (not found clone or remove)
40
+ INFO: ✓ Migrated ~/.infra-kit/config.yml ~/.infra-kit/infra-kit.json
41
+ INFO: ⚠ Skipped ~/.infra-kit/config.json — ~/.infra-kit/infra-kit.json already exists (remove the stale file manually)
42
+ INFO: ✓ Created ~/.infra-kit/vendor.json
43
+ INFO:  Edit `workspaceDir` (placeholder: ~/projects) to point at where your repos live.
44
+ INFO:  Add at least one repo name to `targets` before running vendor sync/manifest/diff.
45
+ INFO: ✓ Created ~/.infra-kit/vendor.json
46
+ INFO:  Seeded 2 target(s) from the source vendor.config.ts.
47
+ INFO:  Edit `workspaceDir` (placeholder: ~/projects) to point at where your repos live.
48
+ INFO: Factory config already exists at ~/.infra-kit/vendor.json — leaving it untouched.
49
+ INFO: ❌ target-repo → vendor/configs (1 change(s)):
50
+ INFO:  >f.st..... configs/a.js
51
+ INFO: ✅ target-repo: copied 1/1 items + manifest
52
+ INFO: 🎉 No drift detected.
53
+ INFO: ⚠️ target-repo: target does not exist — skipped
44
54
  INFO: 
45
55
  @x/ok — PASS
46
56
  INFO:  [PASS] infra-kit.config.ts: present and valid
@@ -48,32 +58,70 @@
48
58
  ✅ All valid (1 checked)
49
59
  INFO: 
50
60
  @x/no-config — FAIL
51
- INFO:  [FAIL] infra-kit.config.ts: infra-kit.config.ts not found at /tmp/audit-cmd-cns8gZ/infra-kit.config.ts
61
+ INFO:  [FAIL] infra-kit.config.ts: infra-kit.config.ts not found at /tmp/audit-cmd-GDNU3r/infra-kit.config.ts
52
62
  INFO: 
53
63
  ❌ Audit failed (1 checked)
54
- INFO:  created AGENTS.md
55
64
  INFO:  created CLAUDE.md
56
- INFO:  created .cursor/rules/infra-kit.mdc
57
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
58
- INFO:  created AGENTS.md
65
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
66
+ INFO:  updated CLAUDE.md
67
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
59
68
  INFO:  created CLAUDE.md
60
- INFO:  created .cursor/rules/infra-kit.mdc
61
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
62
- INFO:  created AGENTS.md
69
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
70
+ INFO:  unchanged CLAUDE.md
71
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
72
+ INFO: Skipped agent-instruction files — no infra-kit.json at the repo root
73
+ INFO:  updated CLAUDE.md
74
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
75
+ INFO:  updated CLAUDE.md
76
+ INFO:  removed AGENTS.md
77
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
78
+ INFO:  updated CLAUDE.md
79
+ INFO:  updated AGENTS.md
80
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
81
+ INFO:  created CLAUDE.md
82
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
83
+ INFO:  updated CLAUDE.md
84
+ INFO:  removed AGENTS.md
85
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
86
+ INFO:  unchanged CLAUDE.md
87
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
88
+ INFO:  created CLAUDE.md
89
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
90
+ INFO: Wrote user-global config to /tmp/seed-user-global-test-OnnbjR/.infra-kit/infra-kit.json (see the sibling .example.jsonc files for reference)
91
+ INFO: Wrote user-global config to /tmp/seed-user-global-test-0SuzJu/.infra-kit/infra-kit.json (see the sibling .example.jsonc files for reference)
92
+ INFO: User-global config already present at /tmp/seed-user-global-test-zWpSCj/.infra-kit/infra-kit.json (refreshed reference examples)
93
+ INFO: ✅ vendor/ matches manifest (1 files).
94
+ ERROR: ❌ vendor/ has drifted from vendor/.sync-manifest.json.
95
+ ERROR:  These files are mirrored from the source repo — edit them upstream, not here.
96
+ INFO: 
97
+ Modified (1):
98
+ INFO:  configs/a.js
99
+ INFO: ℹ️ No vendor/ folder found — nothing to check.
100
+ ERROR: ❌ Missing vendor/.sync-manifest.json. Re-run the vendor sync to generate it.
101
+ INFO: ✅ vendor/ matches manifest (2 files).
102
+ ERROR: ❌ vendor/ has drifted from vendor/.sync-manifest.json.
103
+ ERROR:  These files are mirrored from the source repo — edit them upstream, not here.
104
+ INFO: 
105
+ Modified (1):
106
+ INFO:  a.js
107
+ INFO: 
108
+ Added (not in manifest) (1):
109
+ INFO:  c.js
110
+ INFO: 
111
+ Removed (in manifest, now missing) (1):
112
+ INFO:  b.js
113
+ ERROR: ❌ vendor/.sync-manifest.json has a newer schemaVersion (2) than this CLI supports. Upgrade infra-kit.
63
114
  INFO:  created CLAUDE.md
64
- INFO:  created .cursor/rules/infra-kit.mdc
65
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
66
- INFO:  created AGENTS.md
115
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
67
116
  INFO:  created CLAUDE.md
68
- INFO:  created .cursor/rules/infra-kit.mdc
69
- INFO: Agent-instruction files synced (infra-kit 0.1.113)
117
+ INFO: Agent-instruction files synced (infra-kit 0.1.115)
70
118
  WARN: ⚠️ Failed to reopen cmux workspace for release/v1.48.0
71
119
  title: "hulyo-monorepo 1.48.0"
72
120
  error: {}
73
121
 
74
-  Test Files  31 passed (31)
75
-  Tests  356 passed (356)
76
-  Start at  10:10:53
77
-  Duration  1.82s (transform 7.66s, setup 1.03s, import 11.91s, tests 1.16s, environment 2ms)
122
+  Test Files  56 passed (56)
123
+  Tests  529 passed (529)
124
+  Start at  15:58:49
125
+  Duration  1.84s (transform 4.57s, setup 754ms, import 9.46s, tests 2.13s, environment 21ms)
78
126
 
79
127
  [?25h
@@ -0,0 +1,2 @@
1
+ import{render as D}from"ink";import M from"node:process";import{Box as d,Text as o,useApp as E,useInput as v}from"ink";import{useEffect as A,useMemo as b,useState as h}from"react";import{jsx as r,jsxs as f}from"react/jsx-runtime";var I=x=>{let{items:l,onSelect:s,onCancel:g}=x,m={hint:"Select a command \u2014 type to filter, \u2191\u2193 to move, Enter to run, Esc to cancel",prompt:"\u276F ",empty:"No matching commands"},y=24,{exit:C}=E(),[i,P]=h(""),[B,a]=h(0),[u,T]=h(!1);A(()=>{u&&C()},[u,C]);let c=b(()=>{let e=i.trim().toLowerCase();return e?l.filter(t=>`${t.name} ${t.description}`.toLowerCase().includes(e)):l},[l,i]),p=Math.min(B,Math.max(0,c.length-1));if(v((e,t)=>{if(!u){if(t.escape||t.ctrl&&e==="c"){g(),T(!0);return}if(t.return){let n=c[p];n&&(s(n.name),T(!0));return}if(t.upArrow){let n=c.length;n>0&&a((p-1+n)%n);return}if(t.downArrow){let n=c.length;n>0&&a((p+1)%n);return}if(t.backspace||t.delete){P(i.slice(0,-1)),a(0);return}e&&!t.ctrl&&!t.meta&&(P(i+e),a(0))}}),u)return null;let w="";return f(d,{flexDirection:"column",children:[r(o,{dimColor:!0,children:m.hint}),f(d,{children:[r(o,{color:"cyan",children:m.prompt}),r(o,{children:i})]}),r(d,{flexDirection:"column",marginTop:1,children:c.length===0?r(o,{dimColor:!0,children:m.empty}):c.map((e,t)=>{let n=t===p,S=e.group!==w;return w=e.group,f(d,{flexDirection:"column",children:[S&&t>0?r(o,{children:" "}):null,S?r(o,{color:"yellow",children:`\u2014 ${e.group} \u2014`}):null,f(o,{color:n?"green":void 0,children:[n?"\u203A ":" ",e.name.padEnd(y)," ",r(o,{dimColor:!0,children:e.description})]})]},e.name)})})]})};import{jsx as $}from"react/jsx-runtime";var U=async x=>new Promise(l=>{let s=null,{waitUntilExit:g}=D($(I,{items:x,onSelect:m=>{s=m},onCancel:()=>{s=null}}),{stdout:M.stderr});g().then(()=>{l(s)}).catch(()=>{l(null)})});export{U as runCommandPalette};
2
+ //# sourceMappingURL=boot-K4QUAFSP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/tui/boot.tsx", "../src/tui/screens/command-palette.tsx"],
4
+ "sourcesContent": ["import { render } from 'ink'\nimport process from 'node:process'\n\nimport { CommandPalette } from './screens/command-palette'\nimport type { PaletteItem } from './types'\n\n/**\n * Entry point for the Ink TUI. This module (and everything under `src/tui/`) is\n * the ONLY place allowed to import `ink`/`react`; it is reached exclusively via a\n * dynamic `await import('src/tui/boot')` from the TTY branch of entry/cli.ts, so\n * React never loads on the MCP / `--json` / non-TTY paths. Build splitting keeps\n * it in a separate lazy chunk (see scripts/build.js).\n */\n\n/**\n * Render the command palette and resolve to the chosen command name, or `null`\n * if the user cancels. Frames are written to stderr so stdout stays clean for\n * the command that runs afterwards (mirrors the previous Inquirer menu).\n */\nexport const runCommandPalette = async (items: PaletteItem[]): Promise<string | null> => {\n return new Promise((resolve) => {\n let selected: string | null = null\n\n const { waitUntilExit } = render(\n <CommandPalette\n items={items}\n onSelect={(name) => {\n selected = name\n }}\n onCancel={() => {\n selected = null\n }}\n />,\n { stdout: process.stderr as unknown as NodeJS.WriteStream },\n )\n\n waitUntilExit()\n .then(() => {\n resolve(selected)\n })\n .catch(() => {\n resolve(null)\n })\n })\n}\n", "import { Box, Text, useApp, useInput } from 'ink'\nimport { useEffect, useMemo, useState } from 'react'\n\nimport type { PaletteItem } from '../types'\n\ninterface CommandPaletteProps {\n items: PaletteItem[]\n /** Called with the chosen command name; the app then exits. */\n onSelect: (name: string) => void\n /** Called when the user cancels (Esc / Ctrl-C); the app then exits. */\n onCancel: () => void\n}\n\n/**\n * Fuzzy-ish command picker rendered with Ink. Pure presentation: it receives a\n * flat list of commands (already grouped/ordered by the catalog) and returns the\n * selected name. It never executes anything \u2014 the caller runs the command via\n * the existing Commander path.\n */\nexport const CommandPalette = (props: CommandPaletteProps) => {\n const { items, onSelect, onCancel } = props\n\n const T = {\n hint: 'Select a command \u2014 type to filter, \u2191\u2193 to move, Enter to run, Esc to cancel',\n prompt: '\u276F ',\n empty: 'No matching commands',\n }\n const nameWidth = 24\n\n const { exit } = useApp()\n const [query, setQuery] = useState('')\n const [index, setIndex] = useState(0)\n // When set, the component renders `null` for one frame so Ink erases the list\n // before unmount commits its final frame (Ink's `log.done()` would otherwise\n // freeze the last drawn frame \u2014 the command list \u2014 into the scrollback).\n const [submitted, setSubmitted] = useState(false)\n\n // Exit only after the empty frame has committed, so the list is wiped first.\n useEffect(() => {\n if (submitted) {\n exit()\n }\n }, [submitted, exit])\n\n const filtered = useMemo(() => {\n const q = query.trim().toLowerCase()\n\n if (!q) {\n return items\n }\n\n return items.filter((item) => {\n return `${item.name} ${item.description}`.toLowerCase().includes(q)\n })\n }, [items, query])\n\n const activeIndex = Math.min(index, Math.max(0, filtered.length - 1))\n\n useInput((input, key) => {\n if (submitted) {\n return\n }\n\n if (key.escape || (key.ctrl && input === 'c')) {\n onCancel()\n setSubmitted(true)\n\n return\n }\n\n if (key.return) {\n const selected = filtered[activeIndex]\n\n if (selected) {\n onSelect(selected.name)\n setSubmitted(true)\n }\n\n return\n }\n\n if (key.upArrow) {\n const n = filtered.length\n\n // Wrap to the bottom when stepping up past the first item. The `+ n`\n // sidesteps JS negative modulo (e.g. -1 % 5 === -1, not 4).\n if (n > 0) {\n setIndex((activeIndex - 1 + n) % n)\n }\n\n return\n }\n\n if (key.downArrow) {\n const n = filtered.length\n\n // Wrap to the top when stepping down past the last item.\n if (n > 0) {\n setIndex((activeIndex + 1) % n)\n }\n\n return\n }\n\n if (key.backspace || key.delete) {\n setQuery(query.slice(0, -1))\n setIndex(0)\n\n return\n }\n\n // Printable character: append to the filter.\n if (input && !key.ctrl && !key.meta) {\n setQuery(query + input)\n setIndex(0)\n }\n })\n\n // Final frame: render nothing so Ink erases the list on its way out.\n if (submitted) {\n return null\n }\n\n let lastGroup = ''\n\n return (\n <Box flexDirection=\"column\">\n <Text dimColor>{T.hint}</Text>\n <Box>\n <Text color=\"cyan\">{T.prompt}</Text>\n <Text>{query}</Text>\n </Box>\n <Box flexDirection=\"column\" marginTop={1}>\n {filtered.length === 0 ? (\n <Text dimColor>{T.empty}</Text>\n ) : (\n filtered.map((item, position) => {\n const isActive = position === activeIndex\n const showGroup = item.group !== lastGroup\n\n lastGroup = item.group\n\n return (\n <Box flexDirection=\"column\" key={item.name}>\n {/* Blank line between groups (not before the very first group). */}\n {showGroup && position > 0 ? <Text> </Text> : null}\n {showGroup ? <Text color=\"yellow\">{`\u2014 ${item.group} \u2014`}</Text> : null}\n <Text color={isActive ? 'green' : undefined}>\n {isActive ? '\u203A ' : ' '}\n {item.name.padEnd(nameWidth)} <Text dimColor>{item.description}</Text>\n </Text>\n </Box>\n )\n })\n )}\n </Box>\n </Box>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["render", "process", "Box", "Text", "useApp", "useInput", "useEffect", "useMemo", "useState", "jsx", "jsxs", "CommandPalette", "props", "items", "onSelect", "onCancel", "T", "nameWidth", "exit", "query", "setQuery", "index", "setIndex", "submitted", "setSubmitted", "filtered", "q", "item", "activeIndex", "input", "key", "selected", "lastGroup", "position", "isActive", "showGroup", "jsx", "runCommandPalette", "items", "resolve", "selected", "waitUntilExit", "render", "CommandPalette", "name", "process"]
7
+ }