@codex-infinity/pi-infinity 0.61.2 → 0.61.3
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 +9 -0
- package/dist/core/agent-session.d.ts +9 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +36 -23
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/export-html/index.d.ts +2 -2
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js +2 -2
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts +2 -2
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +41 -16
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/types.d.ts +31 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js +2 -8
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +3 -38
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/bash.d.ts +19 -9
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +154 -59
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +14 -2
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +92 -21
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +11 -4
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +76 -27
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +15 -4
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +83 -29
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +57 -19
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +50 -26
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts +9 -3
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +67 -13
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +10 -3
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +94 -45
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts +21 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +49 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +30 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/write.d.ts +9 -3
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +161 -27
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +20 -3
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +15 -40
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +120 -670
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +4 -6
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +19 -6
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/docs/extensions.md +41 -26
- package/docs/tui.md +2 -2
- package/examples/extensions/built-in-tool-renderer.ts +8 -8
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
- package/examples/extensions/minimal-mode.ts +14 -14
- package/examples/extensions/question.ts +2 -2
- package/examples/extensions/questionnaire.ts +2 -2
- package/examples/extensions/subagent/index.ts +2 -2
- package/examples/extensions/todo.ts +2 -2
- package/examples/extensions/truncated-tool.ts +2 -2
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +4 -4
|
@@ -29,7 +29,8 @@ import { expandPromptTemplate } from "./prompt-templates.js";
|
|
|
29
29
|
import { CURRENT_SESSION_VERSION, getLatestCompactionEntry } from "./session-manager.js";
|
|
30
30
|
import { BUILTIN_SLASH_COMMANDS } from "./slash-commands.js";
|
|
31
31
|
import { buildSystemPrompt } from "./system-prompt.js";
|
|
32
|
-
import {
|
|
32
|
+
import { createAllToolDefinitions } from "./tools/index.js";
|
|
33
|
+
import { createToolDefinitionFromAgentTool, wrapToolDefinition } from "./tools/tool-definition-wrapper.js";
|
|
33
34
|
/**
|
|
34
35
|
* Parse a skill block from message text.
|
|
35
36
|
* Returns null if the text doesn't contain a skill block.
|
|
@@ -85,9 +86,10 @@ export class AgentSession {
|
|
|
85
86
|
// Extension system
|
|
86
87
|
this._extensionRunner = undefined;
|
|
87
88
|
this._turnIndex = 0;
|
|
88
|
-
this.
|
|
89
|
+
this._baseToolDefinitions = new Map();
|
|
89
90
|
// Tool registry for extension getTools/setTools
|
|
90
91
|
this._toolRegistry = new Map();
|
|
92
|
+
this._toolDefinitions = new Map();
|
|
91
93
|
this._toolPromptSnippets = new Map();
|
|
92
94
|
this._toolPromptGuidelines = new Map();
|
|
93
95
|
// Base system prompt (without extension appends) - used to apply fresh appends each turn
|
|
@@ -484,12 +486,15 @@ export class AgentSession {
|
|
|
484
486
|
* Get all configured tools with name, description, and parameter schema.
|
|
485
487
|
*/
|
|
486
488
|
getAllTools() {
|
|
487
|
-
return Array.from(this.
|
|
489
|
+
return Array.from(this._toolDefinitions.values()).map((t) => ({
|
|
488
490
|
name: t.name,
|
|
489
491
|
description: t.description,
|
|
490
492
|
parameters: t.parameters,
|
|
491
493
|
}));
|
|
492
494
|
}
|
|
495
|
+
getToolDefinition(name) {
|
|
496
|
+
return this._toolDefinitions.get(name);
|
|
497
|
+
}
|
|
493
498
|
/**
|
|
494
499
|
* Set active tools by name.
|
|
495
500
|
* Only tools in the registry can be enabled. Unknown tool names are ignored.
|
|
@@ -1763,22 +1768,30 @@ export class AgentSession {
|
|
|
1763
1768
|
...registeredTools,
|
|
1764
1769
|
...this._customTools.map((def) => ({ definition: def, extensionPath: "<sdk>" })),
|
|
1765
1770
|
];
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1771
|
+
const definitionRegistry = new Map(this._baseToolDefinitions);
|
|
1772
|
+
for (const { definition } of allCustomTools) {
|
|
1773
|
+
definitionRegistry.set(definition.name, definition);
|
|
1774
|
+
}
|
|
1775
|
+
this._toolDefinitions = definitionRegistry;
|
|
1776
|
+
this._toolPromptSnippets = new Map(Array.from(definitionRegistry.values())
|
|
1777
|
+
.map((definition) => {
|
|
1778
|
+
const snippet = this._normalizePromptSnippet(definition.promptSnippet);
|
|
1779
|
+
return snippet ? [definition.name, snippet] : undefined;
|
|
1770
1780
|
})
|
|
1771
1781
|
.filter((entry) => entry !== undefined));
|
|
1772
|
-
this._toolPromptGuidelines = new Map(
|
|
1773
|
-
.map((
|
|
1774
|
-
const guidelines = this._normalizePromptGuidelines(
|
|
1775
|
-
return guidelines.length > 0 ? [
|
|
1782
|
+
this._toolPromptGuidelines = new Map(Array.from(definitionRegistry.values())
|
|
1783
|
+
.map((definition) => {
|
|
1784
|
+
const guidelines = this._normalizePromptGuidelines(definition.promptGuidelines);
|
|
1785
|
+
return guidelines.length > 0 ? [definition.name, guidelines] : undefined;
|
|
1776
1786
|
})
|
|
1777
1787
|
.filter((entry) => entry !== undefined));
|
|
1778
1788
|
const wrappedExtensionTools = this._extensionRunner
|
|
1779
1789
|
? wrapRegisteredTools(allCustomTools, this._extensionRunner)
|
|
1780
1790
|
: [];
|
|
1781
|
-
const toolRegistry = new Map(this.
|
|
1791
|
+
const toolRegistry = new Map(Array.from(this._baseToolDefinitions.values()).map((definition) => [
|
|
1792
|
+
definition.name,
|
|
1793
|
+
wrapToolDefinition(definition),
|
|
1794
|
+
]));
|
|
1782
1795
|
for (const tool of wrappedExtensionTools) {
|
|
1783
1796
|
toolRegistry.set(tool.name, tool);
|
|
1784
1797
|
}
|
|
@@ -1803,13 +1816,16 @@ export class AgentSession {
|
|
|
1803
1816
|
_buildRuntime(options) {
|
|
1804
1817
|
const autoResizeImages = this.settingsManager.getImageAutoResize();
|
|
1805
1818
|
const shellCommandPrefix = this.settingsManager.getShellCommandPrefix();
|
|
1806
|
-
const
|
|
1807
|
-
? this._baseToolsOverride
|
|
1808
|
-
|
|
1819
|
+
const baseToolDefinitions = this._baseToolsOverride
|
|
1820
|
+
? Object.fromEntries(Object.entries(this._baseToolsOverride).map(([name, tool]) => [
|
|
1821
|
+
name,
|
|
1822
|
+
createToolDefinitionFromAgentTool(tool),
|
|
1823
|
+
]))
|
|
1824
|
+
: createAllToolDefinitions(this._cwd, {
|
|
1809
1825
|
read: { autoResizeImages },
|
|
1810
1826
|
bash: { commandPrefix: shellCommandPrefix },
|
|
1811
1827
|
});
|
|
1812
|
-
this.
|
|
1828
|
+
this._baseToolDefinitions = new Map(Object.entries(baseToolDefinitions).map(([name, tool]) => [name, tool]));
|
|
1813
1829
|
const extensionsResult = this._resourceLoader.getExtensions();
|
|
1814
1830
|
if (options.flagValues) {
|
|
1815
1831
|
for (const [name, value] of options.flagValues) {
|
|
@@ -2526,13 +2542,10 @@ export class AgentSession {
|
|
|
2526
2542
|
async exportToHtml(outputPath) {
|
|
2527
2543
|
const themeName = this.settingsManager.getTheme();
|
|
2528
2544
|
// Create tool renderer if we have an extension runner (for custom tool HTML rendering)
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
theme,
|
|
2534
|
-
});
|
|
2535
|
-
}
|
|
2545
|
+
const toolRenderer = createToolHtmlRenderer({
|
|
2546
|
+
getToolDefinition: (name) => this.getToolDefinition(name),
|
|
2547
|
+
theme,
|
|
2548
|
+
});
|
|
2536
2549
|
return await exportSessionToHtml(this.sessionManager, this.state, {
|
|
2537
2550
|
outputPath,
|
|
2538
2551
|
themeName,
|