@oh-my-pi/pi-coding-agent 14.5.9 → 14.5.11
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 +50 -0
- package/package.json +7 -15
- package/scripts/build-binary.ts +1 -1
- package/src/cli/update-cli.ts +25 -1
- package/src/config/model-registry.ts +21 -19
- package/src/config/settings-schema.ts +11 -16
- package/src/discovery/claude-plugins.ts +28 -3
- package/src/edit/modes/atom.ts +50 -19
- package/src/edit/modes/hashline.ts +171 -110
- package/src/export/html/template.generated.ts +1 -1
- package/src/export/html/template.js +14 -2
- package/src/extensibility/extensions/runner.ts +34 -1
- package/src/extensibility/extensions/types.ts +8 -0
- package/src/internal-urls/docs-index.generated.ts +54 -54
- package/src/lsp/client.ts +27 -35
- package/src/memories/index.ts +5 -0
- package/src/modes/components/settings-defs.ts +1 -1
- package/src/modes/controllers/selector-controller.ts +2 -2
- package/src/modes/controllers/todo-command-controller.ts +22 -74
- package/src/modes/interactive-mode.ts +36 -9
- package/src/modes/theme/theme.ts +10 -1
- package/src/modes/types.ts +1 -3
- package/src/modes/utils/ui-helpers.ts +19 -6
- package/src/prompts/system/auto-continue.md +1 -0
- package/src/prompts/system/eager-todo.md +1 -1
- package/src/prompts/tools/github.md +3 -3
- package/src/prompts/tools/todo-write.md +19 -19
- package/src/sdk.ts +13 -2
- package/src/session/agent-session.ts +196 -96
- package/src/session/session-manager.ts +19 -2
- package/src/tools/bash.ts +9 -4
- package/src/tools/gh.ts +267 -119
- package/src/tools/todo-write.ts +157 -195
- package/src/utils/git.ts +61 -2
- package/src/web/search/providers/searxng.ts +71 -13
- package/examples/custom-tools/todo/index.ts +0 -211
- package/examples/extensions/todo.ts +0 -295
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
* Extension runner - executes extensions and manages their lifecycle.
|
|
3
3
|
*/
|
|
4
4
|
import type { AgentMessage } from "@oh-my-pi/pi-agent-core";
|
|
5
|
-
import type { ImageContent, Model } from "@oh-my-pi/pi-ai";
|
|
5
|
+
import type { ImageContent, Model, ProviderResponseMetadata } from "@oh-my-pi/pi-ai";
|
|
6
6
|
import type { KeyId } from "@oh-my-pi/pi-tui";
|
|
7
7
|
import { logger } from "@oh-my-pi/pi-utils";
|
|
8
8
|
import type { ModelRegistry } from "../../config/model-registry";
|
|
9
9
|
import { type Theme, theme } from "../../modes/theme/theme";
|
|
10
10
|
import type { SessionManager } from "../../session/session-manager";
|
|
11
11
|
import type {
|
|
12
|
+
AfterProviderResponseEvent,
|
|
12
13
|
BeforeAgentStartEvent,
|
|
13
14
|
BeforeAgentStartEventResult,
|
|
14
15
|
BeforeProviderRequestEvent,
|
|
@@ -70,6 +71,7 @@ type RunnerEmitEvent = Exclude<
|
|
|
70
71
|
| UserBashEvent
|
|
71
72
|
| ContextEvent
|
|
72
73
|
| BeforeProviderRequestEvent
|
|
74
|
+
| AfterProviderResponseEvent
|
|
73
75
|
| BeforeAgentStartEvent
|
|
74
76
|
| ResourcesDiscoverEvent
|
|
75
77
|
| InputEvent
|
|
@@ -759,6 +761,37 @@ export class ExtensionRunner {
|
|
|
759
761
|
return currentPayload;
|
|
760
762
|
}
|
|
761
763
|
|
|
764
|
+
async emitAfterProviderResponse(response: ProviderResponseMetadata, _model?: Model): Promise<void> {
|
|
765
|
+
const ctx = this.createContext();
|
|
766
|
+
|
|
767
|
+
for (const ext of this.extensions) {
|
|
768
|
+
const handlers = ext.handlers.get("after_provider_response");
|
|
769
|
+
if (!handlers || handlers.length === 0) continue;
|
|
770
|
+
|
|
771
|
+
for (const handler of handlers) {
|
|
772
|
+
try {
|
|
773
|
+
const event: AfterProviderResponseEvent = {
|
|
774
|
+
type: "after_provider_response",
|
|
775
|
+
status: response.status,
|
|
776
|
+
headers: response.headers,
|
|
777
|
+
requestId: response.requestId,
|
|
778
|
+
metadata: response.metadata,
|
|
779
|
+
};
|
|
780
|
+
await handler(event, ctx);
|
|
781
|
+
} catch (err) {
|
|
782
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
783
|
+
const stack = err instanceof Error ? err.stack : undefined;
|
|
784
|
+
this.emitError({
|
|
785
|
+
extensionPath: ext.path,
|
|
786
|
+
event: "after_provider_response",
|
|
787
|
+
error: message,
|
|
788
|
+
stack,
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
|
|
762
795
|
async emitBeforeAgentStart(
|
|
763
796
|
prompt: string,
|
|
764
797
|
images: ImageContent[] | undefined,
|
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
Model,
|
|
18
18
|
OAuthCredentials,
|
|
19
19
|
OAuthLoginCallbacks,
|
|
20
|
+
ProviderResponseMetadata,
|
|
20
21
|
SimpleStreamOptions,
|
|
21
22
|
TextContent,
|
|
22
23
|
ToolResultMessage,
|
|
@@ -482,6 +483,11 @@ export interface BeforeProviderRequestEvent {
|
|
|
482
483
|
payload: unknown;
|
|
483
484
|
}
|
|
484
485
|
|
|
486
|
+
/** Fired after a provider response is received, before its stream body is consumed. */
|
|
487
|
+
export interface AfterProviderResponseEvent extends ProviderResponseMetadata {
|
|
488
|
+
type: "after_provider_response";
|
|
489
|
+
}
|
|
490
|
+
|
|
485
491
|
/** Fired after user submits prompt but before agent loop. */
|
|
486
492
|
export interface BeforeAgentStartEvent {
|
|
487
493
|
type: "before_agent_start";
|
|
@@ -801,6 +807,7 @@ export type ExtensionEvent =
|
|
|
801
807
|
| SessionEvent
|
|
802
808
|
| ContextEvent
|
|
803
809
|
| BeforeProviderRequestEvent
|
|
810
|
+
| AfterProviderResponseEvent
|
|
804
811
|
| BeforeAgentStartEvent
|
|
805
812
|
| AgentStartEvent
|
|
806
813
|
| AgentEndEvent
|
|
@@ -981,6 +988,7 @@ export interface ExtensionAPI {
|
|
|
981
988
|
event: "before_provider_request",
|
|
982
989
|
handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>,
|
|
983
990
|
): void;
|
|
991
|
+
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): void;
|
|
984
992
|
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): void;
|
|
985
993
|
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): void;
|
|
986
994
|
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): void;
|