@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.
- package/assets/extensions/seedclub/commands/clip-status.ts +1 -1
- package/assets/extensions/seedclub/commands/seedclub.ts +1 -1
- package/assets/extensions/seedclub/commands/transcript-export.ts +1 -1
- package/assets/extensions/seedclub/commands/transcript-intent.ts +1 -1
- package/assets/extensions/seedclub/commands/transcripts.ts +1 -1
- package/assets/extensions/seedclub/index.ts +1 -1
- package/assets/extensions/seedclub/memory.ts +1 -1
- package/assets/extensions/seedclub/tool-utils.ts +1 -1
- package/assets/extensions/seedclub/tools/crm.ts +2 -2
- package/assets/extensions/seedclub/tools/media.ts +2 -2
- package/assets/extensions/seedclub/tools/meetings.ts +2 -2
- package/assets/extensions/seedclub/tools/opportunity-research.ts +1 -1
- package/assets/extensions/seedclub/tools/utility.ts +1 -1
- package/assets/extensions/seedclub/tools/web.ts +1 -1
- package/assets/theme/dark.json +1 -1
- package/assets/theme/light.json +1 -1
- package/package.json +2 -2
- package/packages/seedclub-runtime/README.md +1 -1
- package/packages/seedclub-runtime/pi-contract-baseline.json +1 -1
- package/packages/seedclub-runtime/src/contract.test.mjs +1 -1
- package/packages/seedclub-runtime/src/index.mjs +3 -3
- package/packages/seedclub-runtime/src/workspace-deps.mjs +4 -4
- package/packages/seedclub-tui/src/app/interactive-mode.mjs +1 -1
- package/packages/seedclub-tui/src/index.mjs +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/README.md +2 -2
- package/packages/seedclub-tui/src/vendor/coding-agent/core/keybindings.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/assistant-message.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/bordered-loader.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/custom-editor.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-editor.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-input.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/extension-selector.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/footer.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/login-dialog.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/oauth-selector.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/tool-execution.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/user-message.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/visual-truncate.js +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/dark.json +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/light.json +1 -1
- package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/theme/theme.js +1 -1
- package/postinstall.js +1 -1
|
@@ -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 "@
|
|
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 "@
|
|
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 "@
|
|
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 "@
|
|
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 "@
|
|
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";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
|
-
import { Text } from "@
|
|
3
|
-
import type { ExtensionAPI } from "@
|
|
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 "@
|
|
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 "@
|
|
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 "@
|
|
3
|
-
import type { ExtensionAPI } from "@
|
|
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 "@
|
|
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 "@
|
|
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 "@
|
|
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
|
|
package/assets/theme/dark.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
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,
|
package/assets/theme/light.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
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.
|
|
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
|
-
"@
|
|
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 `@
|
|
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
|
|
|
@@ -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, "@
|
|
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 "@
|
|
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: "@
|
|
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.
|
|
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?.["@
|
|
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
|
-
"@
|
|
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 @
|
|
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 @
|
|
62
|
+
`seedclub: dependency sync completed, but @earendil-works/pi-coding-agent is still not ${expectedPiVersion}.`,
|
|
63
63
|
);
|
|
64
64
|
process.exit(1);
|
|
65
65
|
}
|
|
@@ -24,7 +24,7 @@ export function createSeedclubTuiContract() {
|
|
|
24
24
|
"InteractiveMode.prototype",
|
|
25
25
|
"AuthStorage.prototype",
|
|
26
26
|
"ModelRegistry.prototype",
|
|
27
|
-
"@
|
|
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
|
|
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
|
|
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 "@
|
|
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 "@
|
|
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 "@
|
|
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 */
|
|
@@ -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 "@
|
|
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 "@
|
|
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 "@
|
|
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";
|
package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/login-dialog.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Container, Input, Spacer, Text } from "@
|
|
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";
|
package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/oauth-selector.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Container, Spacer, TruncatedText } from "@
|
|
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";
|
package/packages/seedclub-tui/src/vendor/coding-agent/modes/interactive/components/tool-execution.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as os from "node:os";
|
|
2
|
-
import { Box, Container, getCapabilities, getImageDimensions, Image, imageFallback, Spacer, Text, truncateToWidth, } from "@
|
|
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";
|
|
@@ -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 "@
|
|
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/
|
|
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/
|
|
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("@
|
|
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?.["@
|
|
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
|
);
|