@mrclrchtr/supi-web 1.2.0 → 1.3.1

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 CHANGED
@@ -18,6 +18,13 @@ pi install ./packages/supi-web
18
18
 
19
19
  After editing the source, run `/reload` to pick up changes.
20
20
 
21
+ ## Package surfaces
22
+
23
+ - `@mrclrchtr/supi-web/api` — programmatic exports (conversion helpers, fetch utilities, tool factories)
24
+ - `@mrclrchtr/supi-web/extension` — aggregated pi extension entrypoint that registers all three tools
25
+
26
+ `pi.extensions` still points at the real file path `./src/extension.ts` inside the package. The `/api` and `/extension` paths are consumer-facing package exports, not manifest aliases.
27
+
21
28
  ## What it adds
22
29
 
23
30
  Registers three agent-callable tools:
@@ -81,6 +88,8 @@ The tool reads the `CONTEXT7_API_KEY` environment variable automatically when se
81
88
 
82
89
  ### Source files
83
90
 
91
+ - `src/api.ts` — public package exports
92
+ - `src/extension.ts` — aggregated extension entrypoint
84
93
  - `src/web.ts` — `web_fetch_md` tool registration
85
94
  - `src/docs.ts` — `web_docs_search` + `web_docs_fetch` tool registration
86
95
  - `src/context7-client.ts` — thin wrapper around `@upstash/context7-sdk`
@@ -12,7 +12,12 @@ pnpm add @mrclrchtr/supi-core
12
12
 
13
13
  ## Package role
14
14
 
15
- `@mrclrchtr/supi-core` is a library package. It does **not** register a pi extension and is not meant to be installed as a standalone pi package.
15
+ `@mrclrchtr/supi-core` now has two explicit surfaces:
16
+
17
+ - `@mrclrchtr/supi-core/api` — shared library helpers for other SuPi packages
18
+ - `@mrclrchtr/supi-core/extension` — a minimal pi extension that registers `/supi-settings`
19
+
20
+ `pi.extensions` still points at the real file path `./src/extension.ts` inside the package. The `/api` and `/extension` paths are consumer-facing package exports, not manifest aliases.
16
21
 
17
22
  ## What it provides
18
23
 
@@ -59,7 +64,7 @@ Main helpers:
59
64
  ## Example
60
65
 
