@lkangd/cc-settings-preset 1.1.3 → 1.1.4

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.
@@ -21,10 +21,11 @@ export type ProjectLaunchColumnsViewProps = {
21
21
  title?: string;
22
22
  help?: string;
23
23
  toggleMessage?: string;
24
+ minWidth?: number;
24
25
  };
25
26
  export declare function computeProjectLaunchColumnWidths(innerWidth: number): {
26
27
  presetWidth: number;
27
28
  detailWidth: number;
28
29
  mcpWidth: number;
29
30
  };
30
- export declare function ProjectLaunchColumnsView({ presetItems, presetCursor, focus, plugins, pluginItems, pluginCursor, skills, skillItems, skillCursor, mcps, mcpItems, mcpCursor, title, help, toggleMessage, }: ProjectLaunchColumnsViewProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function ProjectLaunchColumnsView({ presetItems, presetCursor, focus, plugins, pluginItems, pluginCursor, skills, skillItems, skillCursor, mcps, mcpItems, mcpCursor, title, help, toggleMessage, minWidth, }: ProjectLaunchColumnsViewProps): import("react/jsx-runtime").JSX.Element;
@@ -12,10 +12,10 @@ export function computeProjectLaunchColumnWidths(innerWidth) {
12
12
  const mcpWidth = contentWidth - presetWidth - detailWidth - detailWidth;
13
13
  return { presetWidth, detailWidth, mcpWidth };
14
14
  }
15
- export function ProjectLaunchColumnsView({ presetItems, presetCursor, focus, plugins, pluginItems, pluginCursor, skills, skillItems, skillCursor, mcps, mcpItems, mcpCursor, title = 'Select project launch preset', help = '←/→ switch column · h/j/k/l navigate · t sort · space toggle · enter launch · esc presets/back · q quit', toggleMessage, }) {
15
+ export function ProjectLaunchColumnsView({ presetItems, presetCursor, focus, plugins, pluginItems, pluginCursor, skills, skillItems, skillCursor, mcps, mcpItems, mcpCursor, title = 'Select project launch preset', help = '←/→ switch column · h/j/k/l navigate · t sort · space toggle · enter launch · esc presets/back · q quit', toggleMessage, minWidth, }) {
16
16
  useInkResizeVersion();
17
17
  const { stdout } = useStdout();
18
- const innerWidth = stdout.columns ?? 120;
18
+ const innerWidth = Math.max(minWidth ?? 0, stdout.columns ?? 120);
19
19
  const { presetWidth, detailWidth, mcpWidth } = computeProjectLaunchColumnWidths(innerWidth);
20
20
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(TruncateText, { bold: true, color: "cyan", children: title }), _jsx(TruncateText, { dimColor: true, children: help }), _jsxs(Box, { marginTop: 0.5, width: innerWidth, flexDirection: "row", children: [_jsxs(Box, { flexDirection: "column", width: presetWidth, borderStyle: "round", borderColor: focus === 'presets' ? 'cyan' : 'gray', paddingX: 0.5, paddingY: 0.5, children: [_jsxs(TruncateText, { bold: true, children: ["Presets(", presetItems.length, ")"] }), presetItems.map((item, index) => (_jsxs(TruncateText, { ...(index === presetCursor ? { color: 'cyan' } : {}), children: [focus === 'presets' && index === presetCursor ? '❯ ' : ' ', item.name] }, item.name)))] }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `Plugins(${enabledToggleCount(plugins)}/${plugins.length})`, focused: focus === 'plugins', items: pluginItems, cursor: pluginCursor, width: detailWidth }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `Skills(${enabledToggleCount(skills)}/${skills.length})`, focused: focus === 'skills', items: skillItems, cursor: skillCursor, width: detailWidth }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `MCPs(${enabledToggleCount(mcps)}/${mcps.length})`, focused: focus === 'mcps', items: mcpItems, cursor: mcpCursor, width: mcpWidth })] }), toggleMessage ? _jsx(TruncateText, { color: "yellow", children: toggleMessage }) : null] }));
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-launch-columns-view.js","sourceRoot":"","sources":["../../../src/ink/components/project-launch-columns-view.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-launch-columns-view.js","sourceRoot":"","sources":["../../../src/ink/components/project-launch-columns-view.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { LaunchPresetMeta } from '../core/schema.js';
2
- import type { DisableRemovalMark } from '../flows/project-launch-flow.js';
3
- import { type ProjectLaunchToggleState } from '../flows/project-launch-flow.js';
2
+ import type { DisableRemovalMark, ProjectLaunchToggleState } from '../flows/project-launch-flow.js';
4
3
  import type { DisableLockSource } from '../services/disable-lock-service.js';
5
4
  export type ProjectLaunchResult = {
6
5
  type: 'launch';
@@ -2,41 +2,35 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Box, useApp, useInput } from 'ink';
4
4
  import { TruncateText } from './components/truncate-text.js';
5
- import { annotateToggleItems, createProjectLaunchFlowState, formatProjectLaunchSortMode, getActiveProjectLaunchItem, getActiveProjectLaunchState, getPendingDisableRemovals, reduceProjectLaunchFlow, shouldBubbleProjectLaunchEscape, } from '../flows/project-launch-flow.js';
6
5
  import { ConfirmEnableUnlock } from './components/confirm-enable-unlock.js';
7
6
  import { ProjectLaunchColumnsView } from './components/project-launch-columns-view.js';
8
7
  import { useInkResizeVersion } from './components/resize-context.js';
9
8
  import { TextInput } from './components/text-input.js';
10
9
  import { normalizePresetName } from '../core/name.js';
