@pi-unipi/unipi 2.0.7 → 2.0.9
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/LICENSE +21 -0
- package/package.json +5 -5
- package/packages/ask-user/ask-ui.ts +3 -3
- package/packages/ask-user/commands.ts +1 -1
- package/packages/ask-user/handoff.ts +1 -1
- package/packages/ask-user/index.ts +1 -1
- package/packages/ask-user/launcher-ui.ts +2 -2
- package/packages/ask-user/package.json +5 -4
- package/packages/ask-user/settings-tui.ts +2 -2
- package/packages/ask-user/tools.ts +2 -2
- package/packages/autocomplete/package.json +4 -3
- package/packages/autocomplete/src/__tests__/provider.sorting.test.ts +1 -1
- package/packages/autocomplete/src/index.ts +1 -1
- package/packages/autocomplete/src/provider.ts +2 -2
- package/packages/autocomplete/src/sorting.ts +1 -1
- package/packages/btw/extensions/btw.ts +3 -3
- package/packages/btw/package.json +5 -4
- package/packages/cocoindex/commands.ts +1 -1
- package/packages/cocoindex/index.ts +1 -1
- package/packages/cocoindex/installer.ts +1 -1
- package/packages/cocoindex/package.json +5 -5
- package/packages/cocoindex/tools.ts +2 -2
- package/packages/compactor/package.json +7 -5
- package/packages/compactor/src/commands/index.ts +1 -1
- package/packages/compactor/src/compaction/cut.ts +2 -2
- package/packages/compactor/src/compaction/hooks.ts +4 -4
- package/packages/compactor/src/compaction/normalize.ts +1 -1
- package/packages/compactor/src/compaction/summarize.ts +1 -1
- package/packages/compactor/src/display/diff-presentation.ts +1 -1
- package/packages/compactor/src/display/diff-renderer.ts +1 -1
- package/packages/compactor/src/display/diff-width-safety.ts +1 -1
- package/packages/compactor/src/display/line-width-safety.ts +1 -1
- package/packages/compactor/src/index.ts +1 -1
- package/packages/compactor/src/session/recall-blocks.ts +2 -2
- package/packages/compactor/src/tools/register.ts +10 -10
- package/packages/compactor/src/tui/settings-overlay.ts +3 -3
- package/packages/compactor/src/types.ts +1 -1
- package/packages/core/package.json +5 -5
- package/packages/footer/package.json +4 -3
- package/packages/footer/src/commands.ts +1 -1
- package/packages/footer/src/events.ts +1 -1
- package/packages/footer/src/help.ts +2 -2
- package/packages/footer/src/index.ts +3 -3
- package/packages/footer/src/rendering/renderer.ts +2 -2
- package/packages/footer/src/rendering/theme.ts +1 -1
- package/packages/footer/src/segments/status-ext.ts +1 -1
- package/packages/footer/src/tui/settings-tui.ts +2 -2
- package/packages/footer/src/types.ts +1 -1
- package/packages/info-screen/core-groups.ts +3 -3
- package/packages/info-screen/index.ts +1 -1
- package/packages/info-screen/package.json +5 -4
- package/packages/info-screen/tui/info-overlay.ts +3 -3
- package/packages/input-shortcuts/package.json +4 -3
- package/packages/input-shortcuts/src/chord-overlay.ts +2 -2
- package/packages/input-shortcuts/src/index.ts +2 -2
- package/packages/input-shortcuts/src/settings-overlay.ts +2 -2
- package/packages/input-shortcuts/src/status.ts +1 -1
- package/packages/kanboard/commands.ts +1 -1
- package/packages/kanboard/index.ts +1 -1
- package/packages/kanboard/package.json +10 -4
- package/packages/kanboard/tui/kanboard-overlay.ts +2 -2
- package/packages/mcp/package.json +5 -4
- package/packages/mcp/src/index.ts +1 -1
- package/packages/mcp/src/tui/add-overlay.ts +2 -2
- package/packages/mcp/src/tui/settings-overlay.ts +2 -2
- package/packages/memory/commands.ts +1 -1
- package/packages/memory/embedding.ts +1 -1
- package/packages/memory/index.ts +1 -1
- package/packages/memory/package.json +4 -3
- package/packages/memory/tools.ts +2 -2
- package/packages/memory/tui/settings-tui.ts +1 -1
- package/packages/milestone/commands.ts +1 -1
- package/packages/milestone/hooks.ts +1 -1
- package/packages/milestone/index.ts +1 -1
- package/packages/milestone/package.json +5 -4
- package/packages/notify/commands.ts +1 -1
- package/packages/notify/events.ts +1 -1
- package/packages/notify/index.ts +1 -1
- package/packages/notify/package.json +5 -4
- package/packages/notify/tools.ts +2 -2
- package/packages/notify/tui/gotify-setup.ts +3 -3
- package/packages/notify/tui/ntfy-setup.ts +3 -3
- package/packages/notify/tui/recap-model-selector.ts +3 -3
- package/packages/notify/tui/settings-overlay.ts +3 -3
- package/packages/notify/tui/telegram-setup.ts +3 -3
- package/packages/ralph/index.ts +1 -1
- package/packages/ralph/package.json +6 -5
- package/packages/ralph/ralph-loop.ts +1 -1
- package/packages/ralph/tools.ts +2 -2
- package/packages/subagents/package.json +6 -5
- package/packages/subagents/src/agent-manager.ts +2 -2
- package/packages/subagents/src/agent-runner.ts +3 -3
- package/packages/subagents/src/conversation-viewer.ts +2 -2
- package/packages/subagents/src/custom-agents.ts +1 -1
- package/packages/subagents/src/index.ts +4 -4
- package/packages/subagents/src/model-resolver.ts +1 -1
- package/packages/subagents/src/types.ts +2 -2
- package/packages/subagents/src/widget.ts +3 -3
- package/packages/unipi/index.ts +1 -1
- package/packages/updater/package.json +4 -3
- package/packages/updater/src/commands.ts +1 -1
- package/packages/updater/src/index.ts +1 -1
- package/packages/updater/src/markdown.ts +4 -4
- package/packages/updater/src/tui/changelog-overlay.ts +4 -4
- package/packages/updater/src/tui/readme-overlay.ts +4 -4
- package/packages/updater/src/tui/settings-overlay.ts +3 -3
- package/packages/updater/src/tui/update-overlay.ts +4 -4
- package/packages/utility/package.json +4 -3
- package/packages/utility/src/commands.ts +1 -1
- package/packages/utility/src/diff/renderer.ts +1 -1
- package/packages/utility/src/diff/wrapper.ts +2 -2
- package/packages/utility/src/index.ts +2 -2
- package/packages/utility/src/info-screen.ts +1 -1
- package/packages/utility/src/tools/env.ts +1 -1
- package/packages/utility/src/tui/badge-settings-tui.ts +2 -2
- package/packages/utility/src/tui/name-badge-state.ts +1 -1
- package/packages/utility/src/tui/name-badge.ts +3 -3
- package/packages/utility/src/tui/util-settings-tui.ts +2 -2
- package/packages/web-api/package.json +6 -4
- package/packages/web-api/src/commands.ts +1 -1
- package/packages/web-api/src/index.ts +1 -1
- package/packages/web-api/src/tools.ts +2 -2
- package/packages/web-api/src/tui/settings-dialog.ts +1 -1
- package/packages/workflow/commands.ts +1 -1
- package/packages/workflow/index.ts +1 -1
- package/packages/workflow/package.json +6 -5
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/footer",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Persistent status bar for Unipi — subscribes to UNIPI_EVENTS and renders key stats from all unipi packages",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -42,8 +43,8 @@
|
|
|
42
43
|
"@pi-unipi/core": "*"
|
|
43
44
|
},
|
|
44
45
|
"peerDependencies": {
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
46
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
47
|
+
"@earendil-works/pi-tui": "^0.75.5"
|
|
47
48
|
},
|
|
48
49
|
"devDependencies": {
|
|
49
50
|
"@types/node": "^25.6.0",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* /unipi:footer-settings.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
8
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import { UNIPI_PREFIX, FOOTER_COMMANDS } from "@pi-unipi/core";
|
|
10
10
|
import { loadFooterSettings, saveFooterSettings } from "./config.js";
|
|
11
11
|
import { showFooterSettings } from "./tui/settings-tui.js";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Note: pi.events.on() returns an unsubscribe function directly.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ExtensionAPI } from "@
|
|
10
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
11
11
|
import { UNIPI_EVENTS } from "@pi-unipi/core";
|
|
12
12
|
import type { FooterRegistry } from "./registry/index.js";
|
|
13
13
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* with icons, short labels, and descriptions.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import type { FooterSegment, SegmentZone } from "./types.js";
|
|
10
10
|
import { getIcon } from "./rendering/icons.js";
|
|
11
11
|
import { loadFooterSettings, isSegmentEnabled } from "./config.js";
|
|
@@ -101,7 +101,7 @@ export function showFooterHelp(
|
|
|
101
101
|
// Use pi's custom UI overlay
|
|
102
102
|
const ctx = (pi as any)._ctx;
|
|
103
103
|
if (ctx?.ui?.custom) {
|
|
104
|
-
ctx.ui.custom((tui: import("@
|
|
104
|
+
ctx.ui.custom((tui: import("@earendil-works/pi-tui").TUI) => {
|
|
105
105
|
let scrollOffset = 0;
|
|
106
106
|
|
|
107
107
|
return {
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* initializes renderer on session_start.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, Theme, ExtensionContext } from "@
|
|
9
|
-
import { truncateToWidth, visibleWidth } from "@
|
|
8
|
+
import type { ExtensionAPI, Theme, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
9
|
+
import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
10
10
|
import { UNIPI_EVENTS, emitEvent, UNIPI_PREFIX, FOOTER_COMMANDS } from "@pi-unipi/core";
|
|
11
11
|
import { FooterRegistry, getFooterRegistry } from "./registry/index.js";
|
|
12
12
|
import { FooterRenderer } from "./rendering/renderer.js";
|
|
@@ -63,7 +63,7 @@ export interface FooterState {
|
|
|
63
63
|
unsubscribeEvents: (() => void) | null;
|
|
64
64
|
piContext: unknown;
|
|
65
65
|
footerData: unknown;
|
|
66
|
-
tuiRef: import("@
|
|
66
|
+
tuiRef: import("@earendil-works/pi-tui").TUI | null | undefined;
|
|
67
67
|
refreshTimer: ReturnType<typeof setInterval> | null;
|
|
68
68
|
/** Re-register footer + widgets with pi UI (for live enable) */
|
|
69
69
|
setupUI: ((pi: ExtensionAPI, ctx: ExtensionContext) => void) | null;
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* Segments fit into available width; overflow goes to secondary.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { Theme } from "@
|
|
9
|
+
import type { Theme } from "@earendil-works/pi-coding-agent";
|
|
10
10
|
import type { PresetDef, FooterSegmentContext, FooterSegment, ColorScheme, RenderedSegment, SegmentZone } from "../types.js";
|
|
11
11
|
import type { FooterRegistry } from "../registry/index.js";
|
|
12
|
-
import { visibleWidth as piVisibleWidth, truncateToWidth } from "@
|
|
12
|
+
import { visibleWidth as piVisibleWidth, truncateToWidth } from "@earendil-works/pi-tui";
|
|
13
13
|
import { getSeparator, separatorVisibleWidth } from "./separators.js";
|
|
14
14
|
import { getDefaultColors, setColorMode, refreshColorMode } from "./theme.js";
|
|
15
15
|
import { setIconStyle } from "./icons.js";
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* silently swallows 24-bit escapes and renders the text uncoloured).
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import type { Theme, ThemeColor } from "@
|
|
14
|
+
import type { Theme, ThemeColor } from "@earendil-works/pi-coding-agent";
|
|
15
15
|
import type { ColorScheme, ColorValue, SemanticColor, ThemeLike } from "../types.js";
|
|
16
16
|
|
|
17
17
|
// ─── Color mode detection ──────────────────────────────────────────────────
|
|
@@ -15,7 +15,7 @@ import type { FooterSegment, FooterSegmentContext, RenderedSegment } from "../ty
|
|
|
15
15
|
import { getIcon } from "../rendering/icons.js";
|
|
16
16
|
import { loadFooterSettings } from "../config.js";
|
|
17
17
|
import { getSeparator } from "../rendering/separators.js";
|
|
18
|
-
import { truncateToWidth, visibleWidth } from "@
|
|
18
|
+
import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
19
19
|
|
|
20
20
|
/** Map status keys to short display names and segment IDs for icons */
|
|
21
21
|
const STATUS_DISPLAY: Record<string, { short: string; segmentId: string }> = {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* Uses pi-tui SettingsList for vim/arrow keybinding support.
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "@
|
|
13
|
-
import { SettingsList, type SettingItem, type SettingsListTheme } from "@
|
|
12
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
13
|
+
import { SettingsList, type SettingItem, type SettingsListTheme } from "@earendil-works/pi-tui";
|
|
14
14
|
import { loadFooterSettings, saveFooterSettings } from "../config.js";
|
|
15
15
|
import { PRESET_NAMES } from "../presets.js";
|
|
16
16
|
import { setIconStyle } from "../rendering/icons.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* presets, separators, theme.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { Theme, ThemeColor } from "@
|
|
8
|
+
import type { Theme, ThemeColor } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
|
|
10
10
|
// ─── Semantic Colors ────────────────────────────────────────────────────────
|
|
11
11
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { readFileSync, readdirSync, existsSync, statSync } from "node:fs";
|
|
9
9
|
import { join, basename } from "node:path";
|
|
10
10
|
import { homedir } from "node:os";
|
|
11
|
-
import type { ExtensionAPI } from "@
|
|
11
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
12
12
|
import { infoRegistry } from "./registry.js";
|
|
13
13
|
import { parseUsageStats, formatTokens, formatCost } from "./usage-parser.js";
|
|
14
14
|
import type { InfoGroup } from "./types.js";
|
|
@@ -34,9 +34,9 @@ function getPiVersion(): string {
|
|
|
34
34
|
// Try to find pi's package.json in various locations
|
|
35
35
|
const possiblePaths = [
|
|
36
36
|
// Global npm install
|
|
37
|
-
join(homedir(), ".local", "share", "mise", "installs", "node", "24.14.1", "lib", "node_modules", "@
|
|
37
|
+
join(homedir(), ".local", "share", "mise", "installs", "node", "24.14.1", "lib", "node_modules", "@earendil-works", "pi-coding-agent", "package.json"),
|
|
38
38
|
// Alternative locations
|
|
39
|
-
join(homedir(), ".local", "share", "mise", "installs", "node", "lib", "node_modules", "@
|
|
39
|
+
join(homedir(), ".local", "share", "mise", "installs", "node", "lib", "node_modules", "@earendil-works", "pi-coding-agent", "package.json"),
|
|
40
40
|
];
|
|
41
41
|
|
|
42
42
|
for (const pkgPath of possiblePaths) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* /unipi:info-settings - Configure info display
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
12
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
13
13
|
import { UNIPI_EVENTS, MODULES, UNIPI_PREFIX, emitEvent, getPackageVersion, type UnipiModuleEvent, type UnipiInfoGroupEvent } from "@pi-unipi/core";
|
|
14
14
|
import { infoRegistry } from "./registry.js";
|
|
15
15
|
import { registerCoreGroups, trackModule, trackTool, setPiApi, registerSkillDir, startLoadTracking, recordLoadTime, finishLoadTracking, recordModuleStart } from "./core-groups.js";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/info-screen",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Dashboard and module registry for Unipi — configurable info overlay with tabbed groups",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -40,9 +41,9 @@
|
|
|
40
41
|
"@pi-unipi/core": "*"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"
|
|
44
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
45
|
+
"@earendil-works/pi-tui": "^0.75.5",
|
|
46
|
+
"typebox": "^1.1.38"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/node": "^25.6.0"
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* Shows humanized "last updated" timestamps.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { Component } from "@
|
|
11
|
-
import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@
|
|
12
|
-
import type { Theme } from "@
|
|
10
|
+
import type { Component } from "@earendil-works/pi-tui";
|
|
11
|
+
import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@earendil-works/pi-tui";
|
|
12
|
+
import type { Theme } from "@earendil-works/pi-coding-agent";
|
|
13
13
|
import { infoRegistry } from "../registry.js";
|
|
14
14
|
import { getInfoSettings } from "../config.js";
|
|
15
15
|
import type { InfoGroup, GroupData } from "../types.js";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/input-shortcuts",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Keyboard shortcuts for stash/restore, undo/redo, clipboard, and thinking toggle — chord-based overlay system",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -40,8 +41,8 @@
|
|
|
40
41
|
"@pi-unipi/core": "*"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
44
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
45
|
+
"@earendil-works/pi-tui": "^0.75.5"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@types/node": "^25.6.0",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Closes on ESC or after selecting an action. No timeout.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import type { ExtensionContext } from "@
|
|
16
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
17
17
|
import {
|
|
18
18
|
Container,
|
|
19
19
|
Key,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
type Focusable,
|
|
23
23
|
type TUI,
|
|
24
24
|
type KeybindingsManager,
|
|
25
|
-
} from "@
|
|
25
|
+
} from "@earendil-works/pi-tui";
|
|
26
26
|
import type { ChordState } from "./types.ts";
|
|
27
27
|
import { THINKING_CYCLE } from "./types.ts";
|
|
28
28
|
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* - Cut/Copy: overlay closes immediately, then action runs (non-blocking)
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
15
|
-
import { Key } from "@
|
|
14
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
15
|
+
import { Key } from "@earendil-works/pi-tui";
|
|
16
16
|
import { MODULES, emitEvent, UNIPI_EVENTS, INPUT_SHORTCUTS_COMMANDS } from "@pi-unipi/core";
|
|
17
17
|
import { RegisterStore } from "./registers.ts";
|
|
18
18
|
import { UndoRedoBuffer } from "./undo-redo.ts";
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Persists config to .unipi/config/input-shortcuts-config.json.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { Component } from "@
|
|
8
|
-
import { SettingsList, type SettingItem, type SettingsListTheme } from "@
|
|
7
|
+
import type { Component } from "@earendil-works/pi-tui";
|
|
8
|
+
import { SettingsList, type SettingItem, type SettingsListTheme } from "@earendil-works/pi-tui";
|
|
9
9
|
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import type { InputShortcutsConfig } from "./types.ts";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Status bar feedback helper using ctx.ui.setStatus() with auto-clear.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type { ExtensionContext } from "@
|
|
5
|
+
import type { ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
6
6
|
import { STATUS_SUCCESS_MS, STATUS_ERROR_MS } from "./types.ts";
|
|
7
7
|
|
|
8
8
|
const STATUS_KEY = "input-shortcuts";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import * as fs from "node:fs";
|
|
8
8
|
import * as path from "node:path";
|
|
9
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "@
|
|
9
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
10
10
|
import { UNIPI_PREFIX, KANBOARD_COMMANDS, KANBOARD_DIRS, UNIPI_EVENTS, emitEvent } from "@pi-unipi/core";
|
|
11
11
|
import { startServer, KanboardServer } from "./server/index.js";
|
|
12
12
|
import { renderKanboardOverlay } from "./tui/kanboard-overlay.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* HTTP server with htmx + Alpine.js UI, modular parsers, TUI overlay, and kanban board.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import { MODULES, KANBOARD_COMMANDS } from "@pi-unipi/core";
|
|
10
10
|
import { registerCommands } from "./commands.js";
|
|
11
11
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/kanboard",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Visualization layer for unipi workflow — HTTP server with htmx/Alpine.js UI, modular parsers, TUI overlay, and kanban board",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -22,7 +23,12 @@
|
|
|
22
23
|
"workflow"
|
|
23
24
|
],
|
|
24
25
|
"files": [
|
|
25
|
-
"
|
|
26
|
+
"index.ts",
|
|
27
|
+
"commands.ts",
|
|
28
|
+
"types.ts",
|
|
29
|
+
"parser/**/*.ts",
|
|
30
|
+
"server/**/*.ts",
|
|
31
|
+
"tui/**/*.ts",
|
|
26
32
|
"ui/**/*.ts",
|
|
27
33
|
"ui/**/*.css",
|
|
28
34
|
"ui/**/*.js",
|
|
@@ -44,8 +50,8 @@
|
|
|
44
50
|
"@pi-unipi/core": "*"
|
|
45
51
|
},
|
|
46
52
|
"peerDependencies": {
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
53
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
54
|
+
"@earendil-works/pi-tui": "^0.75.5"
|
|
49
55
|
},
|
|
50
56
|
"devDependencies": {
|
|
51
57
|
"@types/node": "^25.6.0",
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
truncateToWidth,
|
|
12
12
|
type TUI,
|
|
13
13
|
visibleWidth,
|
|
14
|
-
} from "@
|
|
15
|
-
import type { Theme, KeybindingsManager } from "@
|
|
14
|
+
} from "@earendil-works/pi-tui";
|
|
15
|
+
import type { Theme, KeybindingsManager } from "@earendil-works/pi-coding-agent";
|
|
16
16
|
import type { ParsedDoc, ParsedItem, ItemStatus } from "../types.js";
|
|
17
17
|
import { createDefaultRegistry } from "../parser/index.js";
|
|
18
18
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/mcp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "MCP server management extension for Pi coding agent — browse, add, configure, and use MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -37,9 +38,9 @@
|
|
|
37
38
|
"@pi-unipi/core": "*"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"
|
|
41
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
42
|
+
"@earendil-works/pi-tui": "^0.75.5",
|
|
43
|
+
"typebox": "^1.1.38"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"@types/node": "^25.6.0"
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Registers commands, handles session lifecycle, wires up MCP server management.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "@
|
|
7
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
8
8
|
import {
|
|
9
9
|
UNIPI_EVENTS,
|
|
10
10
|
MODULES,
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
truncateToWidth,
|
|
19
19
|
type TUI,
|
|
20
20
|
visibleWidth,
|
|
21
|
-
} from "@
|
|
22
|
-
import type { Theme, KeybindingsManager } from "@
|
|
21
|
+
} from "@earendil-works/pi-tui";
|
|
22
|
+
import type { Theme, KeybindingsManager } from "@earendil-works/pi-coding-agent";
|
|
23
23
|
import type { CatalogEntry, CatalogData, McpConfig, McpMetadata } from "../types.js";
|
|
24
24
|
import { loadCatalog } from "../config/sync.js";
|
|
25
25
|
import {
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* edit, delete, scope switching, and sync trigger.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Key, matchesKey, truncateToWidth, type TUI, visibleWidth } from "@
|
|
9
|
-
import type { Theme, KeybindingsManager } from "@
|
|
8
|
+
import { Key, matchesKey, truncateToWidth, type TUI, visibleWidth } from "@earendil-works/pi-tui";
|
|
9
|
+
import type { Theme, KeybindingsManager } from "@earendil-works/pi-coding-agent";
|
|
10
10
|
import type { ServerState } from "../types.js";
|
|
11
11
|
import {
|
|
12
12
|
loadMcpConfig,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* All storage is project-scoped. "Global" commands search across all projects.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import { MemoryStorage, searchAllProjects, listAllProjects } from "./storage.js";
|
|
10
10
|
import { showMemorySettings } from "./tui/settings-tui.js";
|
|
11
11
|
import { isEmbeddingReady, hasModelChanged, loadEmbeddingConfig } from "./settings.js";
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* openai/text-embedding-3 supports custom dimensions via API param.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "@
|
|
11
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
12
12
|
import {
|
|
13
13
|
loadEmbeddingConfig,
|
|
14
14
|
getApiKey,
|
package/packages/memory/index.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/memory",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Persistent cross-session memory with vector search for Pi coding agent",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -51,8 +52,8 @@
|
|
|
51
52
|
"@pi-unipi/info-screen": "*"
|
|
52
53
|
},
|
|
53
54
|
"peerDependencies": {
|
|
54
|
-
"@
|
|
55
|
-
"
|
|
55
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
56
|
+
"typebox": "^1.1.38"
|
|
56
57
|
},
|
|
57
58
|
"devDependencies": {
|
|
58
59
|
"@types/better-sqlite3": "^7.6.0",
|
package/packages/memory/tools.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* All storage is project-scoped. "Global" tools search across all projects.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { Type } from "
|
|
9
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import { Type } from "typebox";
|
|
9
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
10
10
|
import {
|
|
11
11
|
MemoryStorage,
|
|
12
12
|
searchAllProjects,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses ctx.ui primitives (select, input, notify).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionCommandContext } from "@
|
|
8
|
+
import type { ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import {
|
|
10
10
|
loadEmbeddingConfig,
|
|
11
11
|
saveEmbeddingConfig,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* loads SKILL.md content and sends it as a user message.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { ExtensionAPI, ExtensionCommandContext } from "@
|
|
9
|
+
import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/pi-coding-agent";
|
|
10
10
|
import { UNIPI_PREFIX, MILESTONE_COMMANDS, MILESTONE_DIRS } from "@pi-unipi/core";
|
|
11
11
|
import { parseMilestones } from "./milestone.js";
|
|
12
12
|
import { readFileSync } from "node:fs";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path from "node:path";
|
|
10
|
-
import type { ExtensionAPI } from "@
|
|
10
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
11
11
|
import { MILESTONE_DIRS, safeMtimeMs, tryRead } from "@pi-unipi/core";
|
|
12
12
|
import { parseMilestones, getProgressSummary, updateItemStatus } from "./milestone.js";
|
|
13
13
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* injects context on session start, auto-syncs on session end.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import { MODULES, MILESTONE_COMMANDS, MILESTONE_DIRS, emitEvent, UNIPI_EVENTS } from "@pi-unipi/core";
|
|
10
10
|
import { registerSessionStartHook, registerSessionEndHook } from "./hooks.js";
|
|
11
11
|
import { registerCommands } from "./commands.js";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/milestone",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Lifecycle layer for project-level goals — MILESTONES.md tracking, session hooks, auto-sync",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -39,9 +40,9 @@
|
|
|
39
40
|
"@pi-unipi/core": "*"
|
|
40
41
|
},
|
|
41
42
|
"peerDependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"
|
|
43
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
44
|
+
"@earendil-works/pi-tui": "^0.75.5",
|
|
45
|
+
"typebox": "^1.1.38"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@types/node": "^25.6.0",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Registers slash commands for notification configuration and testing.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
7
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
8
8
|
import { UNIPI_PREFIX } from "@pi-unipi/core";
|
|
9
9
|
import { NOTIFY_COMMANDS } from "@pi-unipi/core";
|
|
10
10
|
import { NotifySettingsOverlay } from "./tui/settings-overlay.js";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Supports built-in events and dynamic discovery via MODULE_READY.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
8
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import { UNIPI_EVENTS, emitEvent } from "@pi-unipi/core";
|
|
10
10
|
import type { NotifyConfig, NotifyPlatform, NotifyDispatchResult } from "./types.js";
|
|
11
11
|
import { loadNtfyConfig } from "./ntfy-config.js";
|
package/packages/notify/index.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Bridges agent lifecycle events to external platforms (native OS, Gotify, Telegram).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
9
9
|
import {
|
|
10
10
|
UNIPI_EVENTS,
|
|
11
11
|
MODULES,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/notify",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"description": "Cross-platform notification extension for Pi — native OS, Gotify, and Telegram notifications for agent lifecycle events",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
6
7
|
"license": "MIT",
|
|
7
8
|
"author": "Neuron Mr White",
|
|
8
9
|
"repository": {
|
|
@@ -53,8 +54,8 @@
|
|
|
53
54
|
"node-notifier": "^10.0.1"
|
|
54
55
|
},
|
|
55
56
|
"peerDependencies": {
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"
|
|
57
|
+
"@earendil-works/pi-coding-agent": "^0.75.5",
|
|
58
|
+
"@earendil-works/pi-tui": "^0.75.5",
|
|
59
|
+
"typebox": "^1.1.38"
|
|
59
60
|
}
|
|
60
61
|
}
|
package/packages/notify/tools.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Registers the `notify_user` tool for ad-hoc notifications.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
8
|
-
import { Type } from "
|
|
7
|
+
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
8
|
+
import { Type } from "typebox";
|
|
9
9
|
import { NOTIFY_TOOLS } from "@pi-unipi/core";
|
|
10
10
|
import { loadConfig } from "./settings.js";
|
|
11
11
|
import { dispatchNotification } from "./events.js";
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* Tests connection before saving.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { Component } from "@
|
|
10
|
-
import { truncateToWidth, visibleWidth } from "@
|
|
11
|
-
import type { Theme } from "@
|
|
9
|
+
import type { Component } from "@earendil-works/pi-tui";
|
|
10
|
+
import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
11
|
+
import type { Theme } from "@earendil-works/pi-coding-agent";
|
|
12
12
|
import { sendGotifyNotification } from "../platforms/gotify.js";
|
|
13
13
|
import { updateConfig, loadConfig } from "../settings.js";
|
|
14
14
|
|