61
66
  ```ts
62
- import { loadSupiConfig, registerConfigSettings, wrapExtensionContext } from "@mrclrchtr/supi-core";
67
+ import { loadSupiConfig, registerConfigSettings, wrapExtensionContext } from "@mrclrchtr/supi-core/api";
63
68
 
64
69
  const config = loadSupiConfig("my-extension", process.cwd(), {
65
70
  enabled: true,
@@ -87,4 +92,5 @@ const message = wrapExtensionContext("my-extension", "hello", {
87
92
 
88
93
  ## Source
89
94
 
90
- - Main exports: `src/index.ts`
95
+ - Library surface: `src/api.ts`
96
+ - Extension surface: `src/extension.ts`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-core",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "SuPi core — shared infrastructure for SuPi extensions (XML context tags, config system)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,5 +30,15 @@
30
30
  "optional": true
31
31
  }
32
32
  },
33
- "main": "src/index.ts"
33
+ "main": "src/api.ts",
34
+ "exports": {
35
+ "./api": "./src/api.ts",
36
+ "./extension": "./src/extension.ts",
37
+ "./package.json": "./package.json"
38
+ },
39
+ "pi": {
40
+ "extensions": [
41
+ "./src/extension.ts"
42
+ ]
43
+ }
34
44
  }
@@ -0,0 +1,83 @@
1
+ // supi-core — shared infrastructure for SuPi extensions.
2
+ // Provides XML context tag wrapping, unified config system, context-message utilities,
3
+ // and settings registry for supi-wide TUI settings.
4
+
5
+ export type { SupiConfigLocation, SupiConfigOptions } from "./config.ts";
6
+ export {
7
+ loadSupiConfig,
8
+ loadSupiConfigForScope,
9
+ removeSupiConfigKey,
10
+ writeSupiConfig,
11
+ } from "./config.ts";
12
+ export type { ConfigSettingsHelpers, ConfigSettingsOptions } from "./config-settings.ts";
13
+ export { registerConfigSettings } from "./config-settings.ts";
14
+ export type { ContextMessageLike } from "./context-messages.ts";
15
+ export {
16
+ findLastUserMessageIndex,
17
+ getContextToken,
18
+ getPromptContent,
19
+ pruneAndReorderContextMessages,
20
+ restorePromptContent,
21
+ } from "./context-messages.ts";
22
+ export type { ContextProvider } from "./context-provider-registry.ts";
23
+ export {
24
+ clearRegisteredContextProviders,
25
+ getRegisteredContextProviders,
26
+ registerContextProvider,
27
+ } from "./context-provider-registry.ts";
28
+ export { wrapExtensionContext } from "./context-tag.ts";
29
+ export type {
30
+ DebugAgentAccess,
31
+ DebugEvent,
32
+ DebugEventInput,
33
+ DebugEventQuery,
34
+ DebugEventQueryResult,
35
+ DebugEventView,
36
+ DebugLevel,
37
+ DebugNotifyLevel,
38
+ DebugRegistryConfig,
39
+ DebugSummary,
40
+ } from "./debug-registry.ts";
41
+ export {
42
+ clearDebugEvents,
43
+ configureDebugRegistry,
44
+ DEBUG_REGISTRY_DEFAULTS,
45
+ getDebugEvents,
46
+ getDebugRegistryConfig,
47
+ getDebugSummary,
48
+ recordDebugEvent,
49
+ redactDebugData,
50
+ resetDebugRegistry,
51
+ } from "./debug-registry.ts";
52
+ export type { KnownRootEntry } from "./project-roots.ts";
53
+ export {
54
+ buildKnownRootsMap,
55
+ byPathDepth,
56
+ dedupeTopmostRoots,
57
+ findProjectRoot,
58
+ isWithin,
59
+ isWithinOrEqual,
60
+ mergeKnownRoots,
61
+ resolveKnownRoot,
62
+ segmentCount,
63
+ sortRootsBySpecificity,
64
+ walkProject,
65
+ } from "./project-roots.ts";
66
+ export { getActiveBranchEntries } from "./session-utils.ts";
67
+ export { registerSettingsCommand } from "./settings-command.ts";
68
+ export type { SettingsScope, SettingsSection } from "./settings-registry.ts";
69
+ export {
70
+ clearRegisteredSettings,
71
+ getRegisteredSettings,
72
+ registerSettings,
73
+ } from "./settings-registry.ts";
74
+ export { createInputSubmenu, openSettingsOverlay } from "./settings-ui.ts";
75
+ export type { TitleTarget } from "./terminal.ts";
76
+ export {
77
+ DONE_SYMBOL,
78
+ formatTitle,
79
+ signalBell,
80
+ signalDone,
81
+ signalWaiting,
82
+ WAITING_SYMBOL,
83
+ } from "./terminal.ts";
@@ -0,0 +1 @@
1
+ export { registerSettingsCommand as default } from "./settings-command.ts";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-web",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "SuPi Web extension — fetch web pages as clean Markdown (web_fetch_md) and library docs via Context7 (web_docs_search, web_docs_fetch)",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,7 +25,7 @@
25
25
  "@mozilla/readability": "^0.6.0",
26
26
  "turndown": "^7.2.0",
27
27
  "turndown-plugin-gfm": "^1.0.2",
28
- "@mrclrchtr/supi-core": "1.2.0"
28
+ "@mrclrchtr/supi-core": "1.3.1"
29
29
  },
30
30
  "bundledDependencies": [
31
31
  "@mrclrchtr/supi-core"
@@ -44,9 +44,14 @@
44
44
  },
45
45
  "pi": {
46
46
  "extensions": [
47
- "./src/web.ts",
48
- "./src/docs.ts"
47
+ "./src/extension.ts",
48
+ "node_modules/@mrclrchtr/supi-core/src/extension.ts"
49
49
  ]
50
50
  },
51
- "main": "src/index.ts"
51
+ "main": "src/api.ts",
52
+ "exports": {
53
+ "./api": "./src/api.ts",
54
+ "./extension": "./src/extension.ts",
55
+ "./package.json": "./package.json"
56
+ }
52
57
  }
package/src/api.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SuPi Web extension — public API exports.
3
+ */
4
+
5
+ export { htmlToMarkdown, wrapAsCodeBlock } from "./convert.ts";
6
+ export { default as docsExtension } from "./docs.ts";
7
+ export {
8
+ FetchError,
9
+ type FetchOptions,
10
+ type FetchResult,
11
+ fetchWithNegotiation,
12
+ isValidHttpUrl,
13
+ } from "./fetch.ts";
14
+ export { default } from "./web.ts";
@@ -0,0 +1,7 @@
1
+ import docsExtension from "./docs.ts";
2
+ import webExtension from "./web.ts";
3
+
4
+ export default function extension(pi: Parameters<typeof webExtension>[0]): void {
5
+ webExtension(pi);
6
+ docsExtension(pi);
7
+ }