pi-archimedes 2.0.0 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-archimedes",
3
- "version": "2.0.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/core": "2.0.0",
15
- "@pi-archimedes/footer": "2.0.0",
16
- "@pi-archimedes/diff": "2.0.0",
17
- "@pi-archimedes/ask": "2.0.0",
18
- "@pi-archimedes/notify": "2.0.0",
19
- "@pi-archimedes/subagent": "2.0.0",
20
- "@pi-archimedes/todo": "2.0.0",
21
- "@pi-archimedes/image-paste": "2.0.0"
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
  }