@alexanderfortin/pi-loaded-tools 0.2.0 → 0.3.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/CHANGELOG.md CHANGED
@@ -5,7 +5,15 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [0.1.0] - 2025-04-09
8
+ ## [Unreleased]
9
+
10
+ ## [0.3.0] - 2026-04-11
11
+
12
+ ### Features
13
+
14
+ - improve visual integration with Pi startup
15
+
16
+ ## [0.2.0] - 2025-04-09
9
17
 
10
18
  ### Added
11
19
 
package/README.md CHANGED
@@ -24,6 +24,9 @@ pi install npm:@alexanderfortin/pi-loaded-tools
24
24
  pi install git:github.com/shaftoe/pi-loaded-tools
25
25
  ```
26
26
 
27
+ > [!NOTE]
28
+ > You might want to update `~/.pi/agent/settings.json` to ensure `pi-loaded-tools` is loaded last so to be able to show all available tools registered by other extensions too
29
+
27
30
  ## Usage
28
31
 
29
32
  Run `/tools` inside a pi session to see the list of loaded tools.
package/dist/index.d.ts CHANGED
@@ -3,6 +3,11 @@
3
3
  *
4
4
  * Registers a /tools command and automatically shows loaded tools at startup.
5
5
  * Also exports a public API for querying loaded tools programmatically.
6
+ *
7
+ * The tools list is rendered using Pi's native boot-time visual style
8
+ * ([SectionName] headers, scope grouping, accent/dim/mdLink theme tokens)
9
+ * via a custom message renderer, so it blends in with [Skills], [Extensions],
10
+ * [Themes], etc.
6
11
  */
7
12
  import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
8
13
  export default function (pi: ExtensionAPI): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGlE,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAW/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AAIpF,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAmB/C"}
package/dist/index.js CHANGED
@@ -3,13 +3,23 @@
3
3
  *
4
4
  * Registers a /tools command and automatically shows loaded tools at startup.
5
5
  * Also exports a public API for querying loaded tools programmatically.
6
+ *
7
+ * The tools list is rendered using Pi's native boot-time visual style
8
+ * ([SectionName] headers, scope grouping, accent/dim/mdLink theme tokens)
9
+ * via a custom message renderer, so it blends in with [Skills], [Extensions],
10
+ * [Themes], etc.
6
11
  */
7
- import { showTools } from "./tools";
12
+ import { Text } from "@mariozechner/pi-tui";
13
+ import { formatToolsList, showTools } from "./tools";
8
14
  export default function (pi) {
15
+ pi.registerMessageRenderer("pi-loaded-tools", (message, _options, theme) => {
16
+ const tools = message.details?.tools ?? [];
17
+ return new Text(formatToolsList(tools, theme), 0, 0);
18
+ });
9
19
  pi.registerCommand("tools", {
10
20
  description: "List all loaded tools with source provenance and active status",
11
21
  handler: async (_args, ctx) => {
12
- await Promise.resolve().then(() => showTools(pi, ctx));
22
+ await Promise.resolve(showTools(pi, ctx));
13
23
  },
14
24
  });
15
25
  pi.on("session_start", (_event, ctx) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACrC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AAEtE,MAAM,CAAC,OAAO,WAAW,EAAgB;IACvC,EAAE,CAAC,uBAAuB,CACxB,iBAAiB,EACjB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAiB,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACzD,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,gEAAgE;QAC7E,OAAO,EAAE,KAAK,EAAE,KAAa,EAAE,GAAqB,EAAE,EAAE;YACtD,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAqB,EAAE,EAAE;QACvD,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiBhF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAgC9F;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAa7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAsB3D;AAUD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CASzD"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiBhF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAkC9F;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,CAa7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAsB3D;AAUD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAOnF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CASzD"}
package/dist/tools/api.js CHANGED
@@ -41,6 +41,8 @@ export function getAllLoadedTools(allTools, activeNames) {
41
41
  description: desc.trim(),
42
42
  active: activeNames.has(tool.name),
43
43
  source,
44
+ scope: si?.scope ?? "project",
45
+ origin: si?.origin ?? undefined,
44
46
  extensionPath,
45
47
  };
46
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,34 @@
1
1
  /**
2
- * Tools display logic (internal not part of public API).
2
+ * Tools display logic — formats and shows loaded tools using Pi's native
3
+ * boot-time visual style (same theme tokens, scope grouping, indentation).
3
4
  */
4
- import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent";
5
+ import type { ExtensionAPI, ExtensionContext, Theme } from "@mariozechner/pi-coding-agent";
6
+ import type { LoadedTool } from "./types.js";
5
7
  /**
6
- * Show loaded tools via notification.
8
+ * Format a loaded-tools list using Pi's native boot-time visual style.
9
+ *
10
+ * Output structure mirrors `InteractiveMode.showLoadedResources()`:
11
+ *
12
+ * ```
13
+ * [Tools]
14
+ * builtin
15
+ * ● bash
16
+ * ● read
17
+ * project
18
+ * ● my_local_tool
19
+ * user
20
+ * npm:@scope/package
21
+ * ● ext_tool
22
+ * 14 tools · 13 active · 1 from extensions
23
+ * ```
7
24
  */
8
- export declare function showTools(pi: ExtensionAPI, ctx: ExtensionContext): void;
25
+ export declare function formatToolsList(tools: LoadedTool[], theme: Theme): string;
26
+ /**
27
+ * Show loaded tools as a persistent chat message.
28
+ *
29
+ * Uses `pi.sendMessage()` so the tools list appears inline in the chat
30
+ * (same visual position as Pi's native `[Skills]`, `[Extensions]`, etc.)
31
+ * and survives theme changes via the registered message renderer.
32
+ */
33
+ export declare function showTools(pi: ExtensionAPI, _ctx: ExtensionContext): void;
9
34
  //# sourceMappingURL=display.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/tools/display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGpF;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAsBvE"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/tools/display.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsD7C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAkCzE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAQxE"}
@@ -1,27 +1,101 @@
1
1
  /**
2
- * Tools display logic (internal not part of public API).
2
+ * Tools display logic — formats and shows loaded tools using Pi's native
3
+ * boot-time visual style (same theme tokens, scope grouping, indentation).
3
4
  */
4
- import { formatToolSource, getAllLoadedTools } from "./api.js";
5
+ import { getAllLoadedTools } from "./api.js";
6
+ function buildToolGroups(tools) {
7
+ const builtin = { scope: "builtin", localTools: [], packages: new Map() };
8
+ const project = { scope: "project", localTools: [], packages: new Map() };
9
+ const user = { scope: "user", localTools: [], packages: new Map() };
10
+ const path = { scope: "path", localTools: [], packages: new Map() };
11
+ for (const tool of tools) {
12
+ let group;
13
+ if (tool.source === "builtin") {
14
+ group = builtin;
15
+ }
16
+ else if (tool.source === "sdk") {
17
+ group = path;
18
+ }
19
+ else {
20
+ const scope = tool.scope;
21
+ group = scope === "user" ? user : scope === "project" ? project : path;
22
+ }
23
+ const isPackage = tool.origin === "package" && tool.extensionPath;
24
+ if (isPackage) {
25
+ const list = group.packages.get(tool.extensionPath) ?? [];
26
+ list.push({ name: tool.name, active: tool.active });
27
+ group.packages.set(tool.extensionPath, list);
28
+ }
29
+ else {
30
+ group.localTools.push({ name: tool.name, active: tool.active });
31
+ }
32
+ }
33
+ return [builtin, project, user, path].filter((g) => g.localTools.length > 0 || g.packages.size > 0);
34
+ }
35
+ // ---------------------------------------------------------------------------
36
+ // Public API
37
+ // ---------------------------------------------------------------------------
5
38
  /**
6
- * Show loaded tools via notification.
39
+ * Format a loaded-tools list using Pi's native boot-time visual style.
40
+ *
41
+ * Output structure mirrors `InteractiveMode.showLoadedResources()`:
42
+ *
43
+ * ```
44
+ * [Tools]
45
+ * builtin
46
+ * ● bash
47
+ * ● read
48
+ * project
49
+ * ● my_local_tool
50
+ * user
51
+ * npm:@scope/package
52
+ * ● ext_tool
53
+ * 14 tools · 13 active · 1 from extensions
54
+ * ```
7
55
  */
8
- export function showTools(pi, ctx) {
9
- const theme = ctx.ui.theme;
10
- const tools = getAllLoadedTools(pi.getAllTools(), new Set(pi.getActiveTools()));
56
+ export function formatToolsList(tools, theme) {
11
57
  const lines = [];
12
- lines.push(theme.fg("accent", "[Tools]"));
13
- // Active tools
14
- const active = tools.filter((t) => t.active);
15
- for (const tool of active) {
16
- const sourceDisplay = formatToolSource(tool.source, tool.extensionPath);
17
- lines.push(` ● ${tool.name} [${sourceDisplay}]`);
58
+ lines.push(theme.fg("mdHeading", "[Tools]"));
59
+ const groups = buildToolGroups(tools);
60
+ for (const group of groups) {
61
+ lines.push(` ${theme.fg("accent", group.scope)}`);
62
+ const sorted = [...group.localTools].sort((a, b) => a.name.localeCompare(b.name));
63
+ for (const tool of sorted) {
64
+ lines.push(theme.fg("dim", ` ${tool.active ? "●" : "○"} ${tool.name}`));
65
+ }
66
+ const sortedPkgs = Array.from(group.packages.entries()).sort(([a], [b]) => a.localeCompare(b));
67
+ for (const [source, pkgTools] of sortedPkgs) {
68
+ lines.push(` ${theme.fg("mdLink", source)}`);
69
+ const sortedPkgTools = [...pkgTools].sort((a, b) => a.name.localeCompare(b.name));
70
+ for (const tool of sortedPkgTools) {
71
+ lines.push(theme.fg("dim", ` ${tool.active ? "●" : "○"} ${tool.name}`));
72
+ }
73
+ }
18
74
  }
19
- // Inactive tools
20
- const inactive = tools.filter((t) => !t.active);
21
- for (const tool of inactive) {
22
- const sourceDisplay = formatToolSource(tool.source, tool.extensionPath);
23
- lines.push(` ${theme.fg("dim", `○ ${tool.name} [${sourceDisplay}]`)}`);
75
+ const total = tools.length;
76
+ const active = tools.filter((t) => t.active).length;
77
+ const extCount = tools.filter((t) => t.source === "extension").length;
78
+ const parts = [`${total} tool${total !== 1 ? "s" : ""}`, `${active} active`];
79
+ if (extCount > 0) {
80
+ parts.push(`${extCount} from extension${extCount !== 1 ? "s" : ""}`);
24
81
  }
25
- ctx.ui.notify(lines.join("\n"), "info");
82
+ lines.push(theme.fg("dim", ` ${parts.join(" · ")}`));
83
+ return lines.join("\n");
84
+ }
85
+ /**
86
+ * Show loaded tools as a persistent chat message.
87
+ *
88
+ * Uses `pi.sendMessage()` so the tools list appears inline in the chat
89
+ * (same visual position as Pi's native `[Skills]`, `[Extensions]`, etc.)
90
+ * and survives theme changes via the registered message renderer.
91
+ */
92
+ export function showTools(pi, _ctx) {
93
+ const tools = getAllLoadedTools(pi.getAllTools(), new Set(pi.getActiveTools()));
94
+ pi.sendMessage({
95
+ customType: "pi-loaded-tools",
96
+ content: `${tools.length} tools (${tools.filter((t) => t.active).length} active)`,
97
+ display: true,
98
+ details: { tools },
99
+ });
26
100
  }
27
101
  //# sourceMappingURL=display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/tools/display.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,EAAgB,EAAE,GAAqB;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;IAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1C,eAAe;IACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM,aAAa,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,MAAM,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/tools/display.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export { showTools } from "./display.js";
1
+ export { formatToolsList, showTools } from "./display.js";
2
+ export type { LoadedTool } from "./types.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +1,2 @@
1
- export { showTools } from "./display.js";
1
+ export { formatToolsList, showTools } from "./display.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -17,6 +17,10 @@ export interface LoadedTool {
17
17
  active: boolean;
18
18
  /** Where this tool comes from */
19
19
  source: ToolSource;
20
+ /** Installation scope of the source */
21
+ scope: "user" | "project" | "temporary";
22
+ /** Whether the tool comes from a package or a top-level file */
23
+ origin?: "package" | "top-level";
20
24
  /** Extension path (for extension tools only) */
21
25
  extensionPath?: string;
22
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAEhB,iCAAiC;IACjC,MAAM,EAAE,UAAU,CAAC;IAEnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE;QACP,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAEF,yCAAyC;IACzC,GAAG,EAAE;QACH,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAEF,iDAAiD;IACjD,UAAU,EAAE;QACV,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3C,gBAAgB;IAChB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvC,sBAAsB;IACtB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAEhB,iCAAiC;IACjC,MAAM,EAAE,UAAU,CAAC;IAEnB,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IAExC,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAEjC,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE;QACP,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAEF,yCAAyC;IACzC,GAAG,EAAE;QACH,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;IAEF,iDAAiD;IACjD,UAAU,EAAE;QACV,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3C,gBAAgB;IAChB,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvC,sBAAsB;IACtB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@alexanderfortin/pi-loaded-tools",
3
3
  "author": "Alexander Fortin",
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "description": "Pi coding agent extension for listing loaded tools with source provenance",
6
6
  "keywords": [
7
7
  "pi-package",