@@ -23,6 +23,7 @@
|
|||||||
- Fixed `models.json` `modelOverrides` to apply to extension-registered provider models ([#6367](https://github.com/earendil-works/pi/issues/6367)).
|
- Fixed `models.json` `modelOverrides` to apply to extension-registered provider models ([#6367](https://github.com/earendil-works/pi/issues/6367)).
|
||||||
- Fixed project context file discovery to use stable parent traversal on Windows so startup no longer hangs while loading AGENTS.md or CLAUDE.md ([#6369](https://github.com/earendil-works/pi/issues/6369)).
|
- Fixed project context file discovery to use stable parent traversal on Windows so startup no longer hangs while loading AGENTS.md or CLAUDE.md ([#6369](https://github.com/earendil-works/pi/issues/6369)).
|
||||||
- Fixed `--session-id` startup to warn when no existing project session has that id and pi creates a new session ([#6407](https://github.com/earendil-works/pi/issues/6407)).
|
- Fixed `--session-id` startup to warn when no existing project session has that id and pi creates a new session ([#6407](https://github.com/earendil-works/pi/issues/6407)).
|
||||||
|
- Fixed `/reload` help text and docs to consistently mention themes and context files ([#6395](https://github.com/earendil-works/pi/issues/6395)).
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ Type `/` in the editor to trigger commands. [Extensions](#extensions) can regist
|
|||||||
| `/export [file]` | Export session to HTML or JSONL file |
|
| `/export [file]` | Export session to HTML or JSONL file |
|
||||||
| `/import <file>` | Import and resume a session from a JSONL file |
|
| `/import <file>` | Import and resume a session from a JSONL file |
|
||||||
| `/share` | Upload as private GitHub gist with shareable HTML link |
|
| `/share` | Upload as private GitHub gist with shareable HTML link |
|
||||||
| `/reload` | Reload keybindings, extensions, skills, prompts, and context files (themes hot-reload automatically) |
|
| `/reload` | Reload keybindings, extensions, skills, prompts, themes, and context files |
|
||||||
| `/hotkeys` | Show all keyboard shortcuts |
|
| `/hotkeys` | Show all keyboard shortcuts |
|
||||||
| `/changelog` | Display version history |
|
| `/changelog` | Display version history |
|
||||||
| `/quit` | Quit pi |
|
| `/quit` | Quit pi |
|
||||||
|
|||||||
@@ -1263,7 +1263,7 @@ Run the same reload flow as `/reload`.
|
|||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
pi.registerCommand("reload-runtime", {
|
pi.registerCommand("reload-runtime", {
|
||||||
description: "Reload extensions, skills, prompts, and themes",
|
description: "Reload extensions, skills, prompts, themes, and context files",
|
||||||
handler: async (_args, ctx) => {
|
handler: async (_args, ctx) => {
|
||||||
await ctx.reload();
|
await ctx.reload();
|
||||||
return;
|
return;
|
||||||
@@ -1291,7 +1291,7 @@ import { Type } from "typebox";
|
|||||||
|
|
||||||
export default function (pi: ExtensionAPI) {
|
export default function (pi: ExtensionAPI) {
|
||||||
pi.registerCommand("reload-runtime", {
|
pi.registerCommand("reload-runtime", {
|
||||||
description: "Reload extensions, skills, prompts, and themes",
|
description: "Reload extensions, skills, prompts, themes, and context files",
|
||||||
handler: async (_args, ctx) => {
|
handler: async (_args, ctx) => {
|
||||||
await ctx.reload();
|
await ctx.reload();
|
||||||
return;
|
return;
|
||||||
@@ -1301,7 +1301,7 @@ export default function (pi: ExtensionAPI) {
|
|||||||
pi.registerTool({
|
pi.registerTool({
|
||||||
name: "reload_runtime",
|
name: "reload_runtime",
|
||||||
label: "Reload Runtime",
|
label: "Reload Runtime",
|
||||||
description: "Reload extensions, skills, prompts, and themes",
|
description: "Reload extensions, skills, prompts, themes, and context files",
|
||||||
parameters: Type.Object({}),
|
parameters: Type.Object({}),
|
||||||
async execute() {
|
async execute() {
|
||||||
pi.sendUserMessage("/reload-runtime", { deliverAs: "followUp" });
|
pi.sendUserMessage("/reload-runtime", { deliverAs: "followUp" });
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ Type `/` in the editor to open command completion. Extensions can register custo
|
|||||||
| `/export [file]` | Export session to HTML or JSONL |
|
| `/export [file]` | Export session to HTML or JSONL |
|
||||||
| `/import <file>` | Import and resume a session from a JSONL file |
|
| `/import <file>` | Import and resume a session from a JSONL file |
|
||||||
| `/share` | Upload as private GitHub gist with shareable HTML link |
|
| `/share` | Upload as private GitHub gist with shareable HTML link |
|
||||||
| `/reload` | Reload keybindings, extensions, skills, prompts, and context files |
|
| `/reload` | Reload keybindings, extensions, skills, prompts, themes, and context files |
|
||||||
| `/hotkeys` | Show all keyboard shortcuts |
|
| `/hotkeys` | Show all keyboard shortcuts |
|
||||||
| `/changelog` | Display version history |
|
| `/changelog` | Display version history |
|
||||||
| `/quit` | Quit pi |
|
| `/quit` | Quit pi |
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export default function (pi: ExtensionAPI) {
|
|||||||
// Command entrypoint for reload.
|
// Command entrypoint for reload.
|
||||||
// Treat reload as terminal for this handler.
|
// Treat reload as terminal for this handler.
|
||||||
pi.registerCommand("reload-runtime", {
|
pi.registerCommand("reload-runtime", {
|
||||||
description: "Reload extensions, skills, prompts, and themes",
|
description: "Reload extensions, skills, prompts, themes, and context files",
|
||||||
handler: async (_args, ctx) => {
|
handler: async (_args, ctx) => {
|
||||||
await ctx.reload();
|
await ctx.reload();
|
||||||
return;
|
return;
|
||||||
@@ -24,7 +24,7 @@ export default function (pi: ExtensionAPI) {
|
|||||||
pi.registerTool({
|
pi.registerTool({
|
||||||
name: "reload_runtime",
|
name: "reload_runtime",
|
||||||
label: "Reload Runtime",
|
label: "Reload Runtime",
|
||||||
description: "Reload extensions, skills, prompts, and themes",
|
description: "Reload extensions, skills, prompts, themes, and context files",
|
||||||
parameters: Type.Object({}),
|
parameters: Type.Object({}),
|
||||||
async execute() {
|
async execute() {
|
||||||
pi.sendUserMessage("/reload-runtime", { deliverAs: "followUp" });
|
pi.sendUserMessage("/reload-runtime", { deliverAs: "followUp" });
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ await session.prompt("Hello");
|
|||||||
| `thinkingLevel` | From settings/"off" | off, low, medium, high |
|
| `thinkingLevel` | From settings/"off" | off, low, medium, high |
|
||||||
| `tools` | `["read", "bash", "edit", "write"]` built-ins | Allowlist tool names across built-in, extension, and custom tools |
|
| `tools` | `["read", "bash", "edit", "write"]` built-ins | Allowlist tool names across built-in, extension, and custom tools |
|
||||||
| `customTools` | `[]` | Additional tool definitions |
|
| `customTools` | `[]` | Additional tool definitions |
|
||||||
| `resourceLoader` | DefaultResourceLoader | Resource loader for extensions, skills, prompts, themes |
|
| `resourceLoader` | DefaultResourceLoader | Resource loader for extensions, skills, prompts, themes, and context files |
|
||||||
| `sessionManager` | `SessionManager.create(cwd)` | Persistence |
|
| `sessionManager` | `SessionManager.create(cwd)` | Persistence |
|
||||||
| `settingsManager` | `SettingsManager.create(cwd, agentDir)` | Settings overrides |
|
| `settingsManager` | `SettingsManager.create(cwd, agentDir)` | Settings overrides |
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ export interface AgentSessionConfig {
|
|||||||
cwd: string;
|
cwd: string;
|
||||||
/** Models to cycle through with Ctrl+P (from --models flag) */
|
/** Models to cycle through with Ctrl+P (from --models flag) */
|
||||||
scopedModels?: Array<{ model: Model<any>; thinkingLevel?: ThinkingLevel }>;
|
scopedModels?: Array<{ model: Model<any>; thinkingLevel?: ThinkingLevel }>;
|
||||||
/** Resource loader for skills, prompts, themes, context files, system prompt */
|
/** Resource loader for extensions, skills, prompts, themes, context files, and system prompt */
|
||||||
resourceLoader: ResourceLoader;
|
resourceLoader: ResourceLoader;
|
||||||
/** SDK custom tools registered outside extensions */
|
/** SDK custom tools registered outside extensions */
|
||||||
customTools?: ToolDefinition[];
|
customTools?: ToolDefinition[];
|
||||||
|
|||||||
@@ -370,7 +370,7 @@ export interface ExtensionCommandContext extends ExtensionContext {
|
|||||||
options?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },
|
options?: { withSession?: (ctx: ReplacedSessionContext) => Promise<void> },
|
||||||
): Promise<{ cancelled: boolean }>;
|
): Promise<{ cancelled: boolean }>;
|
||||||
|
|
||||||
/** Reload extensions, skills, prompts, and themes. */
|
/** Reload extensions, skills, prompts, themes, and context files. */
|
||||||
reload(): Promise<void>;
|
reload(): Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,6 @@ export const BUILTIN_SLASH_COMMANDS: ReadonlyArray<BuiltinSlashCommand> = [
|
|||||||
{ name: "new", description: "Start a new session" },
|
{ name: "new", description: "Start a new session" },
|
||||||
{ name: "compact", description: "Manually compact the session context" },
|
{ name: "compact", description: "Manually compact the session context" },
|
||||||
{ name: "resume", description: "Resume a different session" },
|
{ name: "resume", description: "Resume a different session" },
|
||||||
{ name: "reload", description: "Reload keybindings, extensions, skills, prompts, and themes" },
|
{ name: "reload", description: "Reload keybindings, extensions, skills, prompts, themes, and context files" },
|
||||||
{ name: "quit", description: `Quit ${APP_NAME}` },
|
{ name: "quit", description: `Quit ${APP_NAME}` },
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -5247,7 +5247,11 @@ export class InteractiveMode {
|
|||||||
reloadBox.addChild(new DynamicBorder(borderColor));
|
reloadBox.addChild(new DynamicBorder(borderColor));
|
||||||
reloadBox.addChild(new Spacer(1));
|
reloadBox.addChild(new Spacer(1));
|
||||||
reloadBox.addChild(
|
reloadBox.addChild(
|
||||||
new Text(theme.fg("muted", "Reloading keybindings, extensions, skills, prompts, themes..."), 1, 0),
|
new Text(
|
||||||
|
theme.fg("muted", "Reloading keybindings, extensions, skills, prompts, themes, and context files..."),
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
reloadBox.addChild(new Spacer(1));
|
reloadBox.addChild(new Spacer(1));
|
||||||
reloadBox.addChild(new DynamicBorder(borderColor));
|
reloadBox.addChild(new DynamicBorder(borderColor));
|
||||||
@@ -5317,8 +5321,8 @@ export class InteractiveMode {
|
|||||||
}
|
}
|
||||||
this.showStatus(
|
this.showStatus(
|
||||||
savedImplicitProjectTrust
|
savedImplicitProjectTrust
|
||||||
? "Reloaded keybindings, extensions, skills, prompts, themes; saved project trust"
|
? "Reloaded keybindings, extensions, skills, prompts, themes, and context files; saved project trust"
|
||||||
: "Reloaded keybindings, extensions, skills, prompts, themes",
|
: "Reloaded keybindings, extensions, skills, prompts, themes, and context files",
|
||||||
);
|
);
|
||||||
dismissReloadBox(this.editor as Component);
|
dismissReloadBox(this.editor as Component);
|
||||||
reloadBoxDismissed = true;
|
reloadBoxDismissed = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user