@caupulican/pi-adaptative 0.76.1 → 0.77.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 +55 -0
- package/README.md +9 -0
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +23 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +4 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +25 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/bash-executor.d.ts +2 -0
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +26 -0
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +1 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +8 -2
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +7 -5
- 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.map +1 -1
- package/dist/core/model-registry.js +65 -13
- 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 +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts +9 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js +134 -11
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/sdk.d.ts +2 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +4 -5
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -5
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +42 -17
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +0 -3
- 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 +175 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -0
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-encoding-policy.d.ts +19 -0
- package/dist/core/tools/file-encoding-policy.d.ts.map +1 -0
- package/dist/core/tools/file-encoding-policy.js +54 -0
- package/dist/core/tools/file-encoding-policy.js.map +1 -0
- package/dist/core/tools/find.d.ts +1 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +77 -60
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/git-filter.d.ts +41 -0
- package/dist/core/tools/git-filter.d.ts.map +1 -0
- package/dist/core/tools/git-filter.js +660 -0
- package/dist/core/tools/git-filter.js.map +1 -0
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +28 -3
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/ls.d.ts +7 -5
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +39 -5
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +3 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +98 -13
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/write.d.ts +2 -0
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +23 -3
- package/dist/core/tools/write.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +15 -2
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +118 -1
- package/dist/migrations.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 +2 -4
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +51 -6
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +10 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/docs/custom-provider.md +13 -10
- package/docs/extensions.md +12 -6
- package/docs/models.md +25 -12
- package/docs/providers.md +13 -5
- package/docs/quickstart.md +1 -0
- package/docs/rpc.md +2 -1
- package/docs/sdk.md +6 -0
- package/docs/session-format.md +1 -1
- package/docs/sessions.md +8 -0
- package/docs/usage.md +9 -0
- package/examples/extensions/README.md +1 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +1 -1
- 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/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +56 -56
- package/package.json +5 -5
|
@@ -95,6 +95,7 @@ export class AgentSession {
|
|
|
95
95
|
_extensionRunnerRef;
|
|
96
96
|
_initialActiveToolNames;
|
|
97
97
|
_allowedToolNames;
|
|
98
|
+
_excludedToolNames;
|
|
98
99
|
_baseToolsOverride;
|
|
99
100
|
_sessionStartEvent;
|
|
100
101
|
_extensionUIContext;
|
|
@@ -125,6 +126,7 @@ export class AgentSession {
|
|
|
125
126
|
this._extensionRunnerRef = config.extensionRunnerRef;
|
|
126
127
|
this._initialActiveToolNames = config.initialActiveToolNames;
|
|
127
128
|
this._allowedToolNames = config.allowedToolNames ? new Set(config.allowedToolNames) : undefined;
|
|
129
|
+
this._excludedToolNames = config.excludedToolNames ? new Set(config.excludedToolNames) : undefined;
|
|
128
130
|
this._baseToolsOverride = config.baseToolsOverride;
|
|
129
131
|
this._sessionStartEvent = config.sessionStartEvent ?? { type: "session_start", reason: "startup" };
|
|
130
132
|
// Always subscribe to agent events for internal handling
|
|
@@ -540,6 +542,16 @@ export class AgentSession {
|
|
|
540
542
|
* Call this when completely done with the session.
|
|
541
543
|
*/
|
|
542
544
|
dispose() {
|
|
545
|
+
try {
|
|
546
|
+
this.abortRetry();
|
|
547
|
+
this.abortCompaction();
|
|
548
|
+
this.abortBranchSummary();
|
|
549
|
+
this.abortBash();
|
|
550
|
+
this.agent.abort();
|
|
551
|
+
}
|
|
552
|
+
catch {
|
|
553
|
+
// Dispose must succeed even if an abort hook throws.
|
|
554
|
+
}
|
|
543
555
|
this._extensionRunner.invalidate("This extension ctx is stale after session replacement or reload. Do not use a captured pi or command ctx after ctx.newSession(), ctx.fork(), ctx.switchSession(), or ctx.reload(). For newSession, fork, and switchSession, move post-replacement work into withSession and use the ctx passed to withSession. For reload, do not use the old ctx after await ctx.reload().");
|
|
544
556
|
this._disconnectFromAgent();
|
|
545
557
|
this._eventListeners = [];
|
|
@@ -580,13 +592,14 @@ export class AgentSession {
|
|
|
580
592
|
return this.agent.state.tools.map((t) => t.name);
|
|
581
593
|
}
|
|
582
594
|
/**
|
|
583
|
-
* Get all configured tools with name, description, parameter schema, and source metadata.
|
|
595
|
+
* Get all configured tools with name, description, parameter schema, prompt guidelines, and source metadata.
|
|
584
596
|
*/
|
|
585
597
|
getAllTools() {
|
|
586
598
|
return Array.from(this._toolDefinitions.values()).map(({ definition, sourceInfo }) => ({
|
|
587
599
|
name: definition.name,
|
|
588
600
|
description: definition.description,
|
|
589
601
|
parameters: definition.parameters,
|
|
602
|
+
promptGuidelines: definition.promptGuidelines,
|
|
590
603
|
sourceInfo,
|
|
591
604
|
}));
|
|
592
605
|
}
|
|
@@ -742,7 +755,12 @@ export class AgentSession {
|
|
|
742
755
|
});
|
|
743
756
|
this._retryAttempt = 0;
|
|
744
757
|
}
|
|
745
|
-
|
|
758
|
+
if (await this._checkCompaction(msg)) {
|
|
759
|
+
return true;
|
|
760
|
+
}
|
|
761
|
+
// The agent loop drains both queues before emitting agent_end. Any messages
|
|
762
|
+
// here were queued by agent_end extension handlers and need a continuation.
|
|
763
|
+
return this.agent.hasQueuedMessages();
|
|
746
764
|
}
|
|
747
765
|
/**
|
|
748
766
|
* Send a prompt to the agent.
|
|
@@ -782,7 +800,7 @@ export class AgentSession {
|
|
|
782
800
|
let currentText = text;
|
|
783
801
|
let currentImages = options?.images;
|
|
784
802
|
if (this._extensionRunner.hasHandlers("input")) {
|
|
785
|
-
const inputResult = await this._extensionRunner.emitInput(currentText, currentImages, options?.source ?? "interactive");
|
|
803
|
+
const inputResult = await this._extensionRunner.emitInput(currentText, currentImages, options?.source ?? "interactive", this.isStreaming ? options?.streamingBehavior : undefined);
|
|
786
804
|
if (inputResult.action === "handled") {
|
|
787
805
|
preflightResult?.(true);
|
|
788
806
|
return;
|
|
@@ -1924,7 +1942,8 @@ export class AgentSession {
|
|
|
1924
1942
|
const previousRegistryNames = new Set(this._toolRegistry.keys());
|
|
1925
1943
|
const previousActiveToolNames = this.getActiveToolNames();
|
|
1926
1944
|
const allowedToolNames = this._allowedToolNames;
|
|
1927
|
-
const
|
|
1945
|
+
const excludedToolNames = this._excludedToolNames;
|
|
1946
|
+
const isAllowedTool = (name) => (!allowedToolNames || allowedToolNames.has(name)) && !excludedToolNames?.has(name);
|
|
1928
1947
|
const registeredTools = this._extensionRunner.getAllRegisteredTools();
|
|
1929
1948
|
const allCustomTools = [
|
|
1930
1949
|
...registeredTools,
|
|
@@ -2161,10 +2180,12 @@ export class AgentSession {
|
|
|
2161
2180
|
const prefix = this.settingsManager.getShellCommandPrefix();
|
|
2162
2181
|
const shellPath = this.settingsManager.getShellPath();
|
|
2163
2182
|
const resolvedCommand = prefix ? `${prefix}\n${command}` : command;
|
|
2183
|
+
const enableGitFilter = !options?.operations && !prefix && !shellPath;
|
|
2164
2184
|
try {
|
|
2165
2185
|
const result = await executeBashWithOperations(resolvedCommand, this.sessionManager.getCwd(), options?.operations ?? createLocalBashOperations({ shellPath }), {
|
|
2166
2186
|
onChunk,
|
|
2167
2187
|
signal: this._bashAbortController.signal,
|
|
2188
|
+
enableGitFilter,
|
|
2168
2189
|
});
|
|
2169
2190
|
this.recordBashResult(command, result, options);
|
|
2170
2191
|
return result;
|