@code-yeongyu/senpi 2026.7.3 → 2026.7.4
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 +17 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +2 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +2 -1
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts +2 -0
- package/dist/core/extensions/builtin/hooks/dispatcher.d.ts.map +1 -1
- package/dist/core/extensions/builtin/hooks/dispatcher.js +50 -17
- package/dist/core/extensions/builtin/hooks/dispatcher.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/hooks/index.js +11 -1
- package/dist/core/extensions/builtin/hooks/index.js.map +1 -1
- package/dist/core/extensions/builtin/hooks/output-bounds.d.ts.map +1 -1
- package/dist/core/extensions/builtin/hooks/output-bounds.js +3 -7
- package/dist/core/extensions/builtin/hooks/output-bounds.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +65 -57
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +7 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/hidden-stdout-log.d.ts +2 -0
- package/dist/core/hidden-stdout-log.d.ts.map +1 -0
- package/dist/core/hidden-stdout-log.js +17 -0
- package/dist/core/hidden-stdout-log.js.map +1 -0
- package/dist/core/output-guard.d.ts +2 -0
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js +63 -0
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js +0 -10
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/sensitive-output.d.ts +3 -0
- package/dist/core/sensitive-output.d.ts.map +1 -0
- package/dist/core/sensitive-output.js +12 -0
- package/dist/core/sensitive-output.js.map +1 -0
- package/dist/core/tools/edit.js +2 -2
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +40 -4
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/interactive-stderr-guard.d.ts +3 -0
- package/dist/modes/interactive/interactive-stderr-guard.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-stderr-guard.js +24 -0
- package/dist/modes/interactive/interactive-stderr-guard.js.map +1 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +7 -0
- package/dist/package-manager-cli.js.map +1 -1
- package/docs/extensions.md +14 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +28 -0
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts +28 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js +19 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/nvidia.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js +14 -14
- package/node_modules/@earendil-works/pi-ai/dist/providers/openrouter.models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +9 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +17 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +75 -22
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +4 -0
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/npm-shrinkwrap.json +9 -9
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAS,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { basename } from "node:path";
|
|
5
5
|
import { theme } from "../../modes/interactive/theme/theme.js";
|
|
6
|
+
import { stripAnsi } from "../../utils/ansi.js";
|
|
6
7
|
// Extension shortcuts compete with canonical keybinding ids from keybindings.json.
|
|
7
8
|
// Only editor-global shortcuts are reserved here. Picker-specific bindings are not.
|
|
8
9
|
const RESERVED_KEYBINDINGS_FOR_EXTENSION_CONFLICTS = [
|
|
@@ -71,6 +72,16 @@ function cloneJsonValue(value) {
|
|
|
71
72
|
}
|
|
72
73
|
return JSON.parse(serialized);
|
|
73
74
|
}
|
|
75
|
+
function boundedToolHookStatusMessage(message) {
|
|
76
|
+
return message.length <= 79 ? message : `${message.slice(0, 76)}...`;
|
|
77
|
+
}
|
|
78
|
+
function sanitizedToolHookStatusMessage(message) {
|
|
79
|
+
return boundedToolHookStatusMessage(stripAnsi(message)
|
|
80
|
+
.replace(/[\r\n\t]+/g, " ")
|
|
81
|
+
.replace(/[\u0000-\u001f\u007f]+/g, "")
|
|
82
|
+
.replace(/\s+/g, " ")
|
|
83
|
+
.trim());
|
|
84
|
+
}
|
|
74
85
|
/**
|
|
75
86
|
* Helper function to emit session_shutdown event to extensions.
|
|
76
87
|
* Returns true if the event was emitted, false if there were no handlers.
|
|
@@ -419,15 +430,54 @@ export class ExtensionRunner {
|
|
|
419
430
|
if (builtinName === "tool-pair-guard") {
|
|
420
431
|
return "checking tool/result pairs";
|
|
421
432
|
}
|
|
422
|
-
const extensionName =
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
return
|
|
433
|
+
const extensionName = builtinName ??
|
|
434
|
+
(extensionPath.startsWith("<") && extensionPath.endsWith(">")
|
|
435
|
+
? extensionPath.slice(1, -1)
|
|
436
|
+
: basename(extensionPath).replace(/\.(?:c|m)?[jt]sx?$/, ""));
|
|
437
|
+
return boundedToolHookStatusMessage(`running ${extensionName}`);
|
|
427
438
|
}
|
|
428
439
|
emitToolHookLifecycleEvent(event) {
|
|
429
440
|
this.toolHookLifecycleObserver?.(event);
|
|
430
441
|
}
|
|
442
|
+
beginToolHookRun(baseContext, run) {
|
|
443
|
+
const base = {
|
|
444
|
+
type: "tool_hook_status",
|
|
445
|
+
hookRunId: `${run.toolCallId}:${run.hookName}:${this.nextToolHookRunIndex++}`,
|
|
446
|
+
hookName: run.hookName,
|
|
447
|
+
toolName: run.toolName,
|
|
448
|
+
toolCallId: run.toolCallId,
|
|
449
|
+
extensionPath: run.extensionPath,
|
|
450
|
+
startedAt: Date.now(),
|
|
451
|
+
};
|
|
452
|
+
let statusMessage = this.getToolHookStatusMessage(run.extensionPath, run.hookName);
|
|
453
|
+
let ended = false;
|
|
454
|
+
this.emitToolHookLifecycleEvent({ ...base, phase: "start", statusMessage });
|
|
455
|
+
// Property descriptors keep the guarded getters from createContext() lazy; a
|
|
456
|
+
// spread would freeze their current values and bypass stale-instance checks.
|
|
457
|
+
const context = Object.defineProperties({}, Object.getOwnPropertyDescriptors(baseContext));
|
|
458
|
+
context.updateToolHookStatus = (update) => {
|
|
459
|
+
if (ended)
|
|
460
|
+
return;
|
|
461
|
+
statusMessage = sanitizedToolHookStatusMessage(update);
|
|
462
|
+
this.emitToolHookLifecycleEvent({ ...base, phase: "update", statusMessage });
|
|
463
|
+
};
|
|
464
|
+
return {
|
|
465
|
+
context,
|
|
466
|
+
end: (status, errorMessage) => {
|
|
467
|
+
if (ended)
|
|
468
|
+
return;
|
|
469
|
+
ended = true;
|
|
470
|
+
this.emitToolHookLifecycleEvent({
|
|
471
|
+
...base,
|
|
472
|
+
phase: "end",
|
|
473
|
+
statusMessage,
|
|
474
|
+
completedAt: Date.now(),
|
|
475
|
+
status,
|
|
476
|
+
...(errorMessage !== undefined ? { errorMessage } : {}),
|
|
477
|
+
});
|
|
478
|
+
},
|
|
479
|
+
};
|
|
480
|
+
}
|
|
431
481
|
getMessageRenderer(customType) {
|
|
432
482
|
for (const ext of this.extensions) {
|
|
433
483
|
const renderer = ext.messageRenderers.get(customType);
|
|
@@ -763,24 +813,16 @@ export class ExtensionRunner {
|
|
|
763
813
|
if (!handlers || handlers.length === 0)
|
|
764
814
|
continue;
|
|
765
815
|
for (const handler of handlers) {
|
|
766
|
-
const
|
|
767
|
-
const startedAt = Date.now();
|
|
768
|
-
const statusMessage = this.getToolHookStatusMessage(ext.path, "PostToolUse");
|
|
769
|
-
let endStatus = "completed";
|
|
770
|
-
let errorMessage;
|
|
771
|
-
this.emitToolHookLifecycleEvent({
|
|
772
|
-
type: "tool_hook_status",
|
|
773
|
-
phase: "start",
|
|
774
|
-
hookRunId,
|
|
816
|
+
const hookRun = this.beginToolHookRun(ctx, {
|
|
775
817
|
hookName: "PostToolUse",
|
|
776
818
|
toolName: event.toolName,
|
|
777
819
|
toolCallId: event.toolCallId,
|
|
778
820
|
extensionPath: ext.path,
|
|
779
|
-
statusMessage,
|
|
780
|
-
startedAt,
|
|
781
821
|
});
|
|
822
|
+
let endStatus = "completed";
|
|
823
|
+
let errorMessage;
|
|
782
824
|
try {
|
|
783
|
-
const handlerResult = (await handler(currentEvent,
|
|
825
|
+
const handlerResult = (await handler(currentEvent, hookRun.context));
|
|
784
826
|
if (!handlerResult)
|
|
785
827
|
continue;
|
|
786
828
|
if (handlerResult.content !== undefined) {
|
|
@@ -809,20 +851,7 @@ export class ExtensionRunner {
|
|
|
809
851
|
});
|
|
810
852
|
}
|
|
811
853
|
finally {
|
|
812
|
-
|
|
813
|
-
type: "tool_hook_status",
|
|
814
|
-
phase: "end",
|
|
815
|
-
hookRunId,
|
|
816
|
-
hookName: "PostToolUse",
|
|
817
|
-
toolName: event.toolName,
|
|
818
|
-
toolCallId: event.toolCallId,
|
|
819
|
-
extensionPath: ext.path,
|
|
820
|
-
statusMessage,
|
|
821
|
-
startedAt,
|
|
822
|
-
completedAt: Date.now(),
|
|
823
|
-
status: endStatus,
|
|
824
|
-
...(errorMessage !== undefined ? { errorMessage } : {}),
|
|
825
|
-
});
|
|
854
|
+
hookRun.end(endStatus, errorMessage);
|
|
826
855
|
}
|
|
827
856
|
}
|
|
828
857
|
}
|
|
@@ -843,24 +872,16 @@ export class ExtensionRunner {
|
|
|
843
872
|
if (!handlers || handlers.length === 0)
|
|
844
873
|
continue;
|
|
845
874
|
for (const handler of handlers) {
|
|
846
|
-
const
|
|
847
|
-
const startedAt = Date.now();
|
|
848
|
-
const statusMessage = this.getToolHookStatusMessage(ext.path, "PreToolUse");
|
|
849
|
-
let endStatus = "completed";
|
|
850
|
-
let errorMessage;
|
|
851
|
-
this.emitToolHookLifecycleEvent({
|
|
852
|
-
type: "tool_hook_status",
|
|
853
|
-
phase: "start",
|
|
854
|
-
hookRunId,
|
|
875
|
+
const hookRun = this.beginToolHookRun(ctx, {
|
|
855
876
|
hookName: "PreToolUse",
|
|
856
877
|
toolName: event.toolName,
|
|
857
878
|
toolCallId: event.toolCallId,
|
|
858
879
|
extensionPath: ext.path,
|
|
859
|
-
statusMessage,
|
|
860
|
-
startedAt,
|
|
861
880
|
});
|
|
881
|
+
let endStatus = "completed";
|
|
882
|
+
let errorMessage;
|
|
862
883
|
try {
|
|
863
|
-
const handlerResult = await handler(event,
|
|
884
|
+
const handlerResult = await handler(event, hookRun.context);
|
|
864
885
|
if (handlerResult) {
|
|
865
886
|
result = handlerResult;
|
|
866
887
|
if (result.block) {
|
|
@@ -875,20 +896,7 @@ export class ExtensionRunner {
|
|
|
875
896
|
throw err;
|
|
876
897
|
}
|
|
877
898
|
finally {
|
|
878
|
-
|
|
879
|
-
type: "tool_hook_status",
|
|
880
|
-
phase: "end",
|
|
881
|
-
hookRunId,
|
|
882
|
-
hookName: "PreToolUse",
|
|
883
|
-
toolName: event.toolName,
|
|
884
|
-
toolCallId: event.toolCallId,
|
|
885
|
-
extensionPath: ext.path,
|
|
886
|
-
statusMessage,
|
|
887
|
-
startedAt,
|
|
888
|
-
completedAt: Date.now(),
|
|
889
|
-
status: endStatus,
|
|
890
|
-
...(errorMessage !== undefined ? { errorMessage } : {}),
|
|
891
|
-
});
|
|
899
|
+
hookRun.end(endStatus, errorMessage);
|
|
892
900
|
}
|
|
893
901
|
}
|
|
894
902
|
}
|