@mariozechner/pi-coding-agent 0.49.2 → 0.50.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 +126 -1
- package/README.md +310 -1229
- package/dist/cli/args.d.ts +5 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +57 -22
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +53 -34
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +262 -67
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +8 -18
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +39 -55
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +2 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/export-html/template.css +9 -0
- package/dist/core/export-html/template.js +6 -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/loader.d.ts +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +10 -1
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +9 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +39 -12
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +112 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +9 -2
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +13 -0
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/model-registry.d.ts +42 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +154 -44
- 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 +3 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +129 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1148 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +6 -0
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +114 -54
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/resource-loader.d.ts +160 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +604 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +14 -105
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +52 -304
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +45 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +39 -16
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +107 -25
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +18 -10
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +126 -93
- package/dist/core/skills.js.map +1 -1
- package/dist/core/system-prompt.d.ts +3 -27
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +16 -103
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +2 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +4 -4
- package/dist/core/tools/read.js.map +1 -1
- package/dist/index.d.ts +12 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +209 -97
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +3 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +5 -3
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +5 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +29 -9
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +3 -2
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +4 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +3 -2
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +4 -2
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +468 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +3 -2
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +4 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +9 -0
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +3 -4
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +18 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +195 -87
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +12 -5
- package/dist/modes/interactive/components/tool-execution.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 -2
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +2 -2
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +2 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +47 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +566 -211
- 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 +8 -1
- package/dist/modes/interactive/theme/theme.d.ts +8 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +79 -28
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +25 -89
- 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 +32 -92
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/utils/git.d.ts +2 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +6 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/shell.d.ts +1 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +16 -2
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/docs/compaction.md +23 -21
- package/docs/custom-provider.md +538 -0
- package/docs/development.md +69 -0
- package/docs/extensions.md +180 -118
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/json.md +79 -0
- package/docs/keybindings.md +162 -0
- package/docs/models.md +193 -0
- package/docs/packages.md +163 -0
- package/docs/prompt-templates.md +67 -0
- package/docs/providers.md +147 -0
- package/docs/sdk.md +111 -178
- package/docs/session.md +167 -16
- package/docs/settings.md +216 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +111 -202
- package/docs/terminal-setup.md +65 -0
- package/docs/themes.md +295 -0
- package/docs/tui.md +36 -5
- package/docs/windows.md +17 -0
- package/examples/README.md +1 -0
- package/examples/extensions/README.md +24 -2
- package/examples/extensions/antigravity-image-gen.ts +413 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/doom-overlay/doom/build.sh +1 -1
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/02-custom-model.ts +3 -3
- package/examples/sdk/03-custom-prompt.ts +20 -9
- package/examples/sdk/04-skills.ts +26 -27
- package/examples/sdk/06-extensions.ts +15 -6
- package/examples/sdk/07-context-files.ts +22 -18
- package/examples/sdk/08-prompt-templates.ts +19 -14
- package/examples/sdk/09-api-keys-and-oauth.ts +5 -12
- package/examples/sdk/10-settings.ts +3 -3
- package/examples/sdk/12-full-control.ts +16 -7
- package/examples/sdk/README.md +24 -30
- package/package.json +4 -4
- package/docs/theme.md +0 -617
- package/examples/extensions/chalk-logger.ts +0 -26
|
@@ -5,20 +5,7 @@
|
|
|
5
5
|
* Discover, filter, merge, or replace them.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createAgentSession,
|
|
9
|
-
|
|
10
|
-
// Discover all skills from cwd/.pi/skills, ~/.pi/agent/skills, etc.
|
|
11
|
-
const { skills: allSkills, warnings } = discoverSkills();
|
|
12
|
-
console.log(
|
|
13
|
-
"Discovered skills:",
|
|
14
|
-
allSkills.map((s) => s.name),
|
|
15
|
-
);
|
|
16
|
-
if (warnings.length > 0) {
|
|
17
|
-
console.log("Warnings:", warnings);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Filter to specific skills
|
|
21
|
-
const filteredSkills = allSkills.filter((s) => s.name.includes("browser") || s.name.includes("search"));
|
|
8
|
+
import { createAgentSession, DefaultResourceLoader, SessionManager, type Skill } from "@mariozechner/pi-coding-agent";
|
|
22
9
|
|
|
23
10
|
// Or define custom skills inline
|
|
24
11
|
const customSkill: Skill = {
|
|
@@ -26,22 +13,34 @@ const customSkill: Skill = {
|
|
|
26
13
|
description: "Custom project instructions",
|
|
27
14
|
filePath: "/virtual/SKILL.md",
|
|
28
15
|
baseDir: "/virtual",
|
|
29
|
-
source: "
|
|
16
|
+
source: "path",
|
|
17
|
+
disableModelInvocation: false,
|
|
30
18
|
};
|
|
31
19
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
const loader = new DefaultResourceLoader({
|
|
21
|
+
skillsOverride: (current) => {
|
|
22
|
+
const filteredSkills = current.skills.filter((s) => s.name.includes("browser") || s.name.includes("search"));
|
|
23
|
+
return {
|
|
24
|
+
skills: [...filteredSkills, customSkill],
|
|
25
|
+
diagnostics: current.diagnostics,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
36
28
|
});
|
|
29
|
+
await loader.reload();
|
|
37
30
|
|
|
38
|
-
|
|
31
|
+
// Discover all skills from cwd/.pi/skills, ~/.pi/agent/skills, etc.
|
|
32
|
+
const { skills: allSkills, diagnostics } = loader.getSkills();
|
|
33
|
+
console.log(
|
|
34
|
+
"Discovered skills:",
|
|
35
|
+
allSkills.map((s) => s.name),
|
|
36
|
+
);
|
|
37
|
+
if (diagnostics.length > 0) {
|
|
38
|
+
console.log("Warnings:", diagnostics);
|
|
39
|
+
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
await createAgentSession({
|
|
42
|
+
resourceLoader: loader,
|
|
43
|
+
sessionManager: SessionManager.inMemory(),
|
|
44
|
+
});
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
// discoverSkills(process.cwd(), undefined, {
|
|
45
|
-
// ignoredSkills: ["browser-tools"], // glob patterns to exclude
|
|
46
|
-
// includeSkills: ["brave-*"], // glob patterns to include (empty = all)
|
|
47
|
-
// })
|
|
46
|
+
console.log("Session created with filtered skills");
|
|
@@ -13,16 +13,25 @@
|
|
|
13
13
|
* export default function (pi: ExtensionAPI) { ... }
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import { createAgentSession, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
16
|
+
import { createAgentSession, DefaultResourceLoader, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
17
17
|
|
|
18
18
|
// Extensions are discovered automatically from standard locations.
|
|
19
|
-
// You can also add paths via
|
|
20
|
-
// 1. settings.json: { "extensions": ["./my-extension.ts"] }
|
|
21
|
-
// 2. additionalExtensionPaths option (see below)
|
|
19
|
+
// You can also add paths via settings.json or DefaultResourceLoader options.
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
const { session } = await createAgentSession({
|
|
21
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
25
22
|
additionalExtensionPaths: ["./my-logging-extension.ts", "./my-safety-extension.ts"],
|
|
23
|
+
extensionFactories: [
|
|
24
|
+
(pi) => {
|
|
25
|
+
pi.on("agent_start", () => {
|
|
26
|
+
console.log("[Inline Extension] Agent starting");
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
await resourceLoader.reload();
|
|
32
|
+
|
|
33
|
+
const { session } = await createAgentSession({
|
|
34
|
+
resourceLoader,
|
|
26
35
|
sessionManager: SessionManager.inMemory(),
|
|
27
36
|
});
|
|
28
37
|
|
|
@@ -4,33 +4,37 @@
|
|
|
4
4
|
* Context files provide project-specific instructions loaded into the system prompt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createAgentSession,
|
|
7
|
+
import { createAgentSession, DefaultResourceLoader, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
// Disable context files entirely by returning an empty list in agentsFilesOverride.
|
|
10
|
+
const loader = new DefaultResourceLoader({
|
|
11
|
+
agentsFilesOverride: (current) => ({
|
|
12
|
+
agentsFiles: [
|
|
13
|
+
...current.agentsFiles,
|
|
14
|
+
{
|
|
15
|
+
path: "/virtual/AGENTS.md",
|
|
16
|
+
content: `# Project Guidelines
|
|
17
|
+
|
|
18
|
+
## Code Style
|
|
19
|
+
- Use TypeScript strict mode
|
|
20
|
+
- No any types
|
|
21
|
+
- Prefer const over let`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
await loader.reload();
|
|
8
27
|
|
|
9
28
|
// Discover AGENTS.md files walking up from cwd
|
|
10
|
-
const discovered =
|
|
29
|
+
const discovered = loader.getAgentsFiles().agentsFiles;
|
|
11
30
|
console.log("Discovered context files:");
|
|
12
31
|
for (const file of discovered) {
|
|
13
32
|
console.log(` - ${file.path} (${file.content.length} chars)`);
|
|
14
33
|
}
|
|
15
34
|
|
|
16
|
-
// Use custom context files
|
|
17
35
|
await createAgentSession({
|
|
18
|
-
|
|
19
|
-
...discovered,
|
|
20
|
-
{
|
|
21
|
-
path: "/virtual/AGENTS.md",
|
|
22
|
-
content: `# Project Guidelines
|
|
23
|
-
|
|
24
|
-
## Code Style
|
|
25
|
-
- Use TypeScript strict mode
|
|
26
|
-
- No any types
|
|
27
|
-
- Prefer const over let`,
|
|
28
|
-
},
|
|
29
|
-
],
|
|
36
|
+
resourceLoader: loader,
|
|
30
37
|
sessionManager: SessionManager.inMemory(),
|
|
31
38
|
});
|
|
32
39
|
|
|
33
40
|
console.log(`Session created with ${discovered.length + 1} context files`);
|
|
34
|
-
|
|
35
|
-
// Disable context files:
|
|
36
|
-
// contextFiles: []
|
|
@@ -6,23 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
createAgentSession,
|
|
9
|
-
|
|
9
|
+
DefaultResourceLoader,
|
|
10
10
|
type PromptTemplate,
|
|
11
11
|
SessionManager,
|
|
12
12
|
} from "@mariozechner/pi-coding-agent";
|
|
13
13
|
|
|
14
|
-
// Discover templates from cwd/.pi/prompts/ and ~/.pi/agent/prompts/
|
|
15
|
-
const discovered = discoverPromptTemplates();
|
|
16
|
-
console.log("Discovered prompt templates:");
|
|
17
|
-
for (const template of discovered) {
|
|
18
|
-
console.log(` /${template.name}: ${template.description}`);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
14
|
// Define custom templates
|
|
22
15
|
const deployTemplate: PromptTemplate = {
|
|
23
16
|
name: "deploy",
|
|
24
17
|
description: "Deploy the application",
|
|
25
|
-
source: "
|
|
18
|
+
source: "path",
|
|
19
|
+
filePath: "/virtual/prompts/deploy.md",
|
|
26
20
|
content: `# Deploy Instructions
|
|
27
21
|
|
|
28
22
|
1. Build: npm run build
|
|
@@ -30,13 +24,24 @@ const deployTemplate: PromptTemplate = {
|
|
|
30
24
|
3. Deploy: npm run deploy`,
|
|
31
25
|
};
|
|
32
26
|
|
|
33
|
-
|
|
27
|
+
const loader = new DefaultResourceLoader({
|
|
28
|
+
promptsOverride: (current) => ({
|
|
29
|
+
prompts: [...current.prompts, deployTemplate],
|
|
30
|
+
diagnostics: current.diagnostics,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
await loader.reload();
|
|
34
|
+
|
|
35
|
+
// Discover templates from cwd/.pi/prompts/ and ~/.pi/agent/prompts/
|
|
36
|
+
const discovered = loader.getPrompts().prompts;
|
|
37
|
+
console.log("Discovered prompt templates:");
|
|
38
|
+
for (const template of discovered) {
|
|
39
|
+
console.log(` /${template.name}: ${template.description}`);
|
|
40
|
+
}
|
|
41
|
+
|
|
34
42
|
await createAgentSession({
|
|
35
|
-
|
|
43
|
+
resourceLoader: loader,
|
|
36
44
|
sessionManager: SessionManager.inMemory(),
|
|
37
45
|
});
|
|
38
46
|
|
|
39
47
|
console.log(`Session created with ${discovered.length + 1} prompt templates`);
|
|
40
|
-
|
|
41
|
-
// Disable prompt templates:
|
|
42
|
-
// promptTemplates: []
|
|
@@ -4,19 +4,12 @@
|
|
|
4
4
|
* Configure API key resolution via AuthStorage and ModelRegistry.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
AuthStorage,
|
|
9
|
-
createAgentSession,
|
|
10
|
-
discoverAuthStorage,
|
|
11
|
-
discoverModels,
|
|
12
|
-
ModelRegistry,
|
|
13
|
-
SessionManager,
|
|
14
|
-
} from "@mariozechner/pi-coding-agent";
|
|
7
|
+
import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@mariozechner/pi-coding-agent";
|
|
15
8
|
|
|
16
|
-
// Default:
|
|
17
|
-
//
|
|
18
|
-
const authStorage =
|
|
19
|
-
const modelRegistry =
|
|
9
|
+
// Default: AuthStorage uses ~/.pi/agent/auth.json
|
|
10
|
+
// ModelRegistry loads built-in + custom models from ~/.pi/agent/models.json
|
|
11
|
+
const authStorage = new AuthStorage();
|
|
12
|
+
const modelRegistry = new ModelRegistry(authStorage);
|
|
20
13
|
|
|
21
14
|
await createAgentSession({
|
|
22
15
|
sessionManager: SessionManager.inMemory(),
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Override settings using SettingsManager.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createAgentSession,
|
|
7
|
+
import { createAgentSession, SessionManager, SettingsManager } from "@mariozechner/pi-coding-agent";
|
|
8
8
|
|
|
9
9
|
// Load current settings (merged global + project)
|
|
10
|
-
const
|
|
11
|
-
console.log("Current settings:", JSON.stringify(
|
|
10
|
+
const settingsManagerFromDisk = SettingsManager.create();
|
|
11
|
+
console.log("Current settings:", JSON.stringify(settingsManagerFromDisk.getGlobalSettings(), null, 2));
|
|
12
12
|
|
|
13
13
|
// Override specific settings
|
|
14
14
|
const settingsManager = SettingsManager.create();
|
|
@@ -13,8 +13,10 @@ import {
|
|
|
13
13
|
AuthStorage,
|
|
14
14
|
createAgentSession,
|
|
15
15
|
createBashTool,
|
|
16
|
+
createExtensionRuntime,
|
|
16
17
|
createReadTool,
|
|
17
18
|
ModelRegistry,
|
|
19
|
+
type ResourceLoader,
|
|
18
20
|
SessionManager,
|
|
19
21
|
SettingsManager,
|
|
20
22
|
} from "@mariozechner/pi-coding-agent";
|
|
@@ -42,6 +44,19 @@ const settingsManager = SettingsManager.inMemory({
|
|
|
42
44
|
// When using a custom cwd with explicit tools, use the factory functions
|
|
43
45
|
const cwd = process.cwd();
|
|
44
46
|
|
|
47
|
+
const resourceLoader: ResourceLoader = {
|
|
48
|
+
getExtensions: () => ({ extensions: [], errors: [], runtime: createExtensionRuntime() }),
|
|
49
|
+
getSkills: () => ({ skills: [], diagnostics: [] }),
|
|
50
|
+
getPrompts: () => ({ prompts: [], diagnostics: [] }),
|
|
51
|
+
getThemes: () => ({ themes: [], diagnostics: [] }),
|
|
52
|
+
getAgentsFiles: () => ({ agentsFiles: [] }),
|
|
53
|
+
getSystemPrompt: () => `You are a minimal assistant.
|
|
54
|
+
Available: read, bash. Be concise.`,
|
|
55
|
+
getAppendSystemPrompt: () => [],
|
|
56
|
+
getPathMetadata: () => new Map(),
|
|
57
|
+
reload: async () => {},
|
|
58
|
+
};
|
|
59
|
+
|
|
45
60
|
const { session } = await createAgentSession({
|
|
46
61
|
cwd,
|
|
47
62
|
agentDir: "/tmp/my-agent",
|
|
@@ -49,15 +64,9 @@ const { session } = await createAgentSession({
|
|
|
49
64
|
thinkingLevel: "off",
|
|
50
65
|
authStorage,
|
|
51
66
|
modelRegistry,
|
|
52
|
-
|
|
53
|
-
Available: read, bash. Be concise.`,
|
|
67
|
+
resourceLoader,
|
|
54
68
|
// Use factory functions with the same cwd to ensure path resolution works correctly
|
|
55
69
|
tools: [createReadTool(cwd), createBashTool(cwd)],
|
|
56
|
-
// Pass empty array to disable extension discovery, or provide inline factories
|
|
57
|
-
extensions: [],
|
|
58
|
-
skills: [],
|
|
59
|
-
contextFiles: [],
|
|
60
|
-
promptTemplates: [],
|
|
61
70
|
sessionManager: SessionManager.inMemory(),
|
|
62
71
|
settingsManager,
|
|
63
72
|
});
|
package/examples/sdk/README.md
CHANGED
|
@@ -33,24 +33,18 @@ import { getModel } from "@mariozechner/pi-ai";
|
|
|
33
33
|
import {
|
|
34
34
|
AuthStorage,
|
|
35
35
|
createAgentSession,
|
|
36
|
-
|
|
37
|
-
discoverModels,
|
|
38
|
-
discoverSkills,
|
|
39
|
-
discoverExtensions,
|
|
40
|
-
discoverContextFiles,
|
|
41
|
-
discoverPromptTemplates,
|
|
42
|
-
loadSettings,
|
|
43
|
-
buildSystemPrompt,
|
|
36
|
+
DefaultResourceLoader,
|
|
44
37
|
ModelRegistry,
|
|
45
38
|
SessionManager,
|
|
39
|
+
SettingsManager,
|
|
46
40
|
codingTools,
|
|
47
41
|
readOnlyTools,
|
|
48
42
|
readTool, bashTool, editTool, writeTool,
|
|
49
43
|
} from "@mariozechner/pi-coding-agent";
|
|
50
44
|
|
|
51
45
|
// Auth and models setup
|
|
52
|
-
const authStorage =
|
|
53
|
-
const modelRegistry =
|
|
46
|
+
const authStorage = new AuthStorage();
|
|
47
|
+
const modelRegistry = new ModelRegistry(authStorage);
|
|
54
48
|
|
|
55
49
|
// Minimal
|
|
56
50
|
const { session } = await createAgentSession({ authStorage, modelRegistry });
|
|
@@ -60,11 +54,11 @@ const model = getModel("anthropic", "claude-opus-4-5");
|
|
|
60
54
|
const { session } = await createAgentSession({ model, thinkingLevel: "high", authStorage, modelRegistry });
|
|
61
55
|
|
|
62
56
|
// Modify prompt
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
authStorage,
|
|
66
|
-
modelRegistry,
|
|
57
|
+
const loader = new DefaultResourceLoader({
|
|
58
|
+
systemPromptOverride: (base) => `${base}\n\nBe concise.`,
|
|
67
59
|
});
|
|
60
|
+
await loader.reload();
|
|
61
|
+
const { session } = await createAgentSession({ resourceLoader: loader, authStorage, modelRegistry });
|
|
68
62
|
|
|
69
63
|
// Read-only
|
|
70
64
|
const { session } = await createAgentSession({ tools: readOnlyTools, authStorage, modelRegistry });
|
|
@@ -81,18 +75,24 @@ const customAuth = new AuthStorage("/my/app/auth.json");
|
|
|
81
75
|
customAuth.setRuntimeApiKey("anthropic", process.env.MY_KEY!);
|
|
82
76
|
const customRegistry = new ModelRegistry(customAuth);
|
|
83
77
|
|
|
78
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
79
|
+
systemPromptOverride: () => "You are helpful.",
|
|
80
|
+
extensionFactories: [myExtension],
|
|
81
|
+
skillsOverride: () => ({ skills: [], diagnostics: [] }),
|
|
82
|
+
agentsFilesOverride: () => ({ agentsFiles: [] }),
|
|
83
|
+
promptsOverride: () => ({ prompts: [], diagnostics: [] }),
|
|
84
|
+
});
|
|
85
|
+
await resourceLoader.reload();
|
|
86
|
+
|
|
84
87
|
const { session } = await createAgentSession({
|
|
85
88
|
model,
|
|
86
89
|
authStorage: customAuth,
|
|
87
90
|
modelRegistry: customRegistry,
|
|
88
|
-
|
|
91
|
+
resourceLoader,
|
|
89
92
|
tools: [readTool, bashTool],
|
|
90
93
|
customTools: [{ tool: myTool }],
|
|
91
|
-
extensions: [{ factory: myExtension }],
|
|
92
|
-
skills: [],
|
|
93
|
-
contextFiles: [],
|
|
94
|
-
promptTemplates: [],
|
|
95
94
|
sessionManager: SessionManager.inMemory(),
|
|
95
|
+
settingsManager: SettingsManager.inMemory(),
|
|
96
96
|
});
|
|
97
97
|
|
|
98
98
|
// Run prompts
|
|
@@ -108,23 +108,17 @@ await session.prompt("Hello");
|
|
|
108
108
|
|
|
109
109
|
| Option | Default | Description |
|
|
110
110
|
|--------|---------|-------------|
|
|
111
|
-
| `authStorage` | `
|
|
112
|
-
| `modelRegistry` | `
|
|
111
|
+
| `authStorage` | `new AuthStorage()` | Credential storage |
|
|
112
|
+
| `modelRegistry` | `new ModelRegistry(authStorage)` | Model registry |
|
|
113
113
|
| `cwd` | `process.cwd()` | Working directory |
|
|
114
114
|
| `agentDir` | `~/.pi/agent` | Config directory |
|
|
115
115
|
| `model` | From settings/first available | Model to use |
|
|
116
116
|
| `thinkingLevel` | From settings/"off" | off, low, medium, high |
|
|
117
|
-
| `systemPrompt` | Discovered | String or `(default) => modified` |
|
|
118
117
|
| `tools` | `codingTools` | Built-in tools |
|
|
119
|
-
| `customTools` |
|
|
120
|
-
| `
|
|
121
|
-
| `extensions` | Discovered | Replaces discovery |
|
|
122
|
-
| `additionalExtensionPaths` | `[]` | Merge with discovery |
|
|
123
|
-
| `skills` | Discovered | Skills for prompt |
|
|
124
|
-
| `contextFiles` | Discovered | AGENTS.md files |
|
|
125
|
-
| `promptTemplates` | Discovered | Prompt templates (slash commands) |
|
|
118
|
+
| `customTools` | `[]` | Additional tool definitions |
|
|
119
|
+
| `resourceLoader` | DefaultResourceLoader | Resource loader for extensions, skills, prompts, themes |
|
|
126
120
|
| `sessionManager` | `SessionManager.create(cwd)` | Persistence |
|
|
127
|
-
| `settingsManager` |
|
|
121
|
+
| `settingsManager` | `SettingsManager.create(cwd, agentDir)` | Settings overrides |
|
|
128
122
|
|
|
129
123
|
## Events
|
|
130
124
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mariozechner/pi-coding-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.0",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"piConfig": {
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@mariozechner/clipboard": "^0.3.0",
|
|
42
42
|
"@mariozechner/jiti": "^2.6.2",
|
|
43
|
-
"@mariozechner/pi-agent-core": "^0.
|
|
44
|
-
"@mariozechner/pi-ai": "^0.
|
|
45
|
-
"@mariozechner/pi-tui": "^0.
|
|
43
|
+
"@mariozechner/pi-agent-core": "^0.50.0",
|
|
44
|
+
"@mariozechner/pi-ai": "^0.50.0",
|
|
45
|
+
"@mariozechner/pi-tui": "^0.50.0",
|
|
46
46
|
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
47
47
|
"chalk": "^5.5.0",
|
|
48
48
|
"cli-highlight": "^2.1.11",
|