@lkangd/cc-settings-preset 1.0.6 → 1.0.8
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 +42 -6
- package/README.zh-hans.md +43 -7
- package/dist/cli.js +186 -18
- package/dist/cli.js.map +1 -1
- package/dist/core/args.d.ts +13 -0
- package/dist/core/args.js +45 -0
- package/dist/core/args.js.map +1 -1
- package/dist/core/json.d.ts +1 -0
- package/dist/core/json.js +22 -9
- package/dist/core/json.js.map +1 -1
- package/dist/core/paths.d.ts +2 -0
- package/dist/core/paths.js +6 -0
- package/dist/core/paths.js.map +1 -1
- package/dist/core/schema.d.ts +77 -0
- package/dist/core/schema.js +31 -0
- package/dist/core/schema.js.map +1 -1
- package/dist/flows/config-flow.d.ts +27 -0
- package/dist/flows/config-flow.js +49 -0
- package/dist/flows/config-flow.js.map +1 -0
- package/dist/ink/components/two-column-settings-view.d.ts +4 -1
- package/dist/ink/components/two-column-settings-view.js +14 -2
- package/dist/ink/components/two-column-settings-view.js.map +1 -1
- package/dist/ink/components/yaml-tree-view.d.ts +3 -0
- package/dist/ink/components/yaml-tree-view.js +108 -0
- package/dist/ink/components/yaml-tree-view.js.map +1 -0
- package/dist/ink/config-app.d.ts +7 -0
- package/dist/ink/config-app.js +43 -0
- package/dist/ink/config-app.js.map +1 -0
- package/dist/ink/manage-app.d.ts +3 -1
- package/dist/ink/manage-app.js +2 -2
- package/dist/ink/manage-app.js.map +1 -1
- package/dist/ink/settings-select-app.d.ts +4 -1
- package/dist/ink/settings-select-app.js +5 -2
- package/dist/ink/settings-select-app.js.map +1 -1
- package/dist/services/ccsp-config-service.d.ts +6 -0
- package/dist/services/ccsp-config-service.js +21 -0
- package/dist/services/ccsp-config-service.js.map +1 -0
- package/dist/services/claude-session-service.d.ts +13 -0
- package/dist/services/claude-session-service.js +73 -0
- package/dist/services/claude-session-service.js.map +1 -0
- package/dist/services/launch-preset-service.d.ts +20 -3
- package/dist/services/launch-preset-service.js +94 -27
- package/dist/services/launch-preset-service.js.map +1 -1
- package/dist/services/settings-finalizer-service.d.ts +2 -1
- package/dist/services/settings-finalizer-service.js +3 -1
- package/dist/services/settings-finalizer-service.js.map +1 -1
- package/dist/services/statusline-injector-service.d.ts +1 -1
- package/dist/services/statusline-injector-service.js +1 -3
- package/dist/services/statusline-injector-service.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-column-settings-view.js","sourceRoot":"","sources":["../../../src/ink/components/two-column-settings-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"two-column-settings-view.js","sourceRoot":"","sources":["../../../src/ink/components/two-column-settings-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { TruncateText } from './truncate-text.js';
|
|
4
|
+
const KEY_COLOR = 'cyan';
|
|
5
|
+
const PUNCT_COLOR = 'gray';
|
|
6
|
+
const STRING_COLOR = 'green';
|
|
7
|
+
const NUMBER_COLOR = 'yellow';
|
|
8
|
+
const BOOL_COLOR = 'magenta';
|
|
9
|
+
const NULL_COLOR = 'gray';
|
|
10
|
+
function isPlainObject(value) {
|
|
11
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
12
|
+
}
|
|
13
|
+
function isScalar(value) {
|
|
14
|
+
return !isPlainObject(value) && !Array.isArray(value);
|
|
15
|
+
}
|
|
16
|
+
function scalarColor(value) {
|
|
17
|
+
if (typeof value === 'string')
|
|
18
|
+
return STRING_COLOR;
|
|
19
|
+
if (typeof value === 'number')
|
|
20
|
+
return NUMBER_COLOR;
|
|
21
|
+
if (typeof value === 'boolean')
|
|
22
|
+
return BOOL_COLOR;
|
|
23
|
+
return NULL_COLOR;
|
|
24
|
+
}
|
|
25
|
+
function needsQuote(value) {
|
|
26
|
+
if (value === '')
|
|
27
|
+
return true;
|
|
28
|
+
if (/^\s|\s$/.test(value))
|
|
29
|
+
return true;
|
|
30
|
+
if (/: |:$| #/.test(value))
|
|
31
|
+
return true;
|
|
32
|
+
if (/^[#&*!|>%@`"'[\]{},?:-]/.test(value))
|
|
33
|
+
return true;
|
|
34
|
+
if (/[\n\t]/.test(value))
|
|
35
|
+
return true;
|
|
36
|
+
if (/^(true|false|null|yes|no|on|off|~)$/i.test(value))
|
|
37
|
+
return true;
|
|
38
|
+
if (/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(value))
|
|
39
|
+
return true;
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
function renderScalar(value) {
|
|
43
|
+
if (value === null || value === undefined)
|
|
44
|
+
return 'null';
|
|
45
|
+
if (typeof value === 'string')
|
|
46
|
+
return needsQuote(value) ? JSON.stringify(value) : value;
|
|
47
|
+
return String(value);
|
|
48
|
+
}
|
|
49
|
+
function YamlScalar({ value }) {
|
|
50
|
+
return _jsx(Text, { color: scalarColor(value), children: renderScalar(value) });
|
|
51
|
+
}
|
|
52
|
+
function YamlMapping({ value }) {
|
|
53
|
+
const entries = Object.entries(value);
|
|
54
|
+
if (entries.length === 0)
|
|
55
|
+
return _jsx(TruncateText, { children: _jsx(Text, { color: PUNCT_COLOR, children: '{}' }) });
|
|
56
|
+
return (_jsx(Box, { flexDirection: "column", width: "100%", children: entries.map(([key, child]) => (_jsx(YamlEntry, { name: key, value: child }, key))) }));
|
|
57
|
+
}
|
|
58
|
+
function YamlEntry({ name, value }) {
|
|
59
|
+
const keyLabel = _jsx(Text, { color: KEY_COLOR, children: name });
|
|
60
|
+
if (isScalar(value)) {
|
|
61
|
+
return (_jsxs(TruncateText, { children: [keyLabel, _jsx(Text, { color: PUNCT_COLOR, children: ": " }), _jsx(YamlScalar, { value: value })] }));
|
|
62
|
+
}
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
if (value.length === 0) {
|
|
65
|
+
return (_jsxs(TruncateText, { children: [keyLabel, _jsx(Text, { color: PUNCT_COLOR, children: ": []" })] }));
|
|
66
|
+
}
|
|
67
|
+
return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsxs(TruncateText, { children: [keyLabel, _jsx(Text, { color: PUNCT_COLOR, children: ":" })] }), _jsx(Box, { paddingLeft: 2, width: "100%", children: _jsx(YamlSequence, { items: value }) })] }));
|
|
68
|
+
}
|
|
69
|
+
const entries = Object.entries(value);
|
|
70
|
+
if (entries.length === 0) {
|
|
71
|
+
return (_jsxs(TruncateText, { children: [keyLabel, _jsx(Text, { color: PUNCT_COLOR, children: ': {}' })] }));
|
|
72
|
+
}
|
|
73
|
+
return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsxs(TruncateText, { children: [keyLabel, _jsx(Text, { color: PUNCT_COLOR, children: ":" })] }), _jsx(Box, { paddingLeft: 2, width: "100%", children: _jsx(YamlMapping, { value: value }) })] }));
|
|
74
|
+
}
|
|
75
|
+
function YamlSequence({ items }) {
|
|
76
|
+
return (_jsx(Box, { flexDirection: "column", width: "100%", children: items.map((item, index) => (_jsx(YamlSequenceItem, { value: item }, index))) }));
|
|
77
|
+
}
|
|
78
|
+
function YamlSequenceItem({ value }) {
|
|
79
|
+
const dash = _jsx(Text, { color: PUNCT_COLOR, children: "- " });
|
|
80
|
+
if (isScalar(value)) {
|
|
81
|
+
return (_jsxs(TruncateText, { children: [dash, _jsx(YamlScalar, { value: value })] }));
|
|
82
|
+
}
|
|
83
|
+
if (Array.isArray(value)) {
|
|
84
|
+
if (value.length === 0) {
|
|
85
|
+
return (_jsxs(TruncateText, { children: [dash, _jsx(Text, { color: PUNCT_COLOR, children: "[]" })] }));
|
|
86
|
+
}
|
|
87
|
+
return (_jsxs(Box, { flexDirection: "row", width: "100%", children: [dash, _jsx(Box, { flexDirection: "column", width: "100%", children: _jsx(YamlSequence, { items: value }) })] }));
|
|
88
|
+
}
|
|
89
|
+
const entries = Object.entries(value);
|
|
90
|
+
if (entries.length === 0) {
|
|
91
|
+
return (_jsxs(TruncateText, { children: [dash, _jsx(Text, { color: PUNCT_COLOR, children: '{}' })] }));
|
|
92
|
+
}
|
|
93
|
+
return (_jsxs(Box, { flexDirection: "row", width: "100%", children: [dash, _jsx(Box, { flexDirection: "column", width: "100%", children: _jsx(YamlMapping, { value: value }) })] }));
|
|
94
|
+
}
|
|
95
|
+
export function YamlTreeView({ value }) {
|
|
96
|
+
let content;
|
|
97
|
+
if (Array.isArray(value)) {
|
|
98
|
+
content = value.length === 0 ? _jsx(TruncateText, { children: _jsx(Text, { color: PUNCT_COLOR, children: "[]" }) }) : _jsx(YamlSequence, { items: value });
|
|
99
|
+
}
|
|
100
|
+
else if (isPlainObject(value)) {
|
|
101
|
+
content = _jsx(YamlMapping, { value: value });
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
content = _jsx(TruncateText, { children: _jsx(YamlScalar, { value: value }) });
|
|
105
|
+
}
|
|
106
|
+
return (_jsx(Box, { flexDirection: "column", width: "100%", children: content }));
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=yaml-tree-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-tree-view.js","sourceRoot":"","sources":["../../../src/ink/components/yaml-tree-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CcspConfig } from '../core/schema.js';
|
|
2
|
+
type Props = {
|
|
3
|
+
initialConfig: CcspConfig;
|
|
4
|
+
onChange: (config: CcspConfig) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare function ConfigApp({ initialConfig, onChange }: Props): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Box, Text, useApp, useInput, useStdout } from 'ink';
|
|
4
|
+
import { CONFIG_OPTIONS, createConfigFlowState, reduceConfigFlow, } from '../flows/config-flow.js';
|
|
5
|
+
import { useInkResizeVersion } from './components/resize-context.js';
|
|
6
|
+
import { TruncateText } from './components/truncate-text.js';
|
|
7
|
+
const VALUE_COLORS = {
|
|
8
|
+
on: 'green',
|
|
9
|
+
off: 'gray',
|
|
10
|
+
info: 'cyan',
|
|
11
|
+
};
|
|
12
|
+
export function ConfigApp({ initialConfig, onChange }) {
|
|
13
|
+
const { exit } = useApp();
|
|
14
|
+
useInkResizeVersion();
|
|
15
|
+
const { stdout } = useStdout();
|
|
16
|
+
const [state, setState] = useState(() => createConfigFlowState(initialConfig));
|
|
17
|
+
useInput((input, key) => {
|
|
18
|
+
if (input === 'q' || key.escape) {
|
|
19
|
+
exit();
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (key.upArrow || input === 'k')
|
|
23
|
+
setState(current => reduceConfigFlow(current, { type: 'up' }));
|
|
24
|
+
if (key.downArrow || input === 'j')
|
|
25
|
+
setState(current => reduceConfigFlow(current, { type: 'down' }));
|
|
26
|
+
if (input === ' ' || key.return) {
|
|
27
|
+
const next = reduceConfigFlow(state, { type: 'toggle' });
|
|
28
|
+
setState(next);
|
|
29
|
+
onChange(next.config);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const fallbackColumns = 120;
|
|
33
|
+
const innerWidth = stdout.columns ?? fallbackColumns;
|
|
34
|
+
const listWidth = Math.max(20, Math.floor((innerWidth - 1) / 2));
|
|
35
|
+
const previewWidth = Math.max(20, innerWidth - listWidth - 1);
|
|
36
|
+
const focused = CONFIG_OPTIONS[state.cursor];
|
|
37
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(TruncateText, { bold: true, color: "cyan", children: "ccsp config" }), _jsx(TruncateText, { dimColor: true, children: "\u2191/k \u2193/j navigate \u00B7 space/enter toggle \u00B7 q quit" }), _jsxs(Box, { marginTop: 0.5, width: innerWidth, children: [_jsxs(Box, { flexDirection: "column", width: listWidth, marginRight: 0.5, borderStyle: "round", borderColor: "cyan", paddingX: 0.5, paddingY: 0.5, children: [_jsxs(TruncateText, { bold: true, children: ["Config(", CONFIG_OPTIONS.length, ")"] }), CONFIG_OPTIONS.map((option, index) => {
|
|
38
|
+
const display = option.display(state.config);
|
|
39
|
+
const isCursor = index === state.cursor;
|
|
40
|
+
return (_jsxs(TruncateText, { ...(isCursor ? { color: 'cyan' } : {}), children: [isCursor ? '❯ ' : ' ', option.label, ' ', _jsxs(Text, { color: VALUE_COLORS[display.tone], children: ["[", display.label, "]"] })] }, option.key));
|
|
41
|
+
})] }), _jsxs(Box, { flexDirection: "column", width: previewWidth, borderStyle: "round", borderColor: "gray", paddingX: 0.5, paddingY: 0.5, children: [_jsx(TruncateText, { bold: true, children: focused?.label ?? 'No option selected' }), focused ? _jsx(Text, { children: focused.description }) : _jsx(TruncateText, { dimColor: true, children: "no description" })] })] })] }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=config-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-app.js","sourceRoot":"","sources":["../../src/ink/config-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;AAC5D,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;CACJ,CAAA;AAOV,MAAM,UAAU,SAAS,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAS;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,mBAAmB,EAAE,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAA;IAE9E,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChG,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAEpG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACxD,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,GAAG,CAAA;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,eAAe,CAAA;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE5C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,YAAY,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,4BAA2B,EAC1D,KAAC,YAAY,IAAC,QAAQ,yFAA8D,EACpF,MAAC,GAAG,IAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,aACpC,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,GAAG,EAChB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,aAEb,MAAC,YAAY,IAAC,IAAI,8BAAS,cAAc,CAAC,MAAM,SAAiB,EAChE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gCACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gCAC5C,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,CAAA;gCACvC,OAAO,CACL,MAAC,YAAY,OAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAC5E,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACtB,MAAM,CAAC,KAAK,EACZ,GAAG,EACJ,MAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAI,OAAO,CAAC,KAAK,SAAS,KAJhD,MAAM,CAAC,GAAG,CAKd,CAChB,CAAA;4BACH,CAAC,CAAC,IACE,EACN,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,aAEb,KAAC,YAAY,IAAC,IAAI,kBAAE,OAAO,EAAE,KAAK,IAAI,oBAAoB,GAAgB,EACzE,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,OAAO,CAAC,WAAW,GAAQ,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,QAAQ,qCAA8B,IAChG,IACF,IACF,CACP,CAAA;AACH,CAAC"}
|
package/dist/ink/manage-app.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type SettingsSelectItem } from '../flows/settings-select-flow.js';
|
|
2
|
+
import type { SettingsDisplayFormat } from '../core/schema.js';
|
|
2
3
|
export type ManageResult = {
|
|
3
4
|
type: 'launch';
|
|
4
5
|
item: SettingsSelectItem;
|
|
@@ -18,8 +19,9 @@ export type ManageResult = {
|
|
|
18
19
|
};
|
|
19
20
|
type Props = {
|
|
20
21
|
items: SettingsSelectItem[];
|
|
22
|
+
displayFormat?: SettingsDisplayFormat;
|
|
21
23
|
onSubmit: (result: ManageResult) => void;
|
|
22
24
|
onRenameSubmit?: (item: SettingsSelectItem, newName: string) => Promise<string | null>;
|
|
23
25
|
};
|
|
24
|
-
export declare function ManageApp({ items, onSubmit, onRenameSubmit }: Props): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function ManageApp({ items, displayFormat, onSubmit, onRenameSubmit }: Props): import("react/jsx-runtime").JSX.Element;
|
|
25
27
|
export {};
|
package/dist/ink/manage-app.js
CHANGED
|
@@ -5,7 +5,7 @@ import { createSettingsSelectFlowState, reduceSettingsSelectFlow } from '../flow
|
|
|
5
5
|
import { revealInFinder } from '../services/reveal-service.js';
|
|
6
6
|
import { TextInput } from './components/text-input.js';
|
|
7
7
|
import { TwoColumnSettingsView } from './components/two-column-settings-view.js';
|
|
8
|
-
export function ManageApp({ items, onSubmit, onRenameSubmit }) {
|
|
8
|
+
export function ManageApp({ items, displayFormat = 'yaml', onSubmit, onRenameSubmit }) {
|
|
9
9
|
const { exit } = useApp();
|
|
10
10
|
const [state, setState] = useState(() => createSettingsSelectFlowState({ items }));
|
|
11
11
|
const [mode, setMode] = useState('browse');
|
|
@@ -78,7 +78,7 @@ export function ManageApp({ items, onSubmit, onRenameSubmit }) {
|
|
|
78
78
|
exit();
|
|
79
79
|
} })] }));
|
|
80
80
|
}
|
|
81
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(TwoColumnSettingsView, { title: "Manage settings presets", help: "\u2191/k \u2193/j navigate \u00B7 l launch \u00B7 c create \u00B7 o open folder \u00B7 r rename \u00B7 d delete \u00B7 q quit", items: state.items, cursor: state.cursor }), message ? _jsx(Text, { color: "yellow", children: message }) : null] }));
|
|
81
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(TwoColumnSettingsView, { title: "Manage settings presets", help: "\u2191/k \u2193/j navigate \u00B7 l launch \u00B7 c create \u00B7 o open folder \u00B7 r rename \u00B7 d delete \u00B7 q quit", items: state.items, cursor: state.cursor, displayFormat: displayFormat }), message ? _jsx(Text, { color: "yellow", children: message }) : null] }));
|
|
82
82
|
}
|
|
83
83
|
function ConfirmDelete({ onConfirm, onCancel }) {
|
|
84
84
|
useInput((input, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage-app.js","sourceRoot":"","sources":["../../src/ink/manage-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAA2B,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"manage-app.js","sourceRoot":"","sources":["../../src/ink/manage-app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type SettingsSelectItem } from '../flows/settings-select-flow.js';
|
|
2
|
+
import type { SettingsDisplayFormat } from '../core/schema.js';
|
|
2
3
|
export type SettingsSelectResult = SettingsSelectItem;
|
|
3
4
|
type Props = {
|
|
4
5
|
items: SettingsSelectItem[];
|
|
5
6
|
initialName?: string;
|
|
7
|
+
initialEnvOnly?: boolean;
|
|
8
|
+
displayFormat?: SettingsDisplayFormat;
|
|
6
9
|
onSubmit: (result: SettingsSelectResult) => void;
|
|
7
10
|
};
|
|
8
|
-
export declare function SettingsSelectApp({ items, initialName, onSubmit }: Props): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare function SettingsSelectApp({ items, initialName, initialEnvOnly, displayFormat, onSubmit }: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
12
|
export {};
|
|
@@ -3,17 +3,20 @@ import { useState } from 'react';
|
|
|
3
3
|
import { useApp, useInput } from 'ink';
|
|
4
4
|
import { createSettingsSelectFlowState, reduceSettingsSelectFlow } from '../flows/settings-select-flow.js';
|
|
5
5
|
import { TwoColumnSettingsView } from './components/two-column-settings-view.js';
|
|
6
|
-
export function SettingsSelectApp({ items, initialName, onSubmit }) {
|
|
6
|
+
export function SettingsSelectApp({ items, initialName, initialEnvOnly = false, displayFormat = 'yaml', onSubmit }) {
|
|
7
7
|
const { exit } = useApp();
|
|
8
8
|
const [state, setState] = useState(() => createSettingsSelectFlowState({
|
|
9
9
|
items,
|
|
10
10
|
...(initialName ? { initialName } : {}),
|
|
11
11
|
}));
|
|
12
|
+
const [envOnly, setEnvOnly] = useState(initialEnvOnly);
|
|
12
13
|
useInput((input, key) => {
|
|
13
14
|
if (input === 'q' || key.escape) {
|
|
14
15
|
exit();
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
18
|
+
if (input === 'f')
|
|
19
|
+
setEnvOnly(current => !current);
|
|
17
20
|
if (key.upArrow || input === 'k')
|
|
18
21
|
setState(current => reduceSettingsSelectFlow(current, { type: 'up' }));
|
|
19
22
|
if (key.downArrow || input === 'j')
|
|
@@ -26,6 +29,6 @@ export function SettingsSelectApp({ items, initialName, onSubmit }) {
|
|
|
26
29
|
exit();
|
|
27
30
|
}
|
|
28
31
|
});
|
|
29
|
-
return (_jsx(TwoColumnSettingsView, { title: "Select Claude Code settings", help:
|
|
32
|
+
return (_jsx(TwoColumnSettingsView, { title: "Select Claude Code settings", help: `↑/k ↓/j navigate · enter select · f toggle ${envOnly ? 'full' : 'env'} · q quit`, items: state.items, cursor: state.cursor, envOnly: envOnly, displayFormat: displayFormat }));
|
|
30
33
|
}
|
|
31
34
|
//# sourceMappingURL=settings-select-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-select-app.js","sourceRoot":"","sources":["../../src/ink/settings-select-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAA2B,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"settings-select-app.js","sourceRoot":"","sources":["../../src/ink/settings-select-app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAA2B,MAAM,kCAAkC,CAAA;AAEnI,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAYhF,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,GAAG,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,QAAQ,EAAS;IACvH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC;QACrE,KAAK;QACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC,CAAC,CAAA;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IAEtD,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QAED,IAAI,KAAK,KAAK,GAAG;YAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QAElD,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxG,IAAI,GAAG,CAAC,SAAS,IAAI,KAAK,KAAK,GAAG;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAE5G,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,QAAQ;gBAAE,OAAM;YACrB,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAClB,IAAI,EAAE,CAAA;QACR,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,KAAC,qBAAqB,IACpB,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAE,8CAA8C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,EACvF,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CcspConfig } from '../core/schema.js';
|
|
2
|
+
export declare function createCcspConfigService(globalRoot: string): {
|
|
3
|
+
read: () => Promise<CcspConfig>;
|
|
4
|
+
write: (config: CcspConfig) => Promise<void>;
|
|
5
|
+
setOption<K extends keyof CcspConfig>(key: K, value: CcspConfig[K]): Promise<void>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { readJsonFileOrDefault, writeJsonFile } from '../core/json.js';
|
|
2
|
+
import { resolveCcspConfigPath } from '../core/paths.js';
|
|
3
|
+
import { ccspConfigSchema, parseCcspConfig } from '../core/schema.js';
|
|
4
|
+
export function createCcspConfigService(globalRoot) {
|
|
5
|
+
const filePath = resolveCcspConfigPath(globalRoot);
|
|
6
|
+
async function read() {
|
|
7
|
+
return parseCcspConfig(await readJsonFileOrDefault(filePath, {}));
|
|
8
|
+
}
|
|
9
|
+
async function write(config) {
|
|
10
|
+
await writeJsonFile(filePath, ccspConfigSchema.parse(config));
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
read,
|
|
14
|
+
write,
|
|
15
|
+
async setOption(key, value) {
|
|
16
|
+
const current = await read();
|
|
17
|
+
await write({ ...current, [key]: value });
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ccsp-config-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ccsp-config-service.js","sourceRoot":"","sources":["../../src/services/ccsp-config-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAmB,MAAM,mBAAmB,CAAA;AAEtF,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAElD,KAAK,UAAU,IAAI;QACjB,OAAO,eAAe,CAAC,MAAM,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,UAAU,KAAK,CAAC,MAAkB;QACrC,MAAM,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK,CAAC,SAAS,CAA6B,GAAM,EAAE,KAAoB;YACtE,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAA;YAC5B,MAAM,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encode a project cwd the way Claude Code names its per-project session
|
|
3
|
+
* directory under `~/.claude/projects/`. Both `/` and `.` segments collapse to
|
|
4
|
+
* `-`, e.g. `/Users/x/.foo` -> `-Users-x--foo`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function encodeClaudeProjectDirName(cwd: string): string;
|
|
7
|
+
export declare function resolveClaudeProjectSessionsDir(homeDir: string, cwd: string): string;
|
|
8
|
+
export type ClaudeSessionService = {
|
|
9
|
+
snapshot(): Promise<Set<string>>;
|
|
10
|
+
findNewSessionId(snapshot: Set<string>): Promise<string | undefined>;
|
|
11
|
+
hasSession(sessionId: string): Promise<boolean>;
|
|
12
|
+
};
|
|
13
|
+
export declare function createClaudeSessionService(homeDir: string, cwd: string): ClaudeSessionService;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { promises as fs } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Encode a project cwd the way Claude Code names its per-project session
|
|
5
|
+
* directory under `~/.claude/projects/`. Both `/` and `.` segments collapse to
|
|
6
|
+
* `-`, e.g. `/Users/x/.foo` -> `-Users-x--foo`.
|
|
7
|
+
*/
|
|
8
|
+
export function encodeClaudeProjectDirName(cwd) {
|
|
9
|
+
return cwd.replace(/[/.]/g, '-');
|
|
10
|
+
}
|
|
11
|
+
export function resolveClaudeProjectSessionsDir(homeDir, cwd) {
|
|
12
|
+
return join(homeDir, '.claude', 'projects', encodeClaudeProjectDirName(cwd));
|
|
13
|
+
}
|
|
14
|
+
export function createClaudeSessionService(homeDir, cwd) {
|
|
15
|
+
const dir = resolveClaudeProjectSessionsDir(homeDir, cwd);
|
|
16
|
+
async function listJsonlEntries() {
|
|
17
|
+
let entries;
|
|
18
|
+
try {
|
|
19
|
+
entries = await fs.readdir(dir);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
if (error.code === 'ENOENT')
|
|
23
|
+
return [];
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
const out = [];
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
if (!entry.endsWith('.jsonl'))
|
|
29
|
+
continue;
|
|
30
|
+
try {
|
|
31
|
+
const stat = await fs.stat(join(dir, entry));
|
|
32
|
+
if (!stat.isFile())
|
|
33
|
+
continue;
|
|
34
|
+
out.push({ name: entry, birthtimeMs: stat.birthtimeMs });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// entry vanished between readdir and stat; ignore
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return out;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
async snapshot() {
|
|
44
|
+
return new Set((await listJsonlEntries()).map(entry => entry.name));
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* Find the session id Claude created during this launch by diffing against
|
|
48
|
+
* a pre-spawn snapshot. Picks the new jsonl with the earliest birthtime so
|
|
49
|
+
* concurrent ccsp launches in the same cwd don't steal each other's ids.
|
|
50
|
+
*/
|
|
51
|
+
async findNewSessionId(snapshot) {
|
|
52
|
+
const current = await listJsonlEntries();
|
|
53
|
+
const fresh = current.filter(entry => !snapshot.has(entry.name));
|
|
54
|
+
if (fresh.length === 0)
|
|
55
|
+
return undefined;
|
|
56
|
+
fresh.sort((a, b) => a.birthtimeMs - b.birthtimeMs);
|
|
57
|
+
const first = fresh[0];
|
|
58
|
+
return first.name.replace(/\.jsonl$/, '');
|
|
59
|
+
},
|
|
60
|
+
async hasSession(sessionId) {
|
|
61
|
+
try {
|
|
62
|
+
const stat = await fs.stat(join(dir, `${sessionId}.jsonl`));
|
|
63
|
+
return stat.isFile();
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error.code === 'ENOENT')
|
|
67
|
+
return false;
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=claude-session-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-session-service.js","sourceRoot":"","sources":["../../src/services/claude-session-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import { type LaunchPresetMeta, type LaunchPresetSettings } from '../core/schema.js';
|
|
1
|
+
import { type LaunchPresetMeta, type LaunchPresetSettings, type SessionBinding } from '../core/schema.js';
|
|
2
|
+
export type SessionBindingInput = {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
globalName: string;
|
|
5
|
+
projectPresetName: string;
|
|
6
|
+
baseSettings: unknown;
|
|
7
|
+
launchSettings: unknown;
|
|
8
|
+
toggles: {
|
|
9
|
+
plugins: unknown[];
|
|
10
|
+
skills: unknown[];
|
|
11
|
+
mcps: unknown[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
2
14
|
export declare function createLaunchPresetService(cwd: string): {
|
|
3
15
|
listPresets(): Promise<LaunchPresetMeta[]>;
|
|
4
16
|
readPresetSettings(nameInput: string): Promise<LaunchPresetSettings>;
|
|
@@ -8,7 +20,12 @@ export declare function createLaunchPresetService(cwd: string): {
|
|
|
8
20
|
deletePreset(nameInput: string): Promise<void>;
|
|
9
21
|
writeLastUsed: (nameInput: string) => Promise<void>;
|
|
10
22
|
readLastUsed: () => Promise<string | undefined>;
|
|
11
|
-
writeTempSettings(settingsInput: unknown,
|
|
12
|
-
|
|
23
|
+
writeTempSettings(settingsInput: unknown, stem: string): Promise<string>;
|
|
24
|
+
cleanupTempScripts(stem: string): Promise<void>;
|
|
25
|
+
writeSessionBinding(input: SessionBindingInput): Promise<void>;
|
|
26
|
+
readSessionBinding(sessionId: string): Promise<SessionBinding | undefined>;
|
|
27
|
+
recordSessionExit(sessionId: string): Promise<void>;
|
|
28
|
+
deleteSessionBinding(sessionId: string): Promise<void>;
|
|
29
|
+
findLatestExitedSession(): Promise<SessionBinding | undefined>;
|
|
13
30
|
importExistingLaunchFile(filePath: string, nameInput?: string): Promise<LaunchPresetMeta>;
|
|
14
31
|
};
|