@clubnet/seedclub 0.2.40 → 0.2.41

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.
Files changed (42) hide show
  1. package/assets/extensions/seedclub/commands/clip-status.ts +1 -1
  2. package/assets/extensions/seedclub/commands/seedclub.ts +1 -1
  3. package/assets/extensions/seedclub/commands/transcript-export.ts +1 -1
  4. package/assets/extensions/seedclub/commands/transcript-intent.ts +1 -1
  5. package/assets/extensions/seedclub/commands/transcripts.ts +1 -1
  6. package/assets/extensions/seedclub/index.ts +1 -1
  7. package/assets/extensions/seedclub/memory.ts +1 -1
  8. package/assets/extensions/seedclub/tool-utils.ts +1 -1
  9. package/assets/extensions/seedclub/tools/crm.ts +2 -2
  10. package/assets/extensions/seedclub/tools/media.ts +2 -2
  11. package/assets/extensions/seedclub/tools/meetings.ts +2 -2
  12. package/assets/extensions/seedclub/tools/opportunity-research.ts +1 -1
  13. package/assets/extensions/seedclub/tools/utility.ts +1 -1
  14. package/assets/extensions/seedclub/tools/web.ts +1 -1
  15. package/assets/theme/dark.json +1 -1
  16. package/assets/theme/light.json +1 -1
  17. package/package.json +2 -2
  18. package/packages/seedclub-runtime/README.md +1 -1
  19. package/packages/seedclub-runtime/pi-contract-baseline.json +1 -1
  20. package/packages/seedclub-runtime/src/contract.test.mjs +1 -1
  21. package/packages/seedclub-runtime/src/index.mjs +3 -3
  22. package/packages/seedclub-runtime/src/workspace-deps.mjs +4 -4
  23. package/packages/seedclub-tui/src/app/interactive-mode.mjs +1 -1
  24. package/packages/seedclub-tui/src/index.mjs +1 -1
  25. package/packages/seedclub-tui/src/vendor/coding-agent/README.md +2 -2
  26. package/packages/seedclub-tui/src/vendor/coding-agent/core/keybindings.js +1 -1
  27. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/assistant-message.js +1 -1
  28. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/bordered-loader.js +1 -1
  29. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/custom-editor.js +1 -1
  30. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-editor.js +1 -1
  31. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-input.js +1 -1
  32. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-selector.js +1 -1
  33. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/footer.js +1 -1
  34. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/login-dialog.js +1 -1
  35. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/oauth-selector.js +1 -1
  36. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/tool-execution.js +1 -1
  37. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/user-message.js +1 -1
  38. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/visual-truncate.js +1 -1
  39. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/dark.json +1 -1
  40. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/light.json +1 -1
  41. package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/theme.js +1 -1
  42. package/postinstall.js +1 -1
@@ -1,4 +1,4 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { api } from "../api-client.js";
3
3
  import { getSessionContext } from "../tools/utility.js";
4
4
 
@@ -2,7 +2,7 @@
2
2
  * /seedclub — the main menu.
3
3
  */
4
4
 