10
+ import { useProjectLaunchBrowserController } from './use-project-launch-browser-controller.js';
11
11
  export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLockSources = [], lastUsedName, onSubmit, onCreateSubmit }) {
12
12
  useInkResizeVersion();
13
13
  const { exit } = useApp();
14
- const [state, setState] = useState(() => createProjectLaunchFlowState({
14
+ const controller = useProjectLaunchBrowserController({
15
15
  presets,
16
16
  detected,
17
17
  statesByPreset,
18
18
  disableLockSources,
19
19
  ...(lastUsedName ? { lastUsedName } : {}),
20
- }));
20
+ });
21
+ const { state, activeItem, activeToggleState, columnsProps } = controller;
21
22
  const [saveChoice, setSaveChoice] = useState('none');
22
23
  const [newName, setNewName] = useState('');
23
24
  const [createError, setCreateError] = useState(null);
24
- const [sortMessage, setSortMessage] = useState(null);
25
- function disableRemovalsFromState() {
26
- const removals = getPendingDisableRemovals(state);
27
- return removals.length > 0 ? { disableRemovals: removals } : {};
28
- }
29
25
  function submitLaunch(saveAs) {
30
26
  const normalizedSaveAs = saveAs?.trim();
31
27
  if (saveAs !== undefined && !normalizedSaveAs)
32
28
  return;
33
- const item = getActiveProjectLaunchItem(state);
34
- const toggles = getActiveProjectLaunchState(state);
35
29
  onSubmit({
36
30
  type: 'launch',
37
- toggles,
38
- ...disableRemovalsFromState(),
39
- ...(item?.type === 'preset' ? { presetName: item.name } : {}),
31
+ toggles: activeToggleState,
32
+ ...controller.disableRemovalsProps(),
33
+ ...(activeItem?.type === 'preset' ? { presetName: activeItem.name } : {}),
40
34
  ...(normalizedSaveAs ? { saveAs: normalizedSaveAs } : {}),
41
35
  });
42
36
  exit();
@@ -44,39 +38,19 @@ export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLoc
44
38
  useInput((input, key) => {
45
39
  if (saveChoice !== 'none' || state.pendingEnableUnlock)
46
40
  return;
47
- if (input !== 't' && sortMessage)
48
- setSortMessage(null);
49
41
  if (input === 'q') {
50
42
  exit();
51
43
  return;
52
44
  }
53
- if (key.leftArrow || input === 'h')
54
- setState(current => reduceProjectLaunchFlow(current, { type: 'focus-left' }));
55
- if (key.rightArrow || (input === 'l' && !key.ctrl && !key.meta))
56
- setState(current => reduceProjectLaunchFlow(current, { type: 'focus-right' }));
57
- if (key.upArrow || input === 'k')
58
- setState(current => reduceProjectLaunchFlow(current, { type: 'up' }));
59
- if (key.downArrow || input === 'j')
60
- setState(current => reduceProjectLaunchFlow(current, { type: 'down' }));
61
- if (key.escape) {
62
- if (shouldBubbleProjectLaunchEscape(state)) {
63
- onSubmit({ type: 'back' });
64
- exit();
65
- return;
66
- }
67
- setState(current => reduceProjectLaunchFlow(current, { type: 'escape' }));
68
- }
69
- if (input === 't') {
70
- const nextState = reduceProjectLaunchFlow(state, { type: 'toggle-sort-mode' });
71
- setState(nextState);
72
- setSortMessage(formatProjectLaunchSortMode(nextState.sortMode));
45
+ const browserResult = controller.dispatchBrowserKey(input, key);
46
+ if (browserResult.bubbledEscape) {
47
+ onSubmit({ type: 'back' });
48
+ exit();
49
+ return;
73
50
  }
74
- if (input === ' ')
75
- setState(current => reduceProjectLaunchFlow(current, { type: 'toggle-current' }));
76
51
  if (key.return) {
77
52
  if (state.dirty) {
78
- const item = getActiveProjectLaunchItem(state);
79
- if (item?.type === 'preset') {
53
+ if (activeItem?.type === 'preset') {
80
54
  submitLaunch();
81
55
  return;
82
56
  }
@@ -87,14 +61,14 @@ export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLoc
87
61
  }
88
62
  });
89
63
  if (state.pendingEnableUnlock) {
90
- return (_jsx(Box, { flexDirection: "column", children: _jsx(ConfirmEnableUnlock, { itemName: state.pendingEnableUnlock.name, ...(state.pendingEnableUnlock.filePath ? { filePath: state.pendingEnableUnlock.filePath } : {}), ...(state.pendingEnableUnlock.requiredPlugin ? { requiredPlugin: state.pendingEnableUnlock.requiredPlugin } : {}), onConfirm: () => setState(current => reduceProjectLaunchFlow(current, { type: 'confirm-enable-unlock' })), onCancel: () => setState(current => reduceProjectLaunchFlow(current, { type: 'cancel-enable-unlock' })) }) }));
64
+ return (_jsx(Box, { flexDirection: "column", children: _jsx(ConfirmEnableUnlock, { itemName: state.pendingEnableUnlock.name, ...(state.pendingEnableUnlock.filePath ? { filePath: state.pendingEnableUnlock.filePath } : {}), ...(state.pendingEnableUnlock.requiredPlugin ? { requiredPlugin: state.pendingEnableUnlock.requiredPlugin } : {}), onConfirm: controller.confirmEnableUnlock, onCancel: controller.cancelEnableUnlock }) }));
91
65
  }
92
66
  if (saveChoice === 'confirm-save') {
93
67
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(TruncateText, { color: "yellow", children: "Save changes as a new project launch preset?" }), _jsx(TruncateText, { dimColor: true, children: "press Y to save \u00B7 n for retained temp settings \u00B7 esc cancel" }), _jsx(ConfirmSaveChoice, { onSave: () => setSaveChoice('name-new'), onTemp: () => {
94
68
  onSubmit({
95
69
  type: 'temp-launch',
96
- toggles: getActiveProjectLaunchState(state),
97
- ...disableRemovalsFromState(),
70
+ toggles: activeToggleState,
71
+ ...controller.disableRemovalsProps(),
98
72
  });
99
73
  exit();
100
74
  }, onCancel: () => setSaveChoice('none') })] }));
@@ -111,7 +85,7 @@ export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLoc
111
85
  if (!saveAs)
112
86
  return;
113
87
  if (onCreateSubmit) {
114
- const error = await onCreateSubmit(saveAs, getActiveProjectLaunchState(state));
88
+ const error = await onCreateSubmit(saveAs, activeToggleState);
115
89
  if (error) {
116
90
  setCreateError(error);
117
91
  return;
@@ -119,8 +93,8 @@ export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLoc
119
93
  onSubmit({
120
94
  type: 'launch',
121
95
  presetName: normalizePresetName(saveAs, { preserveCase: true }),
122
- toggles: getActiveProjectLaunchState(state),
123
- ...disableRemovalsFromState(),
96
+ toggles: activeToggleState,
97
+ ...controller.disableRemovalsProps(),
124
98
  });
125
99
  exit();
126
100
  return;
@@ -128,12 +102,7 @@ export function ProjectLaunchApp({ presets, detected, statesByPreset, disableLoc
128
102
  submitLaunch(newName);
129
103
  } })] }));
