@eminent337/aery 0.1.115 → 0.1.116
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 +4172 -16
- package/README.md +621 -34
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +2 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +66 -46
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +5 -5
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +37 -36
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +2 -2
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +3 -3
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/custom-openai-compatible.d.ts +1 -0
- package/dist/core/custom-openai-compatible.d.ts.map +1 -1
- package/dist/core/custom-openai-compatible.js +30 -4
- package/dist/core/custom-openai-compatible.js.map +1 -1
- package/dist/core/export-html/template.css +45 -1
- package/dist/core/export-html/template.js +68 -4
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -2
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +40 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +17 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-registry.d.ts +6 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +59 -2
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +9 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +35 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +1 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +18 -10
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -3
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +2 -2
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +5 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +2 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +105 -125
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +50 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +178 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +70 -13
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +2 -2
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +23 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +2 -2
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +2 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +6 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +5 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +19 -5
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +1 -3
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +9 -17
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +24 -27
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +4 -2
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +2 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +9 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -1
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +8 -10
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +2 -2
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +2 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +4 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +3 -3
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +9 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js +59 -16
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/paths.d.ts +2 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +16 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +76 -7
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/uuid.d.ts +2 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +40 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/version-check.d.ts +7 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +12 -5
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +16 -16
- package/docs/custom-provider.md +40 -32
- package/docs/development.md +4 -4
- package/docs/docs.json +20 -5
- package/docs/extensions.md +152 -102
- package/docs/index.md +16 -7
- package/docs/json.md +7 -7
- package/docs/keybindings.md +3 -3
- package/docs/models.md +48 -8
- package/docs/packages.md +41 -36
- package/docs/prompt-templates.md +2 -2
- package/docs/providers.md +52 -36
- package/docs/quickstart.md +20 -20
- package/docs/rpc.md +9 -9
- package/docs/sdk.md +31 -53
- package/docs/session-format.md +10 -10
- package/docs/sessions.md +9 -9
- package/docs/settings.md +12 -6
- package/docs/skills.md +4 -4
- package/docs/terminal-setup.md +6 -6
- package/docs/termux.md +6 -6
- package/docs/themes.md +7 -7
- package/docs/tmux.md +1 -1
- package/docs/tui.md +8 -8
- package/docs/usage.md +41 -39
- package/examples/extensions/README.md +3 -5
- package/examples/extensions/antigravity-image-gen.ts +9 -9
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +2 -2
- package/examples/extensions/built-in-tool-renderer.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-header.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +4 -4
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/README.md +2 -2
- package/examples/extensions/doom-overlay/doom/build.sh +2 -2
- package/examples/extensions/doom-overlay/index.ts +1 -1
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/handoff.ts +42 -5
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +2 -2
- package/examples/extensions/input-transform.ts +3 -3
- package/examples/extensions/interactive-shell.ts +1 -1
- package/examples/extensions/mac-system-theme.ts +2 -2
- package/examples/extensions/minimal-mode.ts +1 -1
- package/examples/extensions/modal-editor.ts +1 -1
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +6 -6
- package/examples/extensions/overlay-test.ts +1 -1
- package/examples/extensions/preset.ts +2 -2
- package/examples/extensions/provider-payload.ts +1 -1
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +3 -3
- package/examples/extensions/sandbox/package-lock.json +7 -7
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/subagent/README.md +2 -2
- package/examples/extensions/subagent/agents/aery-pods.md +1 -1
- package/examples/extensions/subagent/agents.ts +1 -1
- package/examples/extensions/subagent/index.ts +2 -2
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/tool-override.ts +2 -2
- package/examples/extensions/truncated-tool.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +4 -4
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +4 -4
- package/examples/extensions/working-message-test.ts +1 -1
- package/examples/sdk/01-minimal.ts +14 -10
- package/examples/sdk/02-custom-model.ts +12 -8
- package/examples/sdk/03-custom-prompt.ts +24 -16
- package/examples/sdk/04-skills.ts +2 -2
- package/examples/sdk/05-tools.ts +8 -4
- package/examples/sdk/06-extensions.ts +11 -7
- package/examples/sdk/07-context-files.ts +2 -2
- package/examples/sdk/08-prompt-templates.ts +2 -2
- package/examples/sdk/09-api-keys-and-oauth.ts +8 -4
- package/examples/sdk/10-settings.ts +4 -4
- package/examples/sdk/11-sessions.ts +4 -0
- package/examples/sdk/12-full-control.ts +11 -7
- package/examples/sdk/README.md +5 -8
- package/package.json +8 -14
package/docs/termux.md
CHANGED
|
@@ -16,14 +16,14 @@ pkg update && pkg upgrade
|
|
|
16
16
|
# Install dependencies
|
|
17
17
|
pkg install nodejs termux-api git
|
|
18
18
|
|
|
19
|
-
# Install
|
|
19
|
+
# Install pi
|
|
20
20
|
npm install -g @eminent337/aery
|
|
21
21
|
|
|
22
22
|
# Create config directory
|
|
23
23
|
mkdir -p ~/.aery/agent
|
|
24
24
|
|
|
25
|
-
# Run
|
|
26
|
-
|
|
25
|
+
# Run pi
|
|
26
|
+
pi
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## Clipboard Support
|
|
@@ -36,7 +36,7 @@ Image clipboard is not supported on Termux (the `ctrl+v` image paste feature wil
|
|
|
36
36
|
|
|
37
37
|
Create `~/.aery/agent/AGENTS.md` to help the agent understand the Termux environment:
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
````markdown
|
|
40
40
|
# Agent Environment: Termux on Android
|
|
41
41
|
|
|
42
42
|
## Location
|
|
@@ -53,7 +53,7 @@ termux-open-url "https://example.com"
|
|
|
53
53
|
## Opening Files
|
|
54
54
|
```bash
|
|
55
55
|
termux-open file.pdf # Opens with default app
|
|
56
|
-
termux-open
|
|
56
|
+
termux-open --chooser image.jpg # Choose app
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
## Clipboard
|
|
@@ -91,7 +91,7 @@ termux-camera-photo out.jpg # Take photo
|
|
|
91
91
|
- Termux:API app must be installed for `termux-*` commands
|
|
92
92
|
- Use `pkg install termux-api` for the command-line tools
|
|
93
93
|
- Storage permission needed for `/storage/emulated/0` access
|
|
94
|
-
|
|
94
|
+
````
|
|
95
95
|
|
|
96
96
|
## Limitations
|
|
97
97
|
|
package/docs/themes.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
>
|
|
1
|
+
> pi can create themes. Ask it to build one for your setup.
|
|
2
2
|
|
|
3
3
|
# Themes
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ Pi loads themes from:
|
|
|
21
21
|
- Built-in: `dark`, `light`
|
|
22
22
|
- Global: `~/.aery/agent/themes/*.json`
|
|
23
23
|
- Project: `.aery/themes/*.json`
|
|
24
|
-
- Packages: `themes/` directories or `
|
|
24
|
+
- Packages: `themes/` directories or `pi.themes` entries in `package.json`
|
|
25
25
|
- Settings: `themes` array with files or directories
|
|
26
26
|
- CLI: `--theme <path>` (repeatable)
|
|
27
27
|
|
|
@@ -37,7 +37,7 @@ Select a theme via `/settings` or in `settings.json`:
|
|
|
37
37
|
}
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
On first run,
|
|
40
|
+
On first run, pi detects your terminal background and defaults to `dark` or `light`.
|
|
41
41
|
|
|
42
42
|
## Creating a Custom Theme
|
|
43
43
|
|
|
@@ -52,7 +52,7 @@ vim ~/.aery/agent/themes/my-theme.json
|
|
|
52
52
|
|
|
53
53
|
```json
|
|
54
54
|
{
|
|
55
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
55
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
56
56
|
"name": "my-theme",
|
|
57
57
|
"vars": {
|
|
58
58
|
"primary": "#00aaff",
|
|
@@ -116,13 +116,13 @@ vim ~/.aery/agent/themes/my-theme.json
|
|
|
116
116
|
|
|
117
117
|
3. Select the theme via `/settings`.
|
|
118
118
|
|
|
119
|
-
**Hot reload:** When you edit the currently active custom theme file,
|
|
119
|
+
**Hot reload:** When you edit the currently active custom theme file, pi reloads it automatically for immediate visual feedback.
|
|
120
120
|
|
|
121
121
|
## Theme Format
|
|
122
122
|
|
|
123
123
|
```json
|
|
124
124
|
{
|
|
125
|
-
"$schema": "https://raw.githubusercontent.com/
|
|
125
|
+
"$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
|
|
126
126
|
"name": "my-theme",
|
|
127
127
|
"vars": {
|
|
128
128
|
"blue": "#0066cc",
|
|
@@ -268,7 +268,7 @@ Four formats are supported:
|
|
|
268
268
|
|
|
269
269
|
### Terminal Compatibility
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
Pi uses 24-bit RGB colors. Most modern terminals support this (iTerm2, Kitty, WezTerm, Windows Terminal, VS Code). For older terminals with only 256-color support, pi falls back to the nearest approximation.
|
|
272
272
|
|
|
273
273
|
Check truecolor support:
|
|
274
274
|
|
package/docs/tmux.md
CHANGED
|
@@ -40,7 +40,7 @@ With `extended-keys-format csi-u`, the same keys are forwarded as:
|
|
|
40
40
|
- `Ctrl+D` → `\x1b[100;5u`
|
|
41
41
|
- `Ctrl+Enter` → `\x1b[13;5u`
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Pi supports both formats, but `csi-u` is the recommended tmux setup.
|
|
44
44
|
|
|
45
45
|
## What This Fixes
|
|
46
46
|
|
package/docs/tui.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
>
|
|
1
|
+
> pi can create TUI components. Ask it to build one for your use case.
|
|
2
2
|
|
|
3
3
|
# TUI Components
|
|
4
4
|
|
|
@@ -96,11 +96,11 @@ pi.on("session_start", async (_event, ctx) => {
|
|
|
96
96
|
});
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
**In custom tools** via `
|
|
99
|
+
**In custom tools** via `pi.ui.custom()`:
|
|
100
100
|
|
|
101
101
|
```typescript
|
|
102
102
|
async execute(toolCallId, params, onUpdate, ctx, signal) {
|
|
103
|
-
const handle =
|
|
103
|
+
const handle = pi.ui.custom(myComponent);
|
|
104
104
|
// ...
|
|
105
105
|
handle.close();
|
|
106
106
|
}
|
|
@@ -445,10 +445,10 @@ interface MyTheme {
|
|
|
445
445
|
|
|
446
446
|
## Debug logging
|
|
447
447
|
|
|
448
|
-
Set `
|
|
448
|
+
Set `AERY_TUI_WRITE_LOG` to capture the raw ANSI stream written to stdout.
|
|
449
449
|
|
|
450
450
|
```bash
|
|
451
|
-
|
|
451
|
+
AERY_TUI_WRITE_LOG=/tmp/tui-ansi.log npx tsx packages/tui/test/chat-simple.ts
|
|
452
452
|
```
|
|
453
453
|
|
|
454
454
|
## Performance
|
|
@@ -737,7 +737,7 @@ ctx.ui.setStatus("my-ext", undefined);
|
|
|
737
737
|
|
|
738
738
|
### Pattern 4b: Working Indicator Customization
|
|
739
739
|
|
|
740
|
-
Customize the inline working indicator shown while
|
|
740
|
+
Customize the inline working indicator shown while pi is streaming a response.
|
|
741
741
|
|
|
742
742
|
```typescript
|
|
743
743
|
// Static indicator
|
|
@@ -757,7 +757,7 @@ ctx.ui.setWorkingIndicator({
|
|
|
757
757
|
// Hide the indicator entirely
|
|
758
758
|
ctx.ui.setWorkingIndicator({ frames: [] });
|
|
759
759
|
|
|
760
|
-
// Restore
|
|
760
|
+
// Restore pi's default spinner
|
|
761
761
|
ctx.ui.setWorkingIndicator();
|
|
762
762
|
```
|
|
763
763
|
|
|
@@ -874,7 +874,7 @@ class VimEditor extends CustomEditor {
|
|
|
874
874
|
}
|
|
875
875
|
}
|
|
876
876
|
|
|
877
|
-
export default function (
|
|
877
|
+
export default function (pi: ExtensionAPI) {
|
|
878
878
|
pi.on("session_start", (_event, ctx) => {
|
|
879
879
|
// Factory receives theme and keybindings from the app
|
|
880
880
|
ctx.ui.setEditorComponent((tui, theme, keybindings) =>
|
package/docs/usage.md
CHANGED
|
@@ -53,7 +53,7 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|
|
53
53
|
| `/reload` | Reload keybindings, extensions, skills, prompts, and context files |
|
|
54
54
|
| `/hotkeys` | Show all keyboard shortcuts |
|
|
55
55
|
| `/changelog` | Display version history |
|
|
56
|
-
| `/quit` | Quit
|
|
56
|
+
| `/quit` | Quit pi |
|
|
57
57
|
|
|
58
58
|
## Message Queue
|
|
59
59
|
|
|
@@ -64,7 +64,7 @@ You can submit messages while the agent is still working:
|
|
|
64
64
|
- **Escape** aborts and restores queued messages to the editor.
|
|
65
65
|
- **Alt+Up** retrieves queued messages back to the editor.
|
|
66
66
|
|
|
67
|
-
On Windows Terminal, Alt+Enter is fullscreen by default. Remap it as described in [Terminal setup](terminal-setup.md) if you want
|
|
67
|
+
On Windows Terminal, Alt+Enter is fullscreen by default. Remap it as described in [Terminal setup](terminal-setup.md) if you want pi to receive the shortcut.
|
|
68
68
|
|
|
69
69
|
Configure delivery in [Settings](settings.md) with `steeringMode` and `followUpMode`.
|
|
70
70
|
|
|
@@ -73,11 +73,11 @@ Configure delivery in [Settings](settings.md) with `steeringMode` and `followUpM
|
|
|
73
73
|
Sessions are saved automatically to `~/.aery/agent/sessions/`, organized by working directory.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
pi -c # Continue most recent session
|
|
77
|
+
pi -r # Browse and select a session
|
|
78
|
+
pi --no-session # Ephemeral mode; do not save
|
|
79
|
+
pi --session <path|id> # Use a specific session file or session ID
|
|
80
|
+
pi --fork <path|id> # Fork a session into a new session file
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Useful session commands:
|
|
@@ -88,7 +88,7 @@ Useful session commands:
|
|
|
88
88
|
- `/clone` duplicates the current active branch into a new session file.
|
|
89
89
|
- `/compact` summarizes older messages to free context.
|
|
90
90
|
|
|
91
|
-
See [Sessions](
|
|
91
|
+
See [Sessions](sessions.md) and [Compaction](compaction.md) for details.
|
|
92
92
|
|
|
93
93
|
## Context Files
|
|
94
94
|
|
|
@@ -104,7 +104,7 @@ Use context files for project conventions, commands, safety rules, and preferenc
|
|
|
104
104
|
|
|
105
105
|
Replace the default system prompt with:
|
|
106
106
|
|
|
107
|
-
- `.
|
|
107
|
+
- `.pi/SYSTEM.md` for a project
|
|
108
108
|
- `~/.aery/agent/SYSTEM.md` globally
|
|
109
109
|
|
|
110
110
|
Append to the default prompt without replacing it with `APPEND_SYSTEM.md` in either location.
|
|
@@ -115,26 +115,26 @@ Use `/export [file]` to write a session to HTML.
|
|
|
115
115
|
|
|
116
116
|
Use `/share` to upload a private GitHub gist with a shareable HTML link.
|
|
117
117
|
|
|
118
|
-
If you use
|
|
118
|
+
If you use pi for open source work and want to publish sessions for model, prompt, tool, and evaluation research, see [`badlogic/pi-share-hf`](https://github.com/badlogic/pi-share-hf). It publishes sessions to Hugging Face datasets.
|
|
119
119
|
|
|
120
120
|
## CLI Reference
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
|
-
|
|
123
|
+
pi [options] [@files...] [messages...]
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
### Package Commands
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
129
|
+
pi install <source> [-l] # Install package, -l for project-local
|
|
130
|
+
pi remove <source> [-l] # Remove package
|
|
131
|
+
pi uninstall <source> [-l] # Alias for remove
|
|
132
|
+
pi update [source|self|pi] # Update pi and packages; skips pinned packages
|
|
133
|
+
pi update --extensions # Update packages only
|
|
134
|
+
pi update --self # Update pi only
|
|
135
|
+
pi update --extension <src> # Update one package
|
|
136
|
+
pi list # List installed packages
|
|
137
|
+
pi config # Enable/disable package resources
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
See [Pi Packages](packages.md) for package sources and security notes.
|
|
@@ -149,10 +149,10 @@ See [Pi Packages](packages.md) for package sources and security notes.
|
|
|
149
149
|
| `--mode rpc` | RPC mode over stdin/stdout; see [RPC mode](rpc.md) |
|
|
150
150
|
| `--export <in> [out]` | Export a session to HTML |
|
|
151
151
|
|
|
152
|
-
In print mode,
|
|
152
|
+
In print mode, pi also reads piped stdin and merges it into the initial prompt:
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
|
-
cat README.md |
|
|
155
|
+
cat README.md | pi -p "Summarize this text"
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
### Model Options
|
|
@@ -204,7 +204,7 @@ Built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`.
|
|
|
204
204
|
Combine `--no-*` with explicit flags to load exactly what you need, ignoring settings. Example:
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
|
|
207
|
+
pi --no-extensions -e ./my-extension.ts
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
### Other Options
|
|
@@ -222,48 +222,50 @@ aery --no-extensions -e ./my-extension.ts
|
|
|
222
222
|
Prefix files with `@` to include them in the message:
|
|
223
223
|
|
|
224
224
|
```bash
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
225
|
+
pi @prompt.md "Answer this"
|
|
226
|
+
pi -p @screenshot.png "What's in this image?"
|
|
227
|
+
pi @code.ts @test.ts "Review these files"
|
|
228
228
|
```
|
|
229
229
|
|
|
230
230
|
### Examples
|
|
231
231
|
|
|
232
232
|
```bash
|
|
233
233
|
# Interactive with initial prompt
|
|
234
|
-
|
|
234
|
+
pi "List all .ts files in src/"
|
|
235
235
|
|
|
236
236
|
# Non-interactive
|
|
237
|
-
|
|
237
|
+
pi -p "Summarize this codebase"
|
|
238
238
|
|
|
239
239
|
# Non-interactive with piped stdin
|
|
240
|
-
cat README.md |
|
|
240
|
+
cat README.md | pi -p "Summarize this text"
|
|
241
241
|
|
|
242
242
|
# Different model
|
|
243
|
-
|
|
243
|
+
pi --provider openai --model gpt-4o "Help me refactor"
|
|
244
244
|
|
|
245
245
|
# Model with provider prefix
|
|
246
|
-
|
|
246
|
+
pi --model openai/gpt-4o "Help me refactor"
|
|
247
247
|
|
|
248
248
|
# Model with thinking level shorthand
|
|
249
|
-
|
|
249
|
+
pi --model sonnet:high "Solve this complex problem"
|
|
250
250
|
|
|
251
251
|
# Limit model cycling
|
|
252
|
-
|
|
252
|
+
pi --models "claude-*,gpt-4o"
|
|
253
253
|
|
|
254
254
|
# Read-only mode
|
|
255
|
-
|
|
255
|
+
pi --tools read,grep,find,ls -p "Review the code"
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
### Environment Variables
|
|
259
259
|
|
|
260
260
|
| Variable | Description |
|
|
261
261
|
|----------|-------------|
|
|
262
|
-
| `
|
|
263
|
-
| `
|
|
264
|
-
| `
|
|
265
|
-
| `
|
|
266
|
-
| `
|
|
262
|
+
| `AERY_CODING_AGENT_DIR` | Override config directory; default is `~/.aery/agent` |
|
|
263
|
+
| `AERY_CODING_AGENT_SESSION_DIR` | Override session storage directory; overridden by `--session-dir` |
|
|
264
|
+
| `AERY_PACKAGE_DIR` | Override package directory, useful for Nix/Guix store paths |
|
|
265
|
+
| `AERY_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry |
|
|
266
|
+
| `AERY_SKIP_VERSION_CHECK` | Skip the Pi version update check at startup. This prevents the `eminent337.github.io` latest-version request |
|
|
267
|
+
| `AERY_TELEMETRY` | Override install/update telemetry: `1`/`true`/`yes` or `0`/`false`/`no`. This does not disable update checks |
|
|
268
|
+
| `AERY_CACHE_RETENTION` | Set to `long` for extended prompt cache where supported |
|
|
267
269
|
| `VISUAL`, `EDITOR` | External editor for Ctrl+G |
|
|
268
270
|
|
|
269
271
|
## Design Principles
|
|
@@ -6,7 +6,7 @@ Example extensions for pi-coding-agent.
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# Load an extension with --extension flag
|
|
9
|
-
|
|
9
|
+
pi --extension examples/extensions/permission-gate.ts
|
|
10
10
|
|
|
11
11
|
# Or copy to extensions directory for auto-discovery
|
|
12
12
|
cp permission-gate.ts ~/.aery/agent/extensions/
|
|
@@ -38,7 +38,6 @@ cp permission-gate.ts ~/.aery/agent/extensions/
|
|
|
38
38
|
| `built-in-tool-renderer.ts` | Custom compact rendering for built-in tools (read, bash, edit, write) while keeping original behavior |
|
|
39
39
|
| `minimal-mode.ts` | Override built-in tool rendering for minimal display (only tool calls, no output in collapsed mode) |
|
|
40
40
|
| `truncated-tool.ts` | Wraps ripgrep with proper output truncation (50KB/2000 lines) |
|
|
41
|
-
| `antigravity-image-gen.ts` | Generate images via Google Antigravity with optional save-to-disk modes |
|
|
42
41
|
| `ssh.ts` | Delegate all tools to a remote machine via SSH using pluggable operations |
|
|
43
42
|
| `subagent/` | Delegate tasks to specialized subagents with isolated context windows |
|
|
44
43
|
|
|
@@ -97,7 +96,7 @@ cp permission-gate.ts ~/.aery/agent/extensions/
|
|
|
97
96
|
|
|
98
97
|
| Extension | Description |
|
|
99
98
|
|-----------|-------------|
|
|
100
|
-
| `mac-system-theme.ts` | Syncs
|
|
99
|
+
| `mac-system-theme.ts` | Syncs pi theme with macOS dark/light mode |
|
|
101
100
|
|
|
102
101
|
### Resources
|
|
103
102
|
|
|
@@ -125,7 +124,6 @@ cp permission-gate.ts ~/.aery/agent/extensions/
|
|
|
125
124
|
|-----------|-------------|
|
|
126
125
|
| `custom-provider-anthropic/` | Custom Anthropic provider with OAuth support and custom streaming implementation |
|
|
127
126
|
| `custom-provider-gitlab-duo/` | GitLab Duo provider using pi-ai's built-in Anthropic/OpenAI streaming via proxy |
|
|
128
|
-
| `custom-provider-qwen-cli/` | Qwen CLI provider with OAuth device flow and OpenAI-compatible models |
|
|
129
127
|
|
|
130
128
|
### External Dependencies
|
|
131
129
|
|
|
@@ -140,7 +138,7 @@ See [docs/extensions.md](../../docs/extensions.md) for full documentation.
|
|
|
140
138
|
|
|
141
139
|
```typescript
|
|
142
140
|
import type { ExtensionAPI } from "@eminent337/aery";
|
|
143
|
-
import { Type } from "
|
|
141
|
+
import { Type } from "typebox";
|
|
144
142
|
|
|
145
143
|
export default function (pi: ExtensionAPI) {
|
|
146
144
|
// Subscribe to lifecycle events
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* save=none - Don't save to disk (default)
|
|
14
14
|
* save=project - Save to <repo>/.aery/generated-images/
|
|
15
15
|
* save=global - Save to ~/.aery/agent/generated-images/
|
|
16
|
-
* save=custom - Save to saveDir param or
|
|
16
|
+
* save=custom - Save to saveDir param or AERY_IMAGE_SAVE_DIR
|
|
17
17
|
*
|
|
18
18
|
* Environment variables:
|
|
19
|
-
*
|
|
20
|
-
*
|
|
19
|
+
* AERY_IMAGE_SAVE_MODE - Default save mode (none|project|global|custom)
|
|
20
|
+
* AERY_IMAGE_SAVE_DIR - Directory for custom save mode
|
|
21
21
|
*
|
|
22
22
|
* Config files (project overrides global):
|
|
23
23
|
* ~/.aery/agent/extensions/antigravity-image-gen.json
|
|
@@ -51,7 +51,7 @@ const ANTIGRAVITY_ENDPOINT = "https://daily-cloudcode-pa.sandbox.googleapis.com"
|
|
|
51
51
|
const DEFAULT_ANTIGRAVITY_VERSION = "1.21.9";
|
|
52
52
|
|
|
53
53
|
const ANTIGRAVITY_HEADERS = {
|
|
54
|
-
"User-Agent": `antigravity/${process.env.
|
|
54
|
+
"User-Agent": `antigravity/${process.env.AERY_AI_ANTIGRAVITY_VERSION || DEFAULT_ANTIGRAVITY_VERSION} darwin/arm64`,
|
|
55
55
|
"X-Goog-Api-Client": "google-cloud-sdk vscode_cloudshelleditor/0.1",
|
|
56
56
|
"Client-Metadata": JSON.stringify({
|
|
57
57
|
ideType: "IDE_UNSPECIFIED",
|
|
@@ -74,7 +74,7 @@ const TOOL_PARAMS = Type.Object({
|
|
|
74
74
|
save: Type.Optional(StringEnum(SAVE_MODES)),
|
|
75
75
|
saveDir: Type.Optional(
|
|
76
76
|
Type.String({
|
|
77
|
-
description: "Directory to save image when save=custom. Defaults to
|
|
77
|
+
description: "Directory to save image when save=custom. Defaults to AERY_IMAGE_SAVE_DIR if set.",
|
|
78
78
|
}),
|
|
79
79
|
),
|
|
80
80
|
});
|
|
@@ -191,7 +191,7 @@ function loadConfig(cwd: string): ExtensionConfig {
|
|
|
191
191
|
|
|
192
192
|
function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig {
|
|
193
193
|
const config = loadConfig(cwd);
|
|
194
|
-
const envMode = (process.env.
|
|
194
|
+
const envMode = (process.env.AERY_IMAGE_SAVE_MODE || "").toLowerCase();
|
|
195
195
|
const paramMode = params.save;
|
|
196
196
|
const mode = (paramMode || envMode || config.save || DEFAULT_SAVE_MODE) as SaveMode;
|
|
197
197
|
|
|
@@ -209,9 +209,9 @@ function resolveSaveConfig(params: ToolParams, cwd: string): SaveConfig {
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
if (mode === "custom") {
|
|
212
|
-
const dir = params.saveDir || process.env.
|
|
212
|
+
const dir = params.saveDir || process.env.AERY_IMAGE_SAVE_DIR || config.saveDir;
|
|
213
213
|
if (!dir || !dir.trim()) {
|
|
214
|
-
throw new Error("save=custom requires saveDir or
|
|
214
|
+
throw new Error("save=custom requires saveDir or AERY_IMAGE_SAVE_DIR.");
|
|
215
215
|
}
|
|
216
216
|
return { mode, outputDir: dir };
|
|
217
217
|
}
|
|
@@ -355,7 +355,7 @@ export default function antigravityImageGen(pi: ExtensionAPI) {
|
|
|
355
355
|
name: "generate_image",
|
|
356
356
|
label: "Generate image",
|
|
357
357
|
description:
|
|
358
|
-
"Generate an image via Google Antigravity image models. Returns the image as a tool result attachment. Optional saving via save=project|global|custom|none, or
|
|
358
|
+
"Generate an image via Google Antigravity image models. Returns the image as a tool result attachment. Optional saving via save=project|global|custom|none, or AERY_IMAGE_SAVE_MODE/AERY_IMAGE_SAVE_DIR.",
|
|
359
359
|
parameters: TOOL_PARAMS,
|
|
360
360
|
async execute(_toolCallId, params: ToolParams, signal, onUpdate, ctx) {
|
|
361
361
|
const { accessToken, projectId } = await getCredentials(ctx);
|
|
@@ -36,7 +36,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
36
36
|
|
|
37
37
|
// Generate a simple commit message
|
|
38
38
|
const firstLine = lastAssistantText.split("\n")[0] || "Work in progress";
|
|
39
|
-
const commitMessage = `[
|
|
39
|
+
const commitMessage = `[pi] ${firstLine.slice(0, 50)}${firstLine.length > 50 ? "..." : ""}`;
|
|
40
40
|
|
|
41
41
|
// Stage and commit
|
|
42
42
|
await pi.exec("git", ["add", "-A"]);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Adjusts command, cwd, and env before execution.
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
|
-
*
|
|
7
|
+
* pi -e ./bash-spawn-hook.ts
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import type { ExtensionAPI } from "@eminent337/aery";
|
|
@@ -17,7 +17,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
17
17
|
spawnHook: ({ command, cwd, env }) => ({
|
|
18
18
|
command: `source ~/.profile\n${command}`,
|
|
19
19
|
cwd,
|
|
20
|
-
env: { ...env,
|
|
20
|
+
env: { ...env, AERY_SPAWN_HOOK: "1" },
|
|
21
21
|
}),
|
|
22
22
|
});
|
|
23
23
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* toggled the tool output open (via ctrl+e or clicking)
|
|
23
23
|
*
|
|
24
24
|
* Usage:
|
|
25
|
-
*
|
|
25
|
+
* pi -e ./built-in-tool-renderer.ts
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@eminent337/aery";
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* which can be cheaper/faster than the main conversation model.
|
|
11
11
|
*
|
|
12
12
|
* Usage:
|
|
13
|
-
*
|
|
13
|
+
* pi --extension examples/extensions/custom-compaction.ts
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import type { ExtensionAPI } from "@eminent337/aery";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Custom Header Extension
|
|
3
3
|
*
|
|
4
4
|
* Demonstrates ctx.ui.setHeader() for replacing the built-in header
|
|
5
|
-
* (logo + keybinding hints) with a custom component showing the
|
|
5
|
+
* (logo + keybinding hints) with a custom component showing the pi mascot.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import type { ExtensionAPI, Theme } from "@eminent337/aery";
|
|
9
9
|
import { VERSION } from "@eminent337/aery";
|
|
10
10
|
|
|
11
11
|
// --- PI MASCOT ---
|
|
12
|
-
// Based on pi_mascot.ts - the
|
|
12
|
+
// Based on pi_mascot.ts - the pi agent character
|
|
13
13
|
function getPiMascot(theme: Theme): string[] {
|
|
14
14
|
// --- COLORS ---
|
|
15
15
|
// 3b1b Blue: R=80, G=180, B=230
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* cd packages/coding-agent/examples/extensions/custom-provider && npm install
|
|
14
14
|
*
|
|
15
15
|
* # With OAuth (run /login custom-anthropic first)
|
|
16
|
-
*
|
|
16
|
+
* pi -e ./packages/coding-agent/examples/extensions/custom-provider
|
|
17
17
|
*
|
|
18
18
|
* # With API key
|
|
19
|
-
* CUSTOM_ANTHROPIC_API_KEY=sk-ant-...
|
|
19
|
+
* CUSTOM_ANTHROPIC_API_KEY=sk-ant-... pi -e ./packages/coding-agent/examples/extensions/custom-provider
|
|
20
20
|
*
|
|
21
21
|
* Then use /model to select custom-anthropic/claude-sonnet-4-5
|
|
22
22
|
*/
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"version": "0.
|
|
2
|
+
"name": "aery-extension-custom-provider",
|
|
3
|
+
"version": "0.74.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
|
-
"name": "
|
|
9
|
-
"version": "0.
|
|
8
|
+
"name": "aery-extension-custom-provider",
|
|
9
|
+
"version": "0.74.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* GitLab Duo Provider Extension
|
|
3
3
|
*
|
|
4
4
|
* Provides access to GitLab Duo AI models (Claude and GPT) through GitLab's AI Gateway.
|
|
5
|
-
* Delegates to
|
|
5
|
+
* Delegates to pi-ai's built-in Anthropic and OpenAI streaming implementations.
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
|
-
*
|
|
8
|
+
* pi -e ./packages/coding-agent/examples/extensions/custom-provider-gitlab-duo
|
|
9
9
|
* # Then /login gitlab-duo, or set GITLAB_TOKEN=glpat-...
|
|
10
10
|
*/
|
|
11
11
|
|
|
@@ -5,7 +5,7 @@ Play DOOM as an overlay in pi. Demonstrates that the overlay system can handle r
|
|
|
5
5
|
## Usage
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
8
|
+
pi --extension ./examples/extensions/doom-overlay
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Then run:
|
|
@@ -43,4 +43,4 @@ Height is calculated from width to maintain DOOM's 3.2:1 aspect ratio (accountin
|
|
|
43
43
|
|
|
44
44
|
- [id Software](https://github.com/id-Software/DOOM) for the original DOOM
|
|
45
45
|
- [doomgeneric](https://github.com/ozkl/doomgeneric) for the portable DOOM implementation
|
|
46
|
-
- [
|
|
46
|
+
- [pi-doom](https://github.com/badlogic/pi-doom) for the original pi integration
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# Build DOOM for
|
|
2
|
+
# Build DOOM for pi-doom using doomgeneric and Emscripten
|
|
3
3
|
|
|
4
4
|
set -e
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
|
8
8
|
DOOM_DIR="$PROJECT_ROOT/doom"
|
|
9
9
|
BUILD_DIR="$PROJECT_ROOT/doom/build"
|
|
10
10
|
|
|
11
|
-
echo "===
|
|
11
|
+
echo "=== pi-doom Build Script ==="
|
|
12
12
|
|
|
13
13
|
# Check for emcc
|
|
14
14
|
if ! command -v emcc &> /dev/null; then
|
|
@@ -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": "dynamic-resources",
|
|
4
4
|
"vars": {
|
|
5
5
|
"cyan": "#00d7ff",
|