@oh-my-pi/pi-coding-agent 9.2.4 → 9.3.0
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
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [9.2.5] - 2026-01-31
|
|
6
|
+
### Changed
|
|
7
|
+
|
|
8
|
+
- Clarified that user instructions about delegation override tool-use defaults
|
|
9
|
+
- Updated coordinator guidance to emphasize Task tool preference for substantial work with improved emphasis on context window limitations
|
|
10
|
+
- Enhanced `context` parameter documentation to require self-contained information for subagents, including file contents and user requirements
|
|
11
|
+
|
|
5
12
|
## [9.2.4] - 2026-01-31
|
|
6
13
|
### Fixed
|
|
7
14
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"ompConfig": {
|
|
@@ -79,12 +79,12 @@
|
|
|
79
79
|
"test": "bun test"
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@oh-my-pi/omp-stats": "9.
|
|
83
|
-
"@oh-my-pi/pi-agent-core": "9.
|
|
84
|
-
"@oh-my-pi/pi-ai": "9.
|
|
85
|
-
"@oh-my-pi/pi-natives": "9.
|
|
86
|
-
"@oh-my-pi/pi-tui": "9.
|
|
87
|
-
"@oh-my-pi/pi-utils": "9.
|
|
82
|
+
"@oh-my-pi/omp-stats": "9.3.0",
|
|
83
|
+
"@oh-my-pi/pi-agent-core": "9.3.0",
|
|
84
|
+
"@oh-my-pi/pi-ai": "9.3.0",
|
|
85
|
+
"@oh-my-pi/pi-natives": "9.3.0",
|
|
86
|
+
"@oh-my-pi/pi-tui": "9.3.0",
|
|
87
|
+
"@oh-my-pi/pi-utils": "9.3.0",
|
|
88
88
|
"@openai/agents": "^0.4.4",
|
|
89
89
|
"@sinclair/typebox": "^0.34.48",
|
|
90
90
|
"ajv": "^8.17.1",
|
|
@@ -51,6 +51,8 @@ Say what is true. Omit what is filler.
|
|
|
51
51
|
No apologies. No comfort where clarity belongs.
|
|
52
52
|
|
|
53
53
|
Quote only what illuminates. The rest is noise.
|
|
54
|
+
|
|
55
|
+
User instructions about _how_ to work (directly vs. delegation) override tool-use defaults.
|
|
54
56
|
</stance>
|
|
55
57
|
|
|
56
58
|
{{#if systemPromptCustomization}}
|
|
@@ -328,8 +330,8 @@ Write what you can defend.
|
|
|
328
330
|
{{#if isCoordinator}}
|
|
329
331
|
{{#has tools "task"}}
|
|
330
332
|
<critical id="coordinator">
|
|
331
|
-
As the coordinator,
|
|
332
|
-
|
|
333
|
+
As the coordinator, **ALWAYS prefer** delegation via Task tool for all SUBSTANTIAL work.
|
|
334
|
+
Your context window is limited—especially the output. Work in discrete steps and run each step using Task tool. Avoid putting substantial work in the main context when possible. Run multiple tasks in parallel whenever possible.
|
|
333
335
|
|
|
334
336
|
## Triggers requiring Task tool
|
|
335
337
|
- Editing 4+ files with no dependencies → `Task`
|
|
@@ -35,11 +35,12 @@ This matters. Be thorough.
|
|
|
35
35
|
4. **Always provide a `schema`** with typed properties. Avoid `{ "type": "string" }`—if data has any structure (list, fields, categories), model it. Plain text is almost never the right choice.
|
|
36
36
|
5. Assign distinct file scopes per task to avoid conflicts.
|
|
37
37
|
6. Trust the returned data, then verify with tools when correctness matters.
|
|
38
|
+
7. The `context` must be self-contained. Paste relevant file contents, quote user requirements verbatim, include data from prior tool results. "The output user showed" means nothing to a subagent.
|
|
38
39
|
</instruction>
|
|
39
40
|
|
|
40
41
|
<parameters>
|
|
41
42
|
- `agent`: Agent type to use for all tasks
|
|
42
|
-
- `context`: Template with `\{{placeholders}}` for multi-task. Each placeholder is filled from task args. `\{{id}}` and `\{{description}}` are always available.
|
|
43
|
+
- `context`: Template with `\{{placeholders}}` for multi-task. Must be self-contained—include all information the subagent needs. Subagents cannot see conversation history, images, or prior tool results. Reproduce relevant content directly: paste file snippets, quote user requirements, embed data. Each placeholder is filled from task args. `\{{id}}` and `\{{description}}` are always available.
|
|
43
44
|
- `isolated`: (optional) Run each task in its own git worktree and return patches; patches are applied only if all apply cleanly.
|
|
44
45
|
- `tasks`: Array of `{id, description, args}` - tasks to run in parallel
|
|
45
46
|
- `id`: Short CamelCase identifier (max 32 chars, e.g., "SessionStore", "LspRefactor")
|
package/src/system-prompt.ts
CHANGED
|
@@ -11,7 +11,7 @@ import chalk from "chalk";
|
|
|
11
11
|
import { contextFileCapability } from "./capability/context-file";
|
|
12
12
|
import { systemPromptCapability } from "./capability/system-prompt";
|
|
13
13
|
import { renderPromptTemplate } from "./config/prompt-templates";
|
|
14
|
-
import type
|
|
14
|
+
import { SettingsManager, type SkillsSettings } from "./config/settings-manager";
|
|
15
15
|
import { type ContextFile, loadCapability, type SystemPrompt as SystemPromptFile } from "./discovery";
|
|
16
16
|
import { loadSkills, type Skill } from "./extensibility/skills";
|
|
17
17
|
import customSystemPromptTemplate from "./prompts/system/custom-system-prompt.md" with { type: "text" };
|
|
@@ -573,11 +573,6 @@ async function getGpuModel(): Promise<string | null> {
|
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
|
|
576
|
-
function getShellName(): string {
|
|
577
|
-
const shell = firstNonEmpty([process.env.SHELL, process.env.ComSpec]);
|
|
578
|
-
return shell ?? "unknown";
|
|
579
|
-
}
|
|
580
|
-
|
|
581
576
|
function getTerminalName(): string {
|
|
582
577
|
const termProgram = process.env.TERM_PROGRAM;
|
|
583
578
|
const termProgramVersion = process.env.TERM_PROGRAM_VERSION;
|
|
@@ -765,6 +760,9 @@ async function getEnvironmentInfo(): Promise<Array<{ label: string; value: strin
|
|
|
765
760
|
await saveSystemInfoCache(sysInfo);
|
|
766
761
|
}
|
|
767
762
|
|
|
763
|
+
// Get the actual shell used for command execution (not $SHELL)
|
|
764
|
+
const shellConfig = await SettingsManager.getGlobalShellConfig();
|
|
765
|
+
|
|
768
766
|
return [
|
|
769
767
|
{ label: "OS", value: sysInfo.os },
|
|
770
768
|
{ label: "Distro", value: sysInfo.distro },
|
|
@@ -773,7 +771,7 @@ async function getEnvironmentInfo(): Promise<Array<{ label: string; value: strin
|
|
|
773
771
|
{ label: "CPU", value: sysInfo.cpu },
|
|
774
772
|
{ label: "GPU", value: sysInfo.gpu },
|
|
775
773
|
{ label: "Disk", value: sysInfo.disk },
|
|
776
|
-
{ label: "Shell", value:
|
|
774
|
+
{ label: "Shell", value: shellConfig.shell },
|
|
777
775
|
{ label: "Terminal", value: getTerminalName() },
|
|
778
776
|
{ label: "DE", value: getDesktopEnvironment() },
|
|
779
777
|
{ label: "WM", value: getWindowManager() },
|