pi-archimedes 2.0.1 → 2.1.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/package.json +10 -9
- package/src/config.ts +21 -0
- package/src/index.ts +5 -0
- package/src/settings.ts +12 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-archimedes",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package"
|
|
@@ -11,14 +11,15 @@
|
|
|
11
11
|
],
|
|
12
12
|
"main": "./src/index.ts",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@pi-archimedes/
|
|
15
|
-
"@pi-archimedes/
|
|
16
|
-
"@pi-archimedes/
|
|
17
|
-
"@pi-archimedes/
|
|
18
|
-
"@pi-archimedes/
|
|
19
|
-
"@pi-archimedes/
|
|
20
|
-
"@pi-archimedes/
|
|
21
|
-
"@pi-archimedes/
|
|
14
|
+
"@pi-archimedes/core": "2.1.0",
|
|
15
|
+
"@pi-archimedes/diff": "2.1.0",
|
|
16
|
+
"@pi-archimedes/ask": "2.1.0",
|
|
17
|
+
"@pi-archimedes/subagent": "2.1.0",
|
|
18
|
+
"@pi-archimedes/footer": "2.1.0",
|
|
19
|
+
"@pi-archimedes/todo": "2.1.0",
|
|
20
|
+
"@pi-archimedes/notify": "2.1.0",
|
|
21
|
+
"@pi-archimedes/image-paste": "2.1.0",
|
|
22
|
+
"@pi-archimedes/session-name": "2.1.0"
|
|
22
23
|
},
|
|
23
24
|
"peerDependencies": {
|
|
24
25
|
"@earendil-works/pi-coding-agent": ">=0.1.0",
|
package/src/config.ts
CHANGED
|
@@ -74,11 +74,32 @@ export function loadAllConfig(): {
|
|
|
74
74
|
footer: FooterConfig;
|
|
75
75
|
diff: DiffConfig;
|
|
76
76
|
notify: NotifyConfig;
|
|
77
|
+
sessionName: SessionNameSettings;
|
|
77
78
|
} {
|
|
78
79
|
return {
|
|
79
80
|
core: loadCoreConfig(),
|
|
80
81
|
footer: loadFooterConfig(),
|
|
81
82
|
diff: loadDiffConfig(),
|
|
82
83
|
notify: loadNotifyConfig(),
|
|
84
|
+
sessionName: loadSessionNameConfigWrapper(),
|
|
83
85
|
};
|
|
84
86
|
}
|
|
87
|
+
|
|
88
|
+
// ── Session name config ─────────────────────────────────────────────────
|
|
89
|
+
|
|
90
|
+
import type { SessionNameSettings } from "@pi-archimedes/session-name";
|
|
91
|
+
import { loadSessionNameConfig } from "@pi-archimedes/session-name";
|
|
92
|
+
export type { SessionNameSettings } from "@pi-archimedes/session-name";
|
|
93
|
+
|
|
94
|
+
export const DEFAULT_SESSION_NAME_CONFIG: SessionNameSettings = {
|
|
95
|
+
enabled: true,
|
|
96
|
+
model: undefined,
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export function loadSessionNameConfigWrapper(): SessionNameSettings {
|
|
100
|
+
return loadSessionNameConfig();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function saveSessionNameConfig(config: SessionNameSettings): void {
|
|
104
|
+
saveConfig("archimedes.sessionName", config);
|
|
105
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ const _moduleEvalAt = Date.now();
|
|
|
11
11
|
import { registerTodo } from "@pi-archimedes/todo";
|
|
12
12
|
import { registerAsk } from "@pi-archimedes/ask";
|
|
13
13
|
import { registerNotify } from "@pi-archimedes/notify";
|
|
14
|
+
import { registerSessionName } from "@pi-archimedes/session-name";
|
|
14
15
|
import { loadDiffConfig } from "./config.js";
|
|
15
16
|
import { openSettings } from "./settings.js"
|
|
16
17
|
|
|
@@ -45,6 +46,10 @@ export default function (pi: ExtensionAPI): void {
|
|
|
45
46
|
registerNotify(pi);
|
|
46
47
|
archTime("registerNotify");
|
|
47
48
|
|
|
49
|
+
// Register session-name
|
|
50
|
+
registerSessionName(pi);
|
|
51
|
+
archTime("registerSessionName");
|
|
52
|
+
|
|
48
53
|
archTime("factory end");
|
|
49
54
|
|
|
50
55
|
// session_shutdown handler (top-level to prevent accumulation on /reload)
|
package/src/settings.ts
CHANGED
|
@@ -7,17 +7,20 @@ import { getCoreSettingsItems } from "@pi-archimedes/core";
|
|
|
7
7
|
import { getFooterSettingsItems } from "@pi-archimedes/footer/config";
|
|
8
8
|
// diff (shiki) is lazy-loaded below to keep shiki out of the startup import chain
|
|
9
9
|
import { getNotifySettingsItems } from "@pi-archimedes/notify";
|
|
10
|
+
import { getSessionNameSettingsItems } from "@pi-archimedes/session-name";
|
|
10
11
|
import {
|
|
11
12
|
loadAllConfig,
|
|
12
13
|
saveCoreConfig,
|
|
13
14
|
saveFooterConfig,
|
|
14
15
|
saveDiffConfig,
|
|
15
16
|
saveNotifyConfig,
|
|
17
|
+
saveSessionNameConfig,
|
|
16
18
|
ANIMATION_STYLES,
|
|
17
19
|
type CoreConfig,
|
|
18
20
|
type FooterConfig,
|
|
19
21
|
type DiffConfig,
|
|
20
22
|
type NotifyConfig,
|
|
23
|
+
type SessionNameSettings,
|
|
21
24
|
} from "./config.js";
|
|
22
25
|
|
|
23
26
|
// ── Factory: text submenu ───────────────────────────────────────────────
|
|
@@ -103,12 +106,14 @@ export async function openSettings(pi: ExtensionAPI, ctx: ExtensionContext): Pro
|
|
|
103
106
|
const footerConfig: FooterConfig = { ...allConfig.footer };
|
|
104
107
|
const diffConfig: DiffConfig = { ...allConfig.diff };
|
|
105
108
|
const notifyConfig: NotifyConfig = { ...allConfig.notify };
|
|
109
|
+
const sessionNameConfig: SessionNameSettings = { ...allConfig.sessionName };
|
|
106
110
|
|
|
107
111
|
// Build composed items from sub-packages
|
|
108
112
|
const coreItems = getCoreSettingsItems(coreConfig);
|
|
109
113
|
const footerItems = getFooterSettingsItems();
|
|
110
114
|
const diffItems = getDiffSettingsItems();
|
|
111
115
|
const notifyItems = getNotifySettingsItems(notifyConfig);
|
|
116
|
+
const sessionNameItems = getSessionNameSettingsItems(sessionNameConfig);
|
|
112
117
|
|
|
113
118
|
// Add submenus for text/number fields
|
|
114
119
|
const addSubmenus = (items: SettingItem[]) => {
|
|
@@ -167,12 +172,14 @@ export async function openSettings(pi: ExtensionAPI, ctx: ExtensionContext): Pro
|
|
|
167
172
|
addSubmenus(diffItems);
|
|
168
173
|
addSubmenus(footerItems);
|
|
169
174
|
addSubmenus(notifyItems);
|
|
175
|
+
addSubmenus(sessionNameItems);
|
|
170
176
|
|
|
171
177
|
const items: SettingItem[] = [
|
|
172
178
|
...coreItems,
|
|
173
179
|
...footerItems,
|
|
174
180
|
...diffItems,
|
|
175
181
|
...notifyItems,
|
|
182
|
+
...sessionNameItems,
|
|
176
183
|
{
|
|
177
184
|
id: "save",
|
|
178
185
|
label: "Save",
|
|
@@ -222,12 +229,17 @@ export async function openSettings(pi: ExtensionAPI, ctx: ExtensionContext): Pro
|
|
|
222
229
|
break;
|
|
223
230
|
}
|
|
224
231
|
|
|
232
|
+
// ── Session name settings ──
|
|
233
|
+
case "sessionNameEnabled": sessionNameConfig.enabled = newValue === "On"; break;
|
|
234
|
+
case "sessionNameModel": sessionNameConfig.model = newValue === "(current model)" ? undefined : newValue; break;
|
|
235
|
+
|
|
225
236
|
// ── Save ──
|
|
226
237
|
case "save": {
|
|
227
238
|
saveCoreConfig(coreConfig);
|
|
228
239
|
saveFooterConfig(footerConfig);
|
|
229
240
|
saveDiffConfig(diffConfig);
|
|
230
241
|
saveNotifyConfig(notifyConfig);
|
|
242
|
+
saveSessionNameConfig(sessionNameConfig);
|
|
231
243
|
done(undefined);
|
|
232
244
|
return;
|
|
233
245
|
}
|