5
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
5
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
6
6
  import {
7
7
  clearStoredBases,
8
8
  getApiBase,
@@ -1,7 +1,7 @@
1
1
  import { mkdir, writeFile } from "node:fs/promises";
2
2
  import { homedir } from "node:os";
3
3
  import { join, resolve } from "node:path";
4
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
4
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
5
5
  import { api } from "../api-client.js";
6
6
  import { getSessionContext } from "../tools/utility.js";
7
7
  import { setWorkingMessage } from "../tool-utils.js";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
4
4
  import { makeProgressCallRenderer, makeProgressResultRenderer } from "../tool-utils.js";
5
5
  import { exportTranscripts } from "./transcript-export.js";
@@ -2,7 +2,7 @@
2
2
  * /transcripts command — explicit slash-command wrapper around the shared transcript export flow.
3
3
  */
4
4
 
5
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
5
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
6
6
  import { exportTranscripts } from "./transcript-export.js";
7
7
 
8
8
  const DEFAULT_LIMIT = 10;
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { randomBytes } from "node:crypto";
9
9
  import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
10
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
10
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
11
11
  import { api, clearCredentials, setCachedToken } from "./api-client.js";
12
12
  import { getApiBase, getAuthBase, getStoredToken, storeToken } from "./auth.js";
13
13
  import { renderCallbackPage } from "./browser-pages.js";
@@ -1,4 +1,4 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { execFileSync } from "node:child_process";
3
3
  import { createHash } from "node:crypto";
4
4
  import { readFile, writeFile } from "node:fs/promises";
@@ -3,7 +3,7 @@
3
3
  * Returns JSON results on success, clear error messages on failure.
4
4
  */
5
5
 
6
- import { Text } from "@mariozechner/pi-tui";
6
+ import { Text } from "@earendil-works/pi-tui";
7
7
  import { NotConnectedError } from "./api-client.js";
8
8
 
9
9
  const MAX_TOOL_RESULT_DEPTH = 6;
@@ -1,6 +1,6 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import { Text } from "@mariozechner/pi-tui";
3
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import { Text } from "@earendil-works/pi-tui";
3
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
4
4
  import { ApiError, api } from "../api-client.js";
5
5
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
6
6
  import { makeProgressCallRenderer, makeProgressResultRenderer, wrapExecute } from "../tool-utils.js";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { execFile as execFileCallback } from "node:child_process";
4
4
  import { readFile, stat } from "node:fs/promises";
5
5
  import { basename } from "node:path";
@@ -7,7 +7,7 @@ import { promisify } from "node:util";
7
7
  import { ApiError, api } from "../api-client.js";
8
8
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
9
9
  import { makeProgressCallRenderer, makeProgressResultRenderer, type ToolRuntime, wrapExecute } from "../tool-utils.js";
10
- import { Text } from "@mariozechner/pi-tui";
10
+ import { Text } from "@earendil-works/pi-tui";
11
11
 
12
12
  const TRANSCRIPT_TEXT_PREVIEW_CHARS = 1200;
13
13
  const TRANSCRIPT_VTT_PREVIEW_CHARS = 800;
@@ -1,6 +1,6 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import { Text } from "@mariozechner/pi-tui";
3
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import { Text } from "@earendil-works/pi-tui";
3
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
4
4
  import { ApiError, api } from "../api-client.js";
5
5
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
6
6
  import { makeProgressCallRenderer, makeProgressResultRenderer, type ToolRuntime, wrapExecute } from "../tool-utils.js";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { readFile, stat } from "node:fs/promises";
4
4
  import { basename } from "node:path";
5
5
  import { ApiError, api, NotConnectedError } from "../api-client.js";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { ApiError, api } from "../api-client.js";
4
4
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
5
5
  import { makeProgressCallRenderer, makeProgressResultRenderer, wrapExecute } from "../tool-utils.js";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { getToolCallLabel, getToolSuccessLabel } from "../ui-copy.js";
4
4
  import { makeProgressCallRenderer, makeProgressResultRenderer } from "../tool-utils.js";
5
5
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
3
  "name": "dark",
4
4
  "vars": {
5
5
  "brand": 2,
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
3
  "name": "light",
4
4
  "vars": {
5
5
  "brand": 2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clubnet/seedclub",
3
- "version": "0.2.40",
3
+ "version": "0.2.41",
4
4
  "description": "A branded command-line agent wrapper around pi, with integrated Seed Club commands, tools, and app actions",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -23,7 +23,7 @@
23
23
  "upgrade:pi": "node scripts/upgrade-pi.mjs"
24
24
  },
25
25
  "dependencies": {
26
- "@mariozechner/pi-coding-agent": "0.65.2",
26
+ "@earendil-works/pi-coding-agent": "0.74.0",
27
27
  "@sinclair/typebox": "^0.34.49",
28
28
  "pdf-parse": "^2.4.5"
29
29
  },
@@ -2,7 +2,7 @@
2
2
 
3
3
  Seed Club-owned runtime adapter around pi's public SDK.
4
4
 
5
- This is the only package in the TUI architecture that should talk directly to `@mariozechner/pi-coding-agent`.
5
+ This is the only package in the TUI architecture that should talk directly to `@earendil-works/pi-coding-agent`.
6
6
 
7
7
  It also owns the Seed Club full system prompt, sourced from `assets/SYSTEM.md`.
8
8
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "piVersion": "0.65.2",
2
+ "piVersion": "0.74.0",
3
3
  "requiredRuntimeApis": [
4
4
  "AuthStorage",
5
5
  "DefaultResourceLoader",
@@ -38,7 +38,7 @@ test("seedclub runtime declares the public pi APIs used by the shell", () => {
38
38
 
39
39
  const boundary = describeSeedclubRuntimeBoundary();
40
40
  assert.equal(boundary.owner, "seedclub");
41
- assert.equal(boundary.upstreamRuntime, "@mariozechner/pi-coding-agent");
41
+ assert.equal(boundary.upstreamRuntime, "@earendil-works/pi-coding-agent");
42
42
  assert.deepEqual(boundary.publicApis, REQUIRED_RUNTIME_APIS);
43
43
  });
44
44
 
@@ -11,7 +11,7 @@ import {
11
11
  createAgentSession,
12
12
  createExtensionRuntime,
13
13
  discoverAndLoadExtensions,
14
- } from "@mariozechner/pi-coding-agent";
14
+ } from "@earendil-works/pi-coding-agent";
15
15
 
16
16
  export const PUBLIC_PI_RUNTIME_APIS = Object.freeze([
17
17
  "AuthStorage",
@@ -233,7 +233,7 @@ export function createSeedclubPiSession(options) {
233
233
  export function describeSeedclubRuntimeBoundary() {
234
234
  return Object.freeze({
235
235
  owner: "seedclub",
236
- upstreamRuntime: "@mariozechner/pi-coding-agent",
236
+ upstreamRuntime: "@earendil-works/pi-coding-agent",
237
237
  publicApis: [...PUBLIC_PI_RUNTIME_APIS],
238
238
  rules: [
239
239
  "use published pi packages only",
@@ -241,7 +241,7 @@ export function describeSeedclubRuntimeBoundary() {
241
241
  "no pi dist imports",
242
242
  "no tui app code in runtime adapter",
243
243
  "runtime owns the seedclub full system prompt",
244
- "embed agent sessions through createAgentSession() on pi 0.65.2",
244
+ "embed agent sessions through createAgentSession() on pi 0.74.0",
245
245
  ],
246
246
  seedclubAgentDir: getSeedclubAgentDir(),
247
247
  seedclubVersion: getSeedclubVersion(),
@@ -17,7 +17,7 @@ function readJson(filePath) {
17
17
 
18
18
  function getExpectedPiVersion() {
19
19
  const rootPackageJson = readJson(path.join(REPO_ROOT, "package.json"));
20
- return rootPackageJson?.dependencies?.["@mariozechner/pi-coding-agent"];
20
+ return rootPackageJson?.dependencies?.["@earendil-works/pi-coding-agent"];
21
21
  }
22
22
 
23
23
  function getInstalledPiVersion() {
@@ -25,7 +25,7 @@ function getInstalledPiVersion() {
25
25
  path.join(
26
26
  REPO_ROOT,
27
27
  "node_modules",
28
- "@mariozechner",
28
+ "@earendil-works",
29
29
  "pi-coding-agent",
30
30
  "package.json",
31
31
  ),
@@ -43,7 +43,7 @@ export function ensureSeedclubWorkspaceDependencies() {
43
43
  const foundVersion = installedPiVersion ?? "missing";
44
44
  console.error(
45
45
  `seedclub: workspace dependencies are out of sync ` +
46
- `(expected @mariozechner/pi-coding-agent ${expectedPiVersion}, found ${foundVersion}).`,
46
+ `(expected @earendil-works/pi-coding-agent ${expectedPiVersion}, found ${foundVersion}).`,
47
47
  );
48
48
  console.error("seedclub: running `npm install` to sync this branch...");
49
49
 
@@ -59,7 +59,7 @@ export function ensureSeedclubWorkspaceDependencies() {
59
59
 
60
60
  if (getInstalledPiVersion() !== expectedPiVersion) {
61
61
  console.error(
62
- `seedclub: dependency sync completed, but @mariozechner/pi-coding-agent is still not ${expectedPiVersion}.`,
62
+ `seedclub: dependency sync completed, but @earendil-works/pi-coding-agent is still not ${expectedPiVersion}.`,
63
63
  );
64
64
  process.exit(1);
65
65
  }
@@ -12,7 +12,7 @@ import {
12
12
  TUI,
13
13
  truncateToWidth,
14
14
  visibleWidth,
15
- } from "@mariozechner/pi-tui";
15
+ } from "@earendil-works/pi-tui";
16
16
  import {
17
17
  createSeedclubInteractiveModeSession,
18
18
  getSeedclubAgentDir,
@@ -24,7 +24,7 @@ export function createSeedclubTuiContract() {
24
24
  "InteractiveMode.prototype",
25
25
  "AuthStorage.prototype",
26
26
  "ModelRegistry.prototype",
27
- "@mariozechner/pi-coding-agent/dist/*",
27
+ "@earendil-works/pi-coding-agent/dist/*",
28
28
  "packages/coding-agent/src/*",
29
29
  ],
30
30
  });
@@ -1,6 +1,6 @@
1
1
  This subtree is vendored downstream from:
2
2
 
3
- - `pi-mono/packages/coding-agent/src`
3
+ - `pi/packages/coding-agent/src`
4
4
 
5
5
  In this repo, it supplies copied interactive TUI support code used by `seedclub-tui`.
6
6
 
@@ -8,4 +8,4 @@ Key rule:
8
8
 
9
9
  - Treat files here as vendored upstream code.
10
10
  - Put Seed Club-owned product logic in `packages/seedclub-tui/src/app/`.
11
- - When updating from upstream, diff against `pi-mono/packages/coding-agent/src/*` and port only the needed changes.
11
+ - When updating from upstream, diff against `pi/packages/coding-agent/src/*` and port only the needed changes.
@@ -4,7 +4,7 @@ import {
4
4
  getKeybindings as getGlobalKeybindings,
5
5
  matchesKey,
6
6
  setKeybindings,
7
- } from "@mariozechner/pi-tui";
7
+ } from "@earendil-works/pi-tui";
8
8
  import { existsSync, readFileSync } from "fs";
9
9
  import { join } from "path";
10
10
  import { getAgentDir } from "../config.js";
@@ -1,4 +1,4 @@
1
- import { Container, Markdown, Spacer, Text } from "@mariozechner/pi-tui";
1
+ import { Container, Markdown, Spacer, Text } from "@earendil-works/pi-tui";
2
2
  import { getMarkdownTheme, theme } from "../theme/theme.js";
3
3
  /**
4
4
  * Component that renders a complete assistant message
@@ -1,4 +1,4 @@
1
- import { CancellableLoader, Container, Loader, Spacer, Text } from "@mariozechner/pi-tui";
1
+ import { CancellableLoader, Container, Loader, Spacer, Text } from "@earendil-works/pi-tui";
2
2
  import { DynamicBorder } from "./dynamic-border.js";
3
3
  import { keyHint } from "./keybinding-hints.js";
4
4
  /** Loader wrapped with borders for extension UI */
@@ -1,4 +1,4 @@
1
- import { Editor } from "@mariozechner/pi-tui";
1
+ import { Editor } from "@earendil-works/pi-tui";
2
2
  /**
3
3
  * Custom editor that handles app-level keybindings for coding-agent.
4
4
  */
@@ -6,7 +6,7 @@ import { spawnSync } from "node:child_process";
6
6
  import * as fs from "node:fs";
7
7
  import * as os from "node:os";
8
8
  import * as path from "node:path";
9
- import { Container, Editor, Spacer, Text } from "@mariozechner/pi-tui";
9
+ import { Container, Editor, Spacer, Text } from "@earendil-works/pi-tui";
10
10
  import { getEditorKeybindings } from "../../../core/keybindings.js";
11
11
  import { getEditorTheme, theme } from "../theme/theme.js";
12
12
  import { DynamicBorder } from "./dynamic-border.js";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Simple text input component for extensions.
3
3
  */
4
- import { Container, Input, Spacer, Text } from "@mariozechner/pi-tui";
4
+ import { Container, Input, Spacer, Text } from "@earendil-works/pi-tui";
5
5
  import { getEditorKeybindings } from "../../../core/keybindings.js";
6
6
  import { theme } from "../theme/theme.js";
7
7
  import { CountdownTimer } from "./countdown-timer.js";
@@ -2,7 +2,7 @@
2
2
  * Generic selector component for extensions.
3
3
  * Displays a list of string options with keyboard navigation.
4
4
  */
5
- import { Container, Spacer, Text } from "@mariozechner/pi-tui";
5
+ import { Container, Spacer, Text } from "@earendil-works/pi-tui";
6
6
  import { getEditorKeybindings } from "../../../core/keybindings.js";
7
7
  import { theme } from "../theme/theme.js";
8
8
  import { CountdownTimer } from "./countdown-timer.js";
@@ -1,4 +1,4 @@
1
- import { truncateToWidth, visibleWidth } from "@mariozechner/pi-tui";
1
+ import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
2
2
  import { theme } from "../theme/theme.js";
3
3
  /**
4
4
  * Sanitize text for display in a single-line status.
@@ -1,4 +1,4 @@
1
- import { Container, Input, Spacer, Text } from "@mariozechner/pi-tui";
1
+ import { Container, Input, Spacer, Text } from "@earendil-works/pi-tui";
2
2
  import { exec } from "child_process";
3
3
  import { getEditorKeybindings } from "../../../core/keybindings.js";
4
4
  import { theme } from "../theme/theme.js";
@@ -1,4 +1,4 @@
1
- import { Container, Spacer, TruncatedText } from "@mariozechner/pi-tui";
1
+ import { Container, Spacer, TruncatedText } from "@earendil-works/pi-tui";
2
2
  import { getEditorKeybindings } from "../../../core/keybindings.js";
3
3
  import { theme } from "../theme/theme.js";
4
4
  import { DynamicBorder } from "./dynamic-border.js";
@@ -1,5 +1,5 @@
1
1
  import * as os from "node:os";
2
- import { Box, Container, getCapabilities, getImageDimensions, Image, imageFallback, Spacer, Text, truncateToWidth, } from "@mariozechner/pi-tui";
2
+ import { Box, Container, getCapabilities, getImageDimensions, Image, imageFallback, Spacer, Text, truncateToWidth, } from "@earendil-works/pi-tui";
3
3
  import stripAnsi from "strip-ansi";
4
4
  import { computeEditDiff } from "../../../core/tools/edit-diff.js";
5
5
  import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize } from "../../../core/tools/truncate.js";
@@ -1,4 +1,4 @@
1
- import { Container, Markdown, Spacer } from "@mariozechner/pi-tui";
1
+ import { Container, Markdown, Spacer } from "@earendil-works/pi-tui";
2
2
  import { getMarkdownTheme, theme } from "../theme/theme.js";
3
3
 
4
4
  function getSurfaceState() {
@@ -2,7 +2,7 @@
2
2
  * Shared utility for truncating text to visual lines (accounting for line wrapping).
3
3
  * Used by both tool-execution.ts and bash-execution.ts for consistent behavior.
4
4
  */
5
- import { Text } from "@mariozechner/pi-tui";
5
+ import { Text } from "@earendil-works/pi-tui";
6
6
  /**
7
7
  * Truncate text to a maximum number of visual lines (from the end).
8
8
  * This accounts for line wrapping based on terminal width.
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
3
  "name": "dark",
4
4
  "vars": {
5
5
  "cyan": "#00d7ff",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
3
3
  "name": "light",
4
4
  "vars": {
5
5
  "teal": "#5a8080",
@@ -514,7 +514,7 @@ function getDefaultTheme() {
514
514
  // Global Theme Instance
515
515
  // ============================================================================
516
516
  // Use globalThis to share theme across module loaders (tsx + jiti in dev mode)
517
- const THEME_KEY = Symbol.for("@mariozechner/pi-coding-agent:theme");
517
+ const THEME_KEY = Symbol.for("@earendil-works/pi-coding-agent:theme");
518
518
  // Export theme as a getter that reads from globalThis
519
519
  // This ensures all module instances (tsx, jiti) see the same theme
520
520
  export const theme = new Proxy({}, {
package/postinstall.js CHANGED
@@ -110,7 +110,7 @@ writeFileSync(
110
110
  join(SC_DIR, ".seedclub-version"),
111
111
  JSON.stringify({
112
112
  seedclubVersion: pkg.version,
113
- piVersion: pkg.dependencies?.["@mariozechner/pi-coding-agent"] ?? "unknown",
113
+ piVersion: pkg.dependencies?.["@earendil-works/pi-coding-agent"] ?? "unknown",
114
114
  installedAt: new Date().toISOString().replace(/\.\d+Z$/, "Z"),
115
115
  }) + "\n",
116
116
  );