@code-yeongyu/senpi-codemode 2026.9.30 → 2026.10.1-2
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 +24 -0
- package/package.json +4 -4
- package/src/extension/runtime-factory.ts +13 -2
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,30 @@
|
|
|
12
12
|
|
|
13
13
|
### Removed
|
|
14
14
|
|
|
15
|
+
## [2026.10.1-2] - 2026-10-01
|
|
16
|
+
|
|
17
|
+
### Breaking Changes
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
## [2026.10.1] - 2026-10-01
|
|
28
|
+
|
|
29
|
+
### Breaking Changes
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
### Removed
|
|
38
|
+
|
|
15
39
|
## [2026.9.30] - 2026-09-30
|
|
16
40
|
|
|
17
41
|
### Breaking Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/senpi-codemode",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.10.1-2",
|
|
4
4
|
"description": "Source-only senpi extension package for codemode evaluation tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@babel/parser": "8.0.4",
|
|
33
|
-
"@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.
|
|
33
|
+
"@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.10.1-2",
|
|
34
34
|
"typebox": "1.3.34"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@code-yeongyu/senpi": "2026.
|
|
37
|
+
"@code-yeongyu/senpi": "2026.10.1-2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@code-yeongyu/senpi": "2026.
|
|
40
|
+
"@code-yeongyu/senpi": "2026.10.1-2"
|
|
41
41
|
},
|
|
42
42
|
"keywords": [
|
|
43
43
|
"senpi",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ExtensionContext, withBundledBunCommands } from "@code-yeongyu/senpi";
|
|
2
2
|
import type { AgentExecuteTool } from "../bridges/agent-bridge.ts";
|
|
3
3
|
import type { EvalSchemaToolInfo } from "../bridges/schema-bridge.ts";
|
|
4
4
|
import type { CompletionRequest, CompletionResult } from "../completion/handler.ts";
|
|
@@ -67,7 +67,7 @@ export async function createRuntime(
|
|
|
67
67
|
const executeTool = createExecuteTool(pi, activeTools);
|
|
68
68
|
const create = options.createSessionManager ?? createCodemodeSessionManager;
|
|
69
69
|
const sessionId = sessionIdFrom(event);
|
|
70
|
-
const sessionEnv = sessionEnvironmentFrom(ctx);
|
|
70
|
+
const sessionEnv = { ...sessionEnvironmentFrom(ctx), ...bundledBunPathEntry() };
|
|
71
71
|
const configuredPoolWidth = settings.parallelPoolWidth;
|
|
72
72
|
const parallelPoolWidth = Number.isFinite(configuredPoolWidth) ? Math.max(1, Math.trunc(configuredPoolWidth)) : 1;
|
|
73
73
|
const manager = await create({
|
|
@@ -105,6 +105,17 @@ export function createExecuteTool(pi: CodemodeRuntimeAPI, activeTools?: Readonly
|
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
// In a compiled executable, Bun Shell runs `bun` as this executable unless PATH has one, which booted
|
|
109
|
+
// a second agent from `bun test` in a cell (omo#9362). Kernel children get the same bundled `bun`
|
|
110
|
+
// directory the bash tool's PATH carries.
|
|
111
|
+
function bundledBunPathEntry(): Record<string, string> {
|
|
112
|
+
const env = withBundledBunCommands(process.env);
|
|
113
|
+
if (env === process.env) return {};
|
|
114
|
+
const pathKey = Object.keys(env).find((key) => key.toLowerCase() === "path") ?? "PATH";
|
|
115
|
+
const value = env[pathKey];
|
|
116
|
+
return value === undefined ? {} : { [pathKey]: value };
|
|
117
|
+
}
|
|
118
|
+
|
|
108
119
|
function sessionIdFrom(event: unknown): string {
|
|
109
120
|
if (typeof event === "object" && event !== null && "sessionId" in event && typeof event.sessionId === "string") {
|
|
110
121
|
return event.sessionId;
|