@brimveyn/aimux-config 0.8.6 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -6
- package/package.json +1 -1
- package/src/actions.ts +239 -150
- package/src/defaults.ts +107 -49
- package/src/index.ts +2 -5
- package/src/resolver.ts +6 -5
- package/src/status-bar-runtime.ts +1 -1
- package/src/types.ts +280 -201
package/README.md
CHANGED
|
@@ -5,6 +5,76 @@ Typed configuration package for [`@brimveyn/aimux`](https://github.com/BrimVeyn/
|
|
|
5
5
|
Use this package to author `aimux.config.ts` or `aimux.config.js` inside an
|
|
6
6
|
`aimux` profile directory.
|
|
7
7
|
|
|
8
|
+
## BREAKING in 0.9.0 — project / workspace / tab
|
|
9
|
+
|
|
10
|
+
aimux now has one word per level, and each level has its own creation action:
|
|
11
|
+
|
|
12
|
+
| Level | What it is | Action |
|
|
13
|
+
| ------------- | ---------------------------------------- | ------------------------------ |
|
|
14
|
+
| **project** | a repository you add by picking a folder | `<C-g>` → "Create new project" |
|
|
15
|
+
| **workspace** | a git worktree inside a project | `<C-p>` |
|
|
16
|
+
| **tab** | an assistant in a workspace | `<C-n>` |
|
|
17
|
+
|
|
18
|
+
What used to be called a workspace is now a **project**; what used to be called
|
|
19
|
+
a worktree is now a **workspace**.
|
|
20
|
+
|
|
21
|
+
**`<C-n>` no longer creates worktrees.** It is an assistant picker; the tab
|
|
22
|
+
opens in the active workspace. Use `<C-p>` to create a workspace.
|
|
23
|
+
|
|
24
|
+
### Renamed actions
|
|
25
|
+
|
|
26
|
+
The old names still work in 0.9.0 as `@deprecated` aliases and will be removed
|
|
27
|
+
in a later release:
|
|
28
|
+
|
|
29
|
+
| 0.8.x | 0.9.0 |
|
|
30
|
+
| ---------------------------- | ----------------------------- |
|
|
31
|
+
| `sessionPicker` | `projectPicker` |
|
|
32
|
+
| `openCreateSessionModal` | `openCreateProjectModal` |
|
|
33
|
+
| `createSessionEscape` | `createProjectEscape` |
|
|
34
|
+
| `confirmCreateSession` | `confirmCreateProject` |
|
|
35
|
+
| `reorderSession` | `reorderProject` |
|
|
36
|
+
| `switchSessionByIndex` | `switchProjectByIndex` |
|
|
37
|
+
| `toggleSessionBar` | `toggleProjectBar` |
|
|
38
|
+
| `openWorktreeMove` | `openWorkspaceMove` |
|
|
39
|
+
| `toggleWorktreeMoveDelete` | `toggleWorkspaceMoveDelete` |
|
|
40
|
+
| `confirmWorktreeMove` | `confirmWorkspaceMove` |
|
|
41
|
+
| `confirmWorktreeDeleteModal` | `confirmWorkspaceDeleteModal` |
|
|
42
|
+
|
|
43
|
+
### Removed actions
|
|
44
|
+
|
|
45
|
+
These have no replacement — `<C-n>` cannot create or delete a workspace any
|
|
46
|
+
more. A config referencing them fails to compile, on purpose:
|
|
47
|
+
`toggleNewTabWorktree`, `deleteSelectedWorktree`, `confirmDeleteWorktree`.
|
|
48
|
+
|
|
49
|
+
### Renamed mode ids
|
|
50
|
+
|
|
51
|
+
Mode ids are not aliased; `.mode('modal.create-session', …)` throws.
|
|
52
|
+
|
|
53
|
+
| 0.8.x | 0.9.0 |
|
|
54
|
+
| --------------------------------------- | -------------------------------- |
|
|
55
|
+
| `modal.session-picker.filtering` | `modal.project-picker.filtering` |
|
|
56
|
+
| `modal.session-name` | `modal.project-name` |
|
|
57
|
+
| `modal.create-session` | `modal.create-project` |
|
|
58
|
+
| `modal.worktree-move` | `modal.workspace-move` |
|
|
59
|
+
| `modal.worktree-move-confirm` | `modal.workspace-move-confirm` |
|
|
60
|
+
| `modal.worktree-delete-confirm` | `modal.workspace-delete-confirm` |
|
|
61
|
+
| `modal.new-tab.worktree-delete-confirm` | _(removed)_ |
|
|
62
|
+
| _(new)_ | `modal.create-workspace` |
|
|
63
|
+
|
|
64
|
+
### Renamed config keys
|
|
65
|
+
|
|
66
|
+
`sessionBar` is now `projectBar`. The old key is still read; rename it. (An
|
|
67
|
+
unknown key parses silently, so without the fallback the setting would just
|
|
68
|
+
vanish.)
|
|
69
|
+
|
|
70
|
+
### Removed config keys
|
|
71
|
+
|
|
72
|
+
`workspaceTemplates` (and its pre-rename spelling `worktreeTemplates`) is
|
|
73
|
+
removed. Workspace provisioning is a per-project setup script now — see
|
|
74
|
+
`docs/guide/workspaces.md#setup-script`. Both keys are still declared as
|
|
75
|
+
`never` so your editor strikes them through, and `aimux doctor` reports them if
|
|
76
|
+
they are still in `aimux.json`.
|
|
77
|
+
|
|
8
78
|
## What This Package Does
|
|
9
79
|
|
|
10
80
|
`@brimveyn/aimux-config` provides:
|
|
@@ -43,20 +113,20 @@ If you use another profile, replace `default` with that profile name.
|
|
|
43
113
|
import { defineConfig, actions } from '@brimveyn/aimux-config'
|
|
44
114
|
|
|
45
115
|
export default defineConfig({
|
|
46
|
-
|
|
116
|
+
projectBar: {
|
|
47
117
|
initialPosition: 'top',
|
|
48
118
|
initialVisible: true,
|
|
49
119
|
},
|
|
50
120
|
|
|
51
121
|
keymaps: (k) =>
|
|
52
|
-
k.mode('navigation', (m) => m.map('<C-
|
|
122
|
+
k.mode('navigation', (m) => m.map('<C-g>', actions.projectPicker, 'Project picker')),
|
|
53
123
|
})
|
|
54
124
|
```
|
|
55
125
|
|
|
56
126
|
This example only uses surfaces that are wired into the runtime today.
|
|
57
127
|
|
|
58
128
|
Important: typed config expresses startup intent. Fields such as
|
|
59
|
-
`
|
|
129
|
+
`projectBar.initialVisible` or `gitPane.initialMode` are reapplied on every
|
|
60
130
|
launch; runtime UI changes do not write back into `aimux.config.ts`.
|
|
61
131
|
|
|
62
132
|
## Key Notation
|
|
@@ -140,11 +210,12 @@ explanation.
|
|
|
140
210
|
Pre-built actions include:
|
|
141
211
|
|
|
142
212
|
- tabs: `nextTab`, `prevTab`, `newTab`, `renameTab`, `closeTab`, `restartTab`
|
|
143
|
-
-
|
|
213
|
+
- projects: `projectPicker`, `switchProjectByIndex(n)` and project modal actions
|
|
214
|
+
- workspaces: `createWorkspaceModal`, `openWorkspaceMove` and workspace modal actions
|
|
144
215
|
- snippets: `snippetPicker`, snippet editor and filter actions
|
|
145
216
|
- themes: `themePicker`, `previewTheme`, `confirmTheme`, `restoreTheme`
|
|
146
217
|
- panes: `splitVertical`, `splitHorizontal`, `focusPane`, `resizePane`, `closePane`
|
|
147
|
-
- UI: `toggleSidebar`, `
|
|
218
|
+
- UI: `toggleSidebar`, `toggleProjectBar`, `toggleGitPane`,
|
|
148
219
|
`resizeGitPane(delta)`, `setGitPaneMode(mode)`, `setGitPanePosition(position)`
|
|
149
220
|
- modes: `enterInsert`, `leaveTerminalInput`, `closeModal`, `helpModal`
|
|
150
221
|
- git: enter git mode, stage, delete or unstage, commit, push
|
|
@@ -183,7 +254,7 @@ palette guidance, and precedence details.
|
|
|
183
254
|
| Surface | Status | Notes |
|
|
184
255
|
| ------------ | ------------------ | ------------------------------------------------------------------------------------ |
|
|
185
256
|
| `keymaps` | Supported | Fully registered by the runtime |
|
|
186
|
-
| `
|
|
257
|
+
| `projectBar` | Supported | Startup overrides; app-managed runtime state still persists separately |
|
|
187
258
|
| `gitPane` | Supported | Startup overrides for placement and rendering; runtime state persists separately |
|
|
188
259
|
| `theme` | Supported | `theme.initialMode` is a startup override; persisted `aimux.json.themeId` still wins |
|
|
189
260
|
| `themes` | Supported | User themes; appear in the picker and power synthesized highlighting |
|