130
104
  }
131
- const detectedBaseline = state.statesByPreset.Detected ?? detected;
132
- const pluginItems = annotateToggleItems(state, detectedBaseline, 'plugins', state.plugins);
133
- const skillItems = annotateToggleItems(state, detectedBaseline, 'skills', state.skills);
134
- const mcpItems = annotateToggleItems(state, detectedBaseline, 'mcps', state.mcps);
135
- const message = state.toggleMessage ?? sortMessage;
136
- return (_jsx(ProjectLaunchColumnsView, { presetItems: state.presetItems, presetCursor: state.presetCursor, focus: state.focus, plugins: state.plugins, pluginItems: pluginItems, pluginCursor: state.pluginCursor, skills: state.skills, skillItems: skillItems, skillCursor: state.skillCursor, mcps: state.mcps, mcpItems: mcpItems, mcpCursor: state.mcpCursor, ...(message ? { toggleMessage: message } : {}) }));
105
+ return _jsx(ProjectLaunchColumnsView, { ...columnsProps });
137
106
  }
138
107
  function ConfirmSaveChoice({ onSave, onTemp, onCancel }) {
139
108
  useInput((input, key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"project-launch-app.js","sourceRoot":"","sources":["../../src/ink/project-launch-app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-launch-app.js","sourceRoot":"","sources":["../../src/ink/project-launch-app.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { Box, Text, useApp, useInput, useStdout } from 'ink';
4
- import { annotateToggleItems, createProjectLaunchFlowState, focusProjectLaunchPreset, formatProjectLaunchSortMode, getActiveProjectLaunchItem, getActiveProjectLaunchState, getPendingDisableRemovals, reduceProjectLaunchFlow, shouldBubbleProjectLaunchEscape, } from '../flows/project-launch-flow.js';
3
+ import { Box, Text, useApp, useInput } from 'ink';
4
+ import { focusProjectLaunchPreset, } from '../flows/project-launch-flow.js';
5
5
  import { ConfirmEnableUnlock } from './components/confirm-enable-unlock.js';
6
6
  import { TextInput } from './components/text-input.js';
7
- import { ToggleColumn } from './components/toggle-column.js';
7
+ import { ProjectLaunchColumnsView } from './components/project-launch-columns-view.js';
8
8
  import { buildLaunchPresetFileName, normalizePresetName } from '../core/name.js';
9
- import { enabledToggleCount } from '../flows/toggle-utils.js';
9
+ import { useProjectLaunchBrowserController } from './use-project-launch-browser-controller.js';
10
10
  function syncProjectPresetRename(state, fromName, toName) {
11
11
  const presetItems = state.presetItems.map(item => item.type === 'preset' && item.name === fromName ? { ...item, name: toName, preset: { ...item.preset, name: toName } } : item);
12
12
  const statesByPreset = Object.fromEntries(Object.entries(state.statesByPreset).map(([name, value]) => [name === fromName ? toName : name, value]));
@@ -31,25 +31,17 @@ function syncProjectPresetCreate(state, rawName) {
31
31
  }
32
32
  export function ProjectManageApp({ presets, detected, statesByPreset, disableLockSources = [], lastUsedName, onSubmit, onSaveSubmit, onCreateSubmit, onRenameSubmit }) {
33
33
  const { exit } = useApp();
34
- const { stdout } = useStdout();
35
- const fallbackColumns = 120;
36
- const innerWidth = Math.max(90, stdout.columns ?? fallbackColumns);
37
- const gapWidth = 3;
38
- const contentWidth = innerWidth - gapWidth;
39
- const presetWidth = Math.max(22, Math.floor(contentWidth * 0.22));
40
- const detailWidth = Math.max(24, Math.floor((contentWidth - presetWidth) / 3));
41
- const mcpWidth = contentWidth - presetWidth - detailWidth - detailWidth;
42
- const [state, setState] = useState(() => createProjectLaunchFlowState({
34
+ const controller = useProjectLaunchBrowserController({
43
35
  presets,
44
36
  detected,
45
37
  statesByPreset,
46
38
  disableLockSources,
47
39
  ...(lastUsedName ? { lastUsedName } : {}),
48
- }));
49
- function disableRemovalsFromState() {
50
- const removals = getPendingDisableRemovals(state);
51
- return removals.length > 0 ? { disableRemovals: removals } : {};
52
- }
40
+ moveRightWithL: false,
41
+ title: 'Manage project launch presets',
42
+ help: '←/→ switch column · h/j/k navigate · t sort · space toggle · enter save · r rename · d delete · l launch · esc presets/quit · q quit',
43
+ });
44
+ const { state, activeItem, activeToggleState, columnsProps } = controller;
53
45
  const [mode, setMode] = useState('browse');
54
46
  const [saveMode, setSaveMode] = useState('none');
55
47
  const [message, setMessage] = useState(null);
@@ -58,54 +50,34 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
58
50
  useInput((input, key) => {
59
51
  if (mode !== 'browse' || saveMode !== 'none' || state.pendingEnableUnlock)
60
52
  return;
61
- if (input !== 't' && message?.text.startsWith('Sorted by '))
62
- setMessage(null);
63
53
  if (input === 'q') {
64
54
  exit();
65
55
  return;
66
56
  }
67
- if (key.leftArrow || input === 'h')
68
- setState(current => reduceProjectLaunchFlow(current, { type: 'focus-left' }));
69
- if (key.rightArrow)
70
- setState(current => reduceProjectLaunchFlow(current, { type: 'focus-right' }));
71
- if (key.upArrow || input === 'k')
72
- setState(current => reduceProjectLaunchFlow(current, { type: 'up' }));
73
- if (key.downArrow || input === 'j')
74
- setState(current => reduceProjectLaunchFlow(current, { type: 'down' }));
75
- if (key.escape) {
76
- if (shouldBubbleProjectLaunchEscape(state)) {
77
- exit();
78
- return;
79
- }
80
- setState(current => reduceProjectLaunchFlow(current, { type: 'escape' }));
57
+ const browserResult = controller.dispatchBrowserKey(input, key);
58
+ if (browserResult.bubbledEscape) {
59
+ exit();
81
60
  return;
82
61
  }
83
- if (input === 't') {
84
- const nextState = reduceProjectLaunchFlow(state, { type: 'toggle-sort-mode' });
85
- setState(nextState);
86
- setMessage({ text: formatProjectLaunchSortMode(nextState.sortMode), color: 'yellow' });
87
- }
88
- if (input === ' ') {
89
- const item = getActiveProjectLaunchItem(state);
90
- setState(current => reduceProjectLaunchFlow(current, { type: 'toggle-current' }));
91
- if (item?.type === 'detected') {
92
- setMessage({ text: 'Press enter to create a new preset from Detected', color: 'yellow' });
93
- }
62
+ if (input === 't' && browserResult.handled)
63
+ setMessage(null);
64
+ if (browserResult.toggledDetected) {
65
+ setMessage({ text: 'Press enter to create a new preset from Detected', color: 'yellow' });
94
66
  }
67
+ if (browserResult.handled)
68
+ return;
95
69
  if (input === 'r') {
96
- const item = getActiveProjectLaunchItem(state);
97
- if (item?.type !== 'preset') {
70
+ if (activeItem?.type !== 'preset') {
98
71
  setMessage({ text: 'Detected cannot be renamed', color: 'yellow' });
99
72
  return;
100
73
  }
101
74
  setRenameError(null);
102
- setNewName(item.name);
75
+ setNewName(activeItem.name);
103
76
  setMode('rename');
104
77
  return;
105
78
  }
106
79
  if (input === 'd') {
107
- const item = getActiveProjectLaunchItem(state);
108
- if (item?.type !== 'preset') {
80
+ if (activeItem?.type !== 'preset') {
109
81
  setMessage({ text: 'Detected cannot be deleted', color: 'yellow' });
110
82
  return;
111
83
  }
@@ -113,23 +85,21 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
113
85
  return;
114
86
  }
115
87
  if (input === 'l' && !key.ctrl && !key.meta) {
116
- const item = getActiveProjectLaunchItem(state);
117
- const toggles = getActiveProjectLaunchState(state);
118
88
  if (state.dirty) {
119
- if (item?.type === 'preset') {
89
+ if (activeItem?.type === 'preset') {
120
90
  if (onSaveSubmit) {
121
91
  void (async () => {
122
- const error = await onSaveSubmit(item.name, toggles);
92
+ const error = await onSaveSubmit(activeItem.name, activeToggleState);
123
93
  if (error) {
124
94
  setMessage({ text: error, color: 'red' });
125
95
  return;
126
96
  }
127
- onSubmit({ type: 'launch', presetName: item.name, toggles, ...disableRemovalsFromState() });
97
+ onSubmit({ type: 'launch', presetName: activeItem.name, toggles: activeToggleState, ...controller.disableRemovalsProps() });
128
98
  exit();
129
99
  })();
130
100
  return;
131
101
  }
132
- onSubmit({ type: 'launch', presetName: item.name, toggles, ...disableRemovalsFromState() });
102
+ onSubmit({ type: 'launch', presetName: activeItem.name, toggles: activeToggleState, ...controller.disableRemovalsProps() });
133
103
  exit();
134
104
  return;
135
105
  }
@@ -140,9 +110,9 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
140
110
  }
141
111
  onSubmit({
142
112
  type: 'launch',
143
- toggles,
144
- ...disableRemovalsFromState(),
145
- ...(item?.type === 'preset' ? { presetName: item.name } : {}),
113
+ toggles: activeToggleState,
114
+ ...controller.disableRemovalsProps(),
115
+ ...(activeItem?.type === 'preset' ? { presetName: activeItem.name } : {}),
146
116
  });
147
117
  exit();
148
118
  return;
@@ -150,12 +120,10 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
150
120
  if (key.return) {
151
121
  if (!state.dirty)
152
122
  return;
153
- const item = getActiveProjectLaunchItem(state);
154
- const toggles = getActiveProjectLaunchState(state);
155
- if (item?.type === 'preset') {
123
+ if (activeItem?.type === 'preset') {
156
124
  if (onSaveSubmit) {
157
125
  void (async () => {
158
- const error = await onSaveSubmit(item.name, toggles);
126
+ const error = await onSaveSubmit(activeItem.name, activeToggleState);
159
127
  if (error) {
160
128
  setMessage({ text: error, color: 'red' });
161
129
  return;
@@ -164,7 +132,7 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
164
132
  })();
165
133
  return;
166
134
  }
167
- onSubmit({ type: 'save', presetName: item.name, toggles, ...disableRemovalsFromState() });
135
+ onSubmit({ type: 'save', presetName: activeItem.name, toggles: activeToggleState, ...controller.disableRemovalsProps() });
168
136
  exit();
169
137
  return;
170
138
  }
@@ -173,13 +141,8 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
173
141
  setSaveMode('name-new');
174
142
  }
175
143
  });
176
- const activeItem = getActiveProjectLaunchItem(state);
177
- const detectedBaseline = state.statesByPreset.Detected ?? detected;
178
- const pluginItems = annotateToggleItems(state, detectedBaseline, 'plugins', state.plugins);
179
- const skillItems = annotateToggleItems(state, detectedBaseline, 'skills', state.skills);
180
- const mcpItems = annotateToggleItems(state, detectedBaseline, 'mcps', state.mcps);
181
144
  if (state.pendingEnableUnlock) {
182
- return (_jsx(Box, { flexDirection: "column", children: _jsx(ConfirmEnableUnlock, { itemName: state.pendingEnableUnlock.name, ...(state.pendingEnableUnlock.filePath ? { filePath: state.pendingEnableUnlock.filePath } : {}), ...(state.pendingEnableUnlock.requiredPlugin ? { requiredPlugin: state.pendingEnableUnlock.requiredPlugin } : {}), onConfirm: () => setState(current => reduceProjectLaunchFlow(current, { type: 'confirm-enable-unlock' })), onCancel: () => setState(current => reduceProjectLaunchFlow(current, { type: 'cancel-enable-unlock' })) }) }));
145
+ return (_jsx(Box, { flexDirection: "column", children: _jsx(ConfirmEnableUnlock, { itemName: state.pendingEnableUnlock.name, ...(state.pendingEnableUnlock.filePath ? { filePath: state.pendingEnableUnlock.filePath } : {}), ...(state.pendingEnableUnlock.requiredPlugin ? { requiredPlugin: state.pendingEnableUnlock.requiredPlugin } : {}), onConfirm: controller.confirmEnableUnlock, onCancel: controller.cancelEnableUnlock }) }));
183
146
  }
184
147
  if (saveMode === 'name-new') {
185
148
  return (_jsxs(Box, { flexDirection: "column", children: [message?.color === 'red' ? _jsx(Text, { color: "red", children: message.text }) : null, _jsx(TextInput, { label: "Project launch preset name", value: newName, onChange: value => {
@@ -193,12 +156,12 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
193
156
  if (!saveAs)
194
157
  return;
195
158
  if (onCreateSubmit) {
196
- const error = await onCreateSubmit(saveAs, getActiveProjectLaunchState(state));
159
+ const error = await onCreateSubmit(saveAs, activeToggleState);
197
160
  if (error) {
198
161
  setMessage({ text: error, color: 'red' });
199
162
  return;
200
163
  }
201
- setState(current => syncProjectPresetCreate(current, saveAs));
164
+ controller.syncPresetState(current => syncProjectPresetCreate(current, saveAs));
202
165
  setMessage({ text: 'Preset created successfully', color: 'yellow' });
203
166
  setSaveMode('none');
204
167
  setNewName('');
@@ -206,9 +169,9 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
206
169
  }
207
170
  onSubmit({
208
171
  type: 'create',
209
- toggles: getActiveProjectLaunchState(state),
172
+ toggles: activeToggleState,
210
173
  saveAs,
211
- ...disableRemovalsFromState(),
174
+ ...controller.disableRemovalsProps(),
212
175
  });
213
176
  exit();
214
177
  } })] }));
@@ -226,7 +189,7 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
226
189
  setRenameError(error);
227
190
  return;
228
191
  }
229
- setState(current => syncProjectPresetRename(current, activeItem.name, newName.trim() || activeItem.name));
192
+ controller.syncPresetState(current => syncProjectPresetRename(current, activeItem.name, newName.trim() || activeItem.name));
230
193
  setMessage({ text: 'Preset renamed successfully', color: 'yellow' });
231
194
  setMode('browse');
232
195
  return;
@@ -243,7 +206,7 @@ export function ProjectManageApp({ presets, detected, statesByPreset, disableLoc
243
206
  exit();
244
207
  } })] }));
245
208
  }
246
- return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, color: "cyan", children: "Manage project launch presets" }), _jsx(Text, { dimColor: true, children: "\u2190/\u2192 switch column \u00B7 h/j/k navigate \u00B7 t sort \u00B7 space toggle \u00B7 enter save \u00B7 r rename \u00B7 d delete \u00B7 l launch \u00B7 esc presets/quit \u00B7 q quit" }), _jsxs(Box, { marginTop: 1, width: innerWidth, children: [_jsxs(Box, { flexDirection: "column", width: presetWidth, borderStyle: "round", borderColor: state.focus === 'presets' ? 'cyan' : 'gray', paddingX: 0.5, paddingY: 0.5, children: [_jsxs(Text, { bold: true, children: ["Presets(", state.presetItems.length, ")"] }), state.presetItems.map((item, index) => (_jsxs(Text, { wrap: "truncate-end", ...(index === state.presetCursor ? { color: 'cyan' } : {}), children: [state.focus === 'presets' && index === state.presetCursor ? '❯ ' : ' ', item.name] }, item.name)))] }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `Plugins(${enabledToggleCount(state.plugins)}/${state.plugins.length})`, focused: state.focus === 'plugins', items: pluginItems, cursor: state.pluginCursor, width: detailWidth }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `Skills(${enabledToggleCount(state.skills)}/${state.skills.length})`, focused: state.focus === 'skills', items: skillItems, cursor: state.skillCursor, width: detailWidth }), _jsx(Box, { width: 1 }), _jsx(ToggleColumn, { title: `MCPs(${enabledToggleCount(state.mcps)}/${state.mcps.length})`, focused: state.focus === 'mcps', items: mcpItems, cursor: state.mcpCursor, width: mcpWidth })] }), state.toggleMessage ? _jsx(Text, { color: "yellow", children: state.toggleMessage }) : message ? _jsx(Text, { color: message.color, children: message.text }) : null] }));
209
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(ProjectLaunchColumnsView, { ...columnsProps, minWidth: 90 }), !columnsProps.toggleMessage && message ? _jsx(Text, { color: message.color, children: message.text }) : null] }));
247
210
  }
