@code-yeongyu/senpi-codemode 2026.10.6 → 2026.10.8
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 +37 -0
- package/README.md +20 -2
- package/package.json +5 -4
- package/src/bridge/kernel-tools-protocol.ts +8 -0
- package/src/bridge/reserved.ts +10 -0
- package/src/bridges/eval-virtual-schemas.ts +100 -0
- package/src/bridges/handle-bridge.ts +72 -0
- package/src/bridges/reserved-dispatch.ts +20 -2
- package/src/bridges/schema-bridge.ts +4 -0
- package/src/completion/handle.ts +69 -0
- package/src/completion/tool-bridge.ts +31 -12
- package/src/environments/editable-check.ts +116 -0
- package/src/environments/install-lock.ts +223 -0
- package/src/environments/py-environment.ts +98 -0
- package/src/environments/py-installer.ts +187 -0
- package/src/environments/revision-store.ts +95 -0
- package/src/extension/bridge-dispatch.ts +41 -0
- package/src/extension/bridge-tool-call.ts +5 -1
- package/src/extension/host-facts.ts +18 -0
- package/src/extension/kernel-registration.ts +5 -0
- package/src/extension/removed-tool-hints.ts +15 -0
- package/src/extension/runtime-factory.ts +3 -0
- package/src/extension/session-manager-contract.ts +3 -0
- package/src/extension/session-manager.ts +32 -5
- package/src/extension/start-recovery.ts +111 -0
- package/src/handles/completion-handles.ts +202 -0
- package/src/handles/handle-args.ts +103 -0
- package/src/handles/handle-registry.ts +164 -0
- package/src/handles/wait.ts +214 -0
- package/src/handles/watch-queue.ts +102 -0
- package/src/index.ts +99 -94
- package/src/kernels/jl/handles.jl +124 -0
- package/src/kernels/jl/prelude.jl +9 -0
- package/src/kernels/jl/runner.jl +6 -1
- package/src/kernels/js/handles.js +93 -0
- package/src/kernels/js/kernel-tools-define.d.ts +6 -0
- package/src/kernels/js/kernel-tools-define.js +3 -1
- package/src/kernels/js/kernel-tools-errors.js +2 -0
- package/src/kernels/js/kernel-tools-errors.ts +2 -0
- package/src/kernels/js/kernel-tools-registry.d.ts +2 -0
- package/src/kernels/js/kernel-tools-registry.js +18 -9
- package/src/kernels/js/kernel-tools-schema.js +6 -2
- package/src/kernels/js/worker-runtime.js +10 -1
- package/src/kernels/py/host-cell.ts +42 -0
- package/src/kernels/py/kernel-contract.ts +13 -2
- package/src/kernels/py/kernel-tools-host.ts +97 -0
- package/src/kernels/py/kernel.ts +88 -12
- package/src/kernels/py/prelude.py +797 -11
- package/src/kernels/py/process.ts +15 -4
- package/src/kernels/py/startup.ts +58 -20
- package/src/kernels/py/transport.ts +36 -7
- package/src/kernels/rb/handles.rb +97 -0
- package/src/kernels/rb/paths.rb +37 -0
- package/src/kernels/rb/prelude.rb +15 -38
- package/src/kernels/rb/runner.rb +7 -7
- package/src/kernels/sandbox/vendor/pi-codemode/LICENSE +21 -0
- package/src/kernels/sandbox/vendor/pi-codemode/VENDORED.md +42 -0
- package/src/kernels/sandbox/vendor/pi-codemode/identifier.ts +14 -0
- package/src/kernels/sandbox/vendor/pi-codemode/runtime/host.ts +514 -0
- package/src/kernels/sandbox/vendor/pi-codemode/runtime/prelude-source.ts +431 -0
- package/src/kernels/sandbox/vendor/pi-codemode/runtime/protocol.ts +61 -0
- package/src/kernels/sandbox/vendor/pi-codemode/runtime/worker.ts +231 -0
- package/src/kernels/sandbox/vendor/pi-codemode/types.ts +185 -0
- package/src/kernels/sandbox/vendor/pi-codemode/wasm.ts +37 -0
- package/src/kernels/shared/kernel-tools-pump.ts +6 -0
- package/src/kernels/shared/process-cpu.ts +69 -0
- package/src/kernels/shared/subprocess-queue.ts +1 -0
- package/src/tool/cell-handler.ts +21 -18
- package/src/tool/cell-reserved-dispatch.ts +51 -0
- package/src/tool/eval-tool-options.ts +3 -0
- package/src/tool/run-eval-cell.ts +2 -0
- package/src/tool/types.ts +15 -0
|
@@ -9,6 +9,7 @@ import type { EvalSchemaToolInfo } from "../bridges/schema-bridge.ts";
|
|
|
9
9
|
import type { CompletionRequest, CompletionResult } from "../completion/handler.ts";
|
|
10
10
|
import type { ResolvedCodemodeSettings } from "../config/settings.ts";
|
|
11
11
|
import type { EvalExecutionTracker } from "../extension/session-manager.ts";
|
|
12
|
+
import type { HandleRegistry } from "../handles/handle-registry.ts";
|
|
12
13
|
import type { EvalTimeoutFactory } from "./cell-execution.ts";
|
|
13
14
|
import type { EvalDetachedCellManager } from "./detached-cell-manager.ts";
|
|
14
15
|
import type { EvalExecutionEventPayload } from "./eval-execution-event.ts";
|
|
@@ -50,6 +51,8 @@ export interface CreateEvalToolOptions {
|
|
|
50
51
|
readonly imageResizer?: EvalImageResizer;
|
|
51
52
|
readonly executionTracker?: EvalExecutionTracker;
|
|
52
53
|
readonly cellManager?: EvalDetachedCellManager;
|
|
54
|
+
/** The session generation's handle registry (`wait()`, `handle()`, completion handles); absent before session_start. */
|
|
55
|
+
readonly handles?: HandleRegistry;
|
|
53
56
|
readonly onCellSettled?: (payload: EvalExecutionEventPayload) => void;
|
|
54
57
|
readonly timeoutFactory?: EvalTimeoutFactory;
|
|
55
58
|
readonly proxyExecutor?: (params: EvalToolInput, signal?: AbortSignal) => Promise<AgentToolResult<EvalToolDetails>>;
|
|
@@ -224,6 +224,8 @@ async function executeCell(
|
|
|
224
224
|
: { artifactPath: join(options.artifactsDir, `eval-${randomUUID()}.log`) }),
|
|
225
225
|
...(options.imageResizer === undefined ? {} : { imageResizer: options.imageResizer }),
|
|
226
226
|
...(kernelTools === undefined ? {} : { kernelTools }),
|
|
227
|
+
...(options.handles === undefined ? {} : { handles: options.handles }),
|
|
228
|
+
hardDeadlineMs: cell.startedAtMs + cell.hardLimitSeconds * 1_000,
|
|
227
229
|
});
|
|
228
230
|
handler = activeHandler;
|
|
229
231
|
cellManager.bindKernel(
|
package/src/tool/types.ts
CHANGED
|
@@ -144,9 +144,24 @@ export function createEvalInputSchema(
|
|
|
144
144
|
export type EvalKernelResult = Extract<KernelToHostMessage, { type: "result" }>;
|
|
145
145
|
export type EvalToolCallMessage = Extract<KernelToHostMessage, { type: "tool-call" }>;
|
|
146
146
|
|
|
147
|
+
export type HostCellOutcome =
|
|
148
|
+
| { readonly ok: true; readonly valueRepr?: string }
|
|
149
|
+
| { readonly ok: false; readonly error: { readonly message: string; readonly name?: string } };
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Work the host runs in the cell's place when the entry reaches the front of the kernel's queue: no code is
|
|
153
|
+
* sent to the interpreter, and aborting the signal (interrupt, timeout, kernel close) ends it without
|
|
154
|
+
* restarting the interpreter.
|
|
155
|
+
*/
|
|
156
|
+
export type HostCellExecutor = (context: {
|
|
157
|
+
readonly signal: AbortSignal;
|
|
158
|
+
readonly emit: (message: KernelToHostMessage) => void;
|
|
159
|
+
}) => Promise<HostCellOutcome>;
|
|
160
|
+
|
|
147
161
|
export interface EvalKernelRunInput {
|
|
148
162
|
readonly cellId: string;
|
|
149
163
|
readonly code: string;
|
|
164
|
+
readonly host?: HostCellExecutor;
|
|
150
165
|
readonly timeoutMs?: number;
|
|
151
166
|
readonly onStarted?: () => void;
|
|
152
167
|
readonly onMessage?: (message: KernelToHostMessage) => void;
|