@code-yeongyu/senpi-codemode 2026.8.11 → 2026.8.12
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 +77 -0
- package/package.json +4 -4
- package/src/kernels/jl/kernel.ts +14 -1
- package/src/kernels/rb/kernel.ts +14 -1
- package/src/kernels/shared/runtime-asset.ts +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,83 @@
|
|
|
12
12
|
|
|
13
13
|
### Removed
|
|
14
14
|
|
|
15
|
+
## [2026.8.12] - 2026-08-12
|
|
16
|
+
|
|
17
|
+
### Breaking Changes
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
## [2026.8.11-6] - 2026-08-11
|
|
28
|
+
|
|
29
|
+
### Breaking Changes
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
### Removed
|
|
38
|
+
|
|
39
|
+
## [2026.8.11-5] - 2026-08-11
|
|
40
|
+
|
|
41
|
+
### Breaking Changes
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
### Removed
|
|
50
|
+
|
|
51
|
+
## [2026.8.11-4] - 2026-08-11
|
|
52
|
+
|
|
53
|
+
### Breaking Changes
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
|
|
61
|
+
- Ruby and Julia `eval` kernels launched from standalone Bun binaries now
|
|
62
|
+
resolve their external runner files from the shipped codemode sidecar when
|
|
63
|
+
the embedded `$bunfs` module path has no physical asset
|
|
64
|
+
([#818](https://github.com/code-yeongyu/senpi/pull/818)).
|
|
65
|
+
|
|
66
|
+
### Removed
|
|
67
|
+
|
|
68
|
+
## [2026.8.11-3] - 2026-08-11
|
|
69
|
+
|
|
70
|
+
### Breaking Changes
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
|
|
76
|
+
### Fixed
|
|
77
|
+
|
|
78
|
+
### Removed
|
|
79
|
+
|
|
80
|
+
## [2026.8.11-2] - 2026-08-10
|
|
81
|
+
|
|
82
|
+
### Breaking Changes
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
|
|
88
|
+
### Fixed
|
|
89
|
+
|
|
90
|
+
### Removed
|
|
91
|
+
|
|
15
92
|
## [2026.8.11] - 2026-08-10
|
|
16
93
|
|
|
17
94
|
### Breaking Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/senpi-codemode",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.12",
|
|
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.8.
|
|
33
|
+
"@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.8.12",
|
|
34
34
|
"typebox": "1.3.8"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
37
|
+
"@code-yeongyu/senpi": "2026.8.12"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
40
|
+
"@code-yeongyu/senpi": "2026.8.12"
|
|
41
41
|
},
|
|
42
42
|
"keywords": [
|
|
43
43
|
"senpi",
|
package/src/kernels/jl/kernel.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import type { BridgeConnectionConfig, KernelToHostMessage } from "../../bridge/protocol.ts";
|
|
3
|
+
import { type CodemodeRuntimeAssetEnvironment, resolveCodemodeRuntimeAsset } from "../shared/runtime-asset.ts";
|
|
3
4
|
import { SubprocessKernel, type SubprocessSpawn } from "../shared/subprocess-kernel.ts";
|
|
4
5
|
|
|
5
6
|
export interface JuliaKernelStartOptions {
|
|
@@ -11,6 +12,18 @@ export interface JuliaKernelStartOptions {
|
|
|
11
12
|
readonly onMessage?: (message: KernelToHostMessage) => void;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
export interface JuliaRunnerPathOptions extends CodemodeRuntimeAssetEnvironment {
|
|
16
|
+
readonly localPath?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function resolveJuliaRunnerPath(options: JuliaRunnerPathOptions = {}): string {
|
|
20
|
+
return resolveCodemodeRuntimeAsset(
|
|
21
|
+
options.localPath ?? join(import.meta.dirname, "runner.jl"),
|
|
22
|
+
join("kernels", "jl", "runner.jl"),
|
|
23
|
+
options,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
export class JuliaKernel extends SubprocessKernel {
|
|
15
28
|
static start(options: JuliaKernelStartOptions): JuliaKernel {
|
|
16
29
|
return new JuliaKernel({
|
|
@@ -25,7 +38,7 @@ export class JuliaKernel extends SubprocessKernel {
|
|
|
25
38
|
"--color=no",
|
|
26
39
|
"--compile=min",
|
|
27
40
|
"--optimize=0",
|
|
28
|
-
|
|
41
|
+
resolveJuliaRunnerPath(),
|
|
29
42
|
],
|
|
30
43
|
cwd: options.cwd,
|
|
31
44
|
sessionId: options.sessionId,
|
package/src/kernels/rb/kernel.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
2
|
import type { BridgeConnectionConfig, KernelToHostMessage } from "../../bridge/protocol.ts";
|
|
3
|
+
import { type CodemodeRuntimeAssetEnvironment, resolveCodemodeRuntimeAsset } from "../shared/runtime-asset.ts";
|
|
3
4
|
import { SubprocessKernel, type SubprocessSpawn } from "../shared/subprocess-kernel.ts";
|
|
4
5
|
|
|
5
6
|
export interface RubyKernelStartOptions {
|
|
@@ -11,11 +12,23 @@ export interface RubyKernelStartOptions {
|
|
|
11
12
|
readonly onMessage?: (message: KernelToHostMessage) => void;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
export interface RubyRunnerPathOptions extends CodemodeRuntimeAssetEnvironment {
|
|
16
|
+
readonly localPath?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function resolveRubyRunnerPath(options: RubyRunnerPathOptions = {}): string {
|
|
20
|
+
return resolveCodemodeRuntimeAsset(
|
|
21
|
+
options.localPath ?? join(import.meta.dirname, "runner.rb"),
|
|
22
|
+
join("kernels", "rb", "runner.rb"),
|
|
23
|
+
options,
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
export class RubyKernel extends SubprocessKernel {
|
|
15
28
|
static start(options: RubyKernelStartOptions): RubyKernel {
|
|
16
29
|
return new RubyKernel({
|
|
17
30
|
command: options.command ?? "ruby",
|
|
18
|
-
args: [
|
|
31
|
+
args: [resolveRubyRunnerPath()],
|
|
19
32
|
cwd: options.cwd,
|
|
20
33
|
sessionId: options.sessionId,
|
|
21
34
|
connection: options.connection,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
|
|
4
|
+
export interface CodemodeRuntimeAssetEnvironment {
|
|
5
|
+
readonly bunVersion?: string;
|
|
6
|
+
readonly executablePath?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function resolveCodemodeRuntimeAsset(
|
|
10
|
+
localPath: string,
|
|
11
|
+
packageRelativePath: string,
|
|
12
|
+
{ bunVersion = process.versions.bun, executablePath = process.execPath }: CodemodeRuntimeAssetEnvironment = {},
|
|
13
|
+
): string {
|
|
14
|
+
if (existsSync(localPath)) {
|
|
15
|
+
return localPath;
|
|
16
|
+
}
|
|
17
|
+
if (bunVersion) {
|
|
18
|
+
const sidecarPath = join(
|
|
19
|
+
dirname(executablePath),
|
|
20
|
+
"node_modules",
|
|
21
|
+
"@code-yeongyu",
|
|
22
|
+
"senpi-codemode",
|
|
23
|
+
"src",
|
|
24
|
+
packageRelativePath,
|
|
25
|
+
);
|
|
26
|
+
if (existsSync(sidecarPath)) {
|
|
27
|
+
return sidecarPath;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return localPath;
|
|
31
|
+
}
|