248
211
  function ConfirmDelete({ onConfirm, onCancel }) {
249
212
  useInput((input, key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"project-manage-app.js","sourceRoot":"","sources":["../../src/ink/project-manage-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAE5D,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,GAEhC,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAG5D,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,SAAS,uBAAuB,CAAC,KAA6B,EAAE,QAAgB,EAAE,MAAc;IAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAChL,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAClJ,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAClJ,OAAO;QACL,GAAG,KAAK;QACR,WAAW;QACX,cAAc;QACd,cAAc;KACf,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA6B,EAAE,OAAe;IAC7E,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACjE,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAA6B,CAAA;IACjH,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,CAC7C,CAAA;IAE7C,OAAO,wBAAwB,CAAC;QAC9B,GAAG,KAAK;QACR,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC;QAChL,cAAc,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE;QACjE,cAAc;KACf,EAAE,IAAI,CAAC,CAAA;AACV,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAS;IAC1K,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,eAAe,GAAG,GAAG,CAAA;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,CAAC,CAAA;IAClB,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAA;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9E,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAA;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC;QACpE,OAAO;QACP,QAAQ;QACR,cAAc;QACd,kBAAkB;QAClB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAC,CAAA;IACH,SAAS,wBAAwB;QAC/B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACjE,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAiC,QAAQ,CAAC,CAAA;IAC1E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAW,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAmD,IAAI,CAAC,CAAA;IAC9F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEnE,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,IAAI,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,mBAAmB;YAAE,OAAM;QACjF,IAAI,KAAK,KAAK,GAAG,IAAI,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC7E,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACjH,IAAI,GAAG,CAAC,UAAU;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;QAClG,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACvG,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAC3G,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,EAAE,CAAA;gBACN,OAAM;YACR,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;YACzE,OAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC9E,QAAQ,CAAC,SAAS,CAAC,CAAA;YACnB,UAAU,CAAC,EAAE,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;YAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAA;YACjF,IAAI,IAAI,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,UAAU,CAAC,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,UAAU,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACnE,OAAM;YACR,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,CAAC,QAAQ,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,UAAU,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACnE,OAAM;YACR,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,IAAI,YAAY,EAAE,CAAC;wBACjB,KAAK,CAAC,KAAK,IAAI,EAAE;4BACf,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;4BACpD,IAAI,KAAK,EAAE,CAAC;gCACV,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gCACzC,OAAM;4BACR,CAAC;4BACD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,wBAAwB,EAAE,EAAE,CAAC,CAAA;4BAC3F,IAAI,EAAE,CAAA;wBACR,CAAC,CAAC,EAAE,CAAA;wBACJ,OAAM;oBACR,CAAC;oBACD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,wBAAwB,EAAE,EAAE,CAAC,CAAA;oBAC3F,IAAI,EAAE,CAAA;oBACN,OAAM;gBACR,CAAC;gBACD,UAAU,CAAC,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACzF,UAAU,CAAC,EAAE,CAAC,CAAA;gBACd,WAAW,CAAC,UAAU,CAAC,CAAA;gBACvB,OAAM;YACR,CAAC;YACD,QAAQ,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,GAAG,wBAAwB,EAAE;gBAC7B,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAA;YACF,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,OAAM;YACxB,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,YAAY,EAAE,CAAC;oBACjB,KAAK,CAAC,KAAK,IAAI,EAAE;wBACf,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;wBACpD,IAAI,KAAK,EAAE,CAAC;4BACV,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;4BACzC,OAAM;wBACR,CAAC;wBACD,UAAU,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;oBACpE,CAAC,CAAC,EAAE,CAAA;oBACJ,OAAM;gBACR,CAAC;gBACD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,wBAAwB,EAAE,EAAE,CAAC,CAAA;gBACzF,IAAI,EAAE,CAAA;gBACN,OAAM;YACR,CAAC;YACD,UAAU,CAAC,EAAE,IAAI,EAAE,kDAAkD,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzF,UAAU,CAAC,EAAE,CAAC,CAAA;YACd,WAAW,CAAC,UAAU,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;IACpD,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,IAAI,QAAQ,CAAA;IAClE,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1F,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAEjF,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAC,mBAAmB,IAClB,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,IAAI,KACpC,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC5F,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAClH,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC,EACzG,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,GACvG,GACE,CACP,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,OAAO,CAAC,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC1E,KAAC,SAAS,IACR,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK;4BAAE,UAAU,CAAC,IAAI,CAAC,CAAA;wBAC9C,UAAU,CAAC,KAAK,CAAC,CAAA;oBACnB,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;wBACb,WAAW,CAAC,MAAM,CAAC,CAAA;oBACrB,CAAC,EACD,QAAQ,EAAE,KAAK,IAAI,EAAE;wBACnB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;wBAC7B,IAAI,CAAC,MAAM;4BAAE,OAAM;wBACnB,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAA;4BAC9E,IAAI,KAAK,EAAE,CAAC;gCACV,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gCACzC,OAAM;4BACR,CAAC;4BACD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;4BAC7D,UAAU,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;4BACpE,WAAW,CAAC,MAAM,CAAC,CAAA;4BACnB,UAAU,CAAC,EAAE,CAAC,CAAA;4BACd,OAAM;wBACR,CAAC;wBACD,QAAQ,CAAC;4BACP,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC;4BAC3C,MAAM;4BACN,GAAG,wBAAwB,EAAE;yBAC9B,CAAC,CAAA;wBACF,IAAI,EAAE,CAAA;oBACR,CAAC,GACD,IACE,CACP,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,oBAAS,EACtE,KAAC,SAAS,IACR,KAAK,EAAE,UAAU,UAAU,EAAE,IAAI,IAAI,QAAQ,KAAK,EAClD,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,cAAc,CAAC,IAAI,CAAC,CAAA;wBACpB,UAAU,CAAC,KAAK,CAAC,CAAA;oBACnB,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACjC,QAAQ,EAAE,KAAK,IAAI,EAAE;wBACnB,IAAI,UAAU,EAAE,IAAI,KAAK,QAAQ;4BAAE,OAAM;wBACzC,IAAI,cAAc,EAAE,CAAC;4BACnB,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;4BAC5D,IAAI,KAAK,EAAE,CAAC;gCACV,cAAc,CAAC,KAAK,CAAC,CAAA;gCACrB,OAAM;4BACR,CAAC;4BACD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;4BACzG,UAAU,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;4BACpE,OAAO,CAAC,QAAQ,CAAC,CAAA;4BACjB,OAAM;wBACR,CAAC;wBACD,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;wBAClE,IAAI,EAAE,CAAA;oBACR,CAAC,GACD,IACE,CACP,CAAA;IACH,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,+BAAgB,UAAU,EAAE,IAAI,IAAI,QAAQ,SAAS,EACtE,KAAC,IAAI,IAAC,QAAQ,2DAAuC,EACrD,KAAC,aAAa,IACZ,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,GAAG,EAAE;wBACd,IAAI,UAAU,EAAE,IAAI,KAAK,QAAQ;4BAAE,OAAM;wBACzC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;wBACzD,IAAI,EAAE,CAAA;oBACR,CAAC,GACD,IACE,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,8CAAqC,EAC5D,KAAC,IAAI,IAAC,QAAQ,kNAA4I,EAC1J,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,aAClC,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,aACxJ,MAAC,IAAI,IAAC,IAAI,+BAAU,KAAK,CAAC,WAAW,CAAC,MAAM,SAAS,EACpD,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACtC,MAAC,IAAI,IAAiB,IAAI,EAAC,cAAc,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAC3G,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAD1E,IAAI,CAAC,IAAI,CAEb,CACR,CAAC,IACE,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,GAAI,EACjB,KAAC,YAAY,IAAC,KAAK,EAAE,WAAW,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,GAAI,EACxM,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,GAAI,EACjB,KAAC,YAAY,IAAC,KAAK,EAAE,UAAU,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,GAAI,EAClM,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,GAAI,EACjB,KAAC,YAAY,IAAC,KAAK,EAAE,QAAQ,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAI,IAC/K,EACL,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,KAAK,CAAC,aAAa,GAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,KAAK,YAAG,OAAO,CAAC,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,IACzI,CACP,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAmD;IAC7F,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,GAAG;YAAE,SAAS,EAAE,CAAA;QAC9B,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM;YAAE,QAAQ,EAAE,CAAA;IAC7C,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"project-manage-app.js","sourceRoot":"","sources":["../../src/ink/project-manage-app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Key } from 'ink';
2
+ import type { LaunchPresetMeta } from '../core/schema.js';
3
+ import type { DisableRemovalMark, ProjectLaunchFlowState, ProjectLaunchPresetItem, ProjectLaunchToggleState } from '../flows/project-launch-flow.js';
4
+ import type { DisableLockSource } from '../services/disable-lock-service.js';
5
+ import type { ProjectLaunchColumnsViewProps } from './components/project-launch-columns-view.js';
6
+ export type ProjectLaunchBrowserKey = Partial<Key>;
7
+ export type ProjectLaunchBrowserDispatchResult = {
8
+ handled: boolean;
9
+ bubbledEscape?: boolean;
10
+ toggledDetected?: boolean;
11
+ };
12
+ type UseProjectLaunchBrowserControllerInput = {
13
+ presets: LaunchPresetMeta[];
14
+ detected: ProjectLaunchToggleState;
15
+ statesByPreset: Record<string, ProjectLaunchToggleState>;
16
+ disableLockSources?: DisableLockSource[];
17
+ lastUsedName?: string;
18
+ moveRightWithL?: boolean;
19
+ title?: string;
20
+ help?: string;
21
+ };
22
+ export type ProjectLaunchBrowserController = {
23
+ state: ProjectLaunchFlowState;
24
+ activeItem: ProjectLaunchPresetItem | undefined;
25
+ activeToggleState: ProjectLaunchToggleState;
26
+ sortMessage: string | null;
27
+ columnsProps: ProjectLaunchColumnsViewProps;
28
+ dispatchBrowserKey: (input: string, key: ProjectLaunchBrowserKey) => ProjectLaunchBrowserDispatchResult;
29
+ confirmEnableUnlock: () => void;
30
+ cancelEnableUnlock: () => void;
31
+ disableRemovalsProps: () => {
32
+ disableRemovals?: DisableRemovalMark[];
33
+ };
34
+ syncPresetState: (updater: (state: ProjectLaunchFlowState) => ProjectLaunchFlowState) => void;
35
+ };
36
+ export declare function useProjectLaunchBrowserController({ presets, detected, statesByPreset, disableLockSources, lastUsedName, moveRightWithL, title, help, }: UseProjectLaunchBrowserControllerInput): ProjectLaunchBrowserController;
37
+ export {};
@@ -0,0 +1,119 @@
1
+ import { useCallback, useRef, useState } from 'react';
2
+ import { annotateToggleItems, createProjectLaunchFlowState, formatProjectLaunchSortMode, getActiveProjectLaunchItem, getActiveProjectLaunchState, getPendingDisableRemovals, reduceProjectLaunchFlow, shouldBubbleProjectLaunchEscape, } from '../flows/project-launch-flow.js';
3
+ export function useProjectLaunchBrowserController({ presets, detected, statesByPreset, disableLockSources = [], lastUsedName, moveRightWithL = true, title, help, }) {
4
+ const [state, setState] = useState(() => createProjectLaunchFlowState({
5
+ presets,
6
+ detected,
7
+ statesByPreset,
8
+ disableLockSources,
9
+ ...(lastUsedName ? { lastUsedName } : {}),
10
+ }));
11
+ // Multiple dispatches can happen before React renders; mirror state in refs so each dispatch sees the latest synchronous flow state.
12
+ const stateRef = useRef(state);
13
+ stateRef.current = state;
14
+ const [sortMessage, setSortMessageState] = useState(null);
15
+ const sortMessageRef = useRef(sortMessage);
16
+ sortMessageRef.current = sortMessage;
17
+ const detectedBaseline = state.statesByPreset.Detected ?? detected;
18
+ const activeItem = getActiveProjectLaunchItem(state);
19
+ const activeToggleState = getActiveProjectLaunchState(state);
20
+ const pluginItems = annotateToggleItems(state, detectedBaseline, 'plugins', state.plugins);
21
+ const skillItems = annotateToggleItems(state, detectedBaseline, 'skills', state.skills);
22
+ const mcpItems = annotateToggleItems(state, detectedBaseline, 'mcps', state.mcps);
23
+ const message = state.toggleMessage ?? sortMessage;
24
+ const columnsProps = {
25
+ presetItems: state.presetItems,
26
+ presetCursor: state.presetCursor,
27
+ focus: state.focus,
28
+ plugins: state.plugins,
29
+ pluginItems,
30
+ pluginCursor: state.pluginCursor,
31
+ skills: state.skills,
32
+ skillItems,
33
+ skillCursor: state.skillCursor,
34
+ mcps: state.mcps,
35
+ mcpItems,
36
+ mcpCursor: state.mcpCursor,
37
+ ...(title ? { title } : {}),
38
+ ...(help ? { help } : {}),
39
+ ...(message ? { toggleMessage: message } : {}),
40
+ };
41
+ const updateFlowState = useCallback((updater) => {
42
+ const nextState = updater(stateRef.current);
43
+ stateRef.current = nextState;
44
+ setState(nextState);
45
+ return nextState;
46
+ }, []);
47
+ const reduceCurrentFlow = useCallback((event) => {
48
+ return updateFlowState(current => reduceProjectLaunchFlow(current, event));
49
+ }, [updateFlowState]);
50
+ const updateSortMessage = useCallback((nextMessage) => {
51
+ sortMessageRef.current = nextMessage;
52
+ setSortMessageState(nextMessage);
53
+ }, []);
54
+ const dispatchBrowserKey = useCallback((input, key) => {
55
+ if (stateRef.current.pendingEnableUnlock)
56
+ return { handled: true };
57
+ if (input !== 't' && sortMessageRef.current)
58
+ updateSortMessage(null);
59
+ if (key.leftArrow || input === 'h') {
60
+ reduceCurrentFlow({ type: 'focus-left' });
61
+ return { handled: true };
62
+ }
63
+ if (key.rightArrow || (moveRightWithL && input === 'l' && !key.ctrl && !key.meta)) {
64
+ reduceCurrentFlow({ type: 'focus-right' });
65
+ return { handled: true };
66
+ }
67
+ if (key.upArrow || input === 'k') {
68
+ reduceCurrentFlow({ type: 'up' });
69
+ return { handled: true };
70
+ }
71
+ if (key.downArrow || input === 'j') {
72
+ reduceCurrentFlow({ type: 'down' });
73
+ return { handled: true };
74
+ }
75
+ if (key.escape) {
76
+ if (shouldBubbleProjectLaunchEscape(stateRef.current))
77
+ return { handled: true, bubbledEscape: true };
78
+ reduceCurrentFlow({ type: 'escape' });
79
+ return { handled: true };
80
+ }
81
+ if (input === 't') {
82
+ const nextState = reduceCurrentFlow({ type: 'toggle-sort-mode' });
83
+ updateSortMessage(formatProjectLaunchSortMode(nextState.sortMode));
84
+ return { handled: true };
85
+ }
86
+ if (input === ' ') {
87
+ const toggledDetected = stateRef.current.focus === 'presets' && getActiveProjectLaunchItem(stateRef.current)?.type === 'detected';
88
+ reduceCurrentFlow({ type: 'toggle-current' });
89
+ return { handled: true, ...(toggledDetected ? { toggledDetected } : {}) };
90
+ }
91
+ return { handled: false };
92
+ }, [moveRightWithL, reduceCurrentFlow, updateSortMessage]);
93
+ const confirmEnableUnlock = useCallback(() => {
94
+ reduceCurrentFlow({ type: 'confirm-enable-unlock' });
95
+ }, [reduceCurrentFlow]);
96
+ const cancelEnableUnlock = useCallback(() => {
97
+ reduceCurrentFlow({ type: 'cancel-enable-unlock' });
98
+ }, [reduceCurrentFlow]);
99
+ const disableRemovalsProps = useCallback(() => {
100
+ const pendingDisableRemovals = getPendingDisableRemovals(stateRef.current);
101
+ return pendingDisableRemovals.length > 0 ? { disableRemovals: pendingDisableRemovals } : {};
102
+ }, []);
103
+ const syncPresetState = useCallback((updater) => {
104
+ updateFlowState(updater);
105
+ }, [updateFlowState]);
106
+ return {
107
+ state,
108
+ activeItem,
109
+ activeToggleState,
110
+ sortMessage,
111
+ columnsProps,
112
+ dispatchBrowserKey,
113
+ confirmEnableUnlock,
114
+ cancelEnableUnlock,
115
+ disableRemovalsProps,
116
+ syncPresetState,
117
+ };
118
+ }
119
+ //# sourceMappingURL=use-project-launch-browser-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-project-launch-browser-controller.js","sourceRoot":"","sources":["../../src/ink/use-project-launch-browser-controller.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.1.3";
1
+ export declare const VERSION = "1.1.4";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Generated by scripts/generate-version.mjs. Do not edit.
2
- export const VERSION = "1.1.3";
2
+ export const VERSION = "1.1.4";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lkangd/cc-settings-preset",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "A switchable, reusable runtime settings preset selector for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",