@geminixiang/mikan 1.0.0-beta.16 → 1.0.0-beta.18
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 +60 -1
- package/dist/agent.d.ts +2 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +2 -2
- package/dist/agent.js.map +1 -1
- package/dist/commands/sandbox.d.ts.map +1 -1
- package/dist/commands/sandbox.js +13 -10
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +40 -0
- package/dist/config.js.map +1 -1
- package/dist/execution-resolver.d.ts +1 -1
- package/dist/execution-resolver.d.ts.map +1 -1
- package/dist/execution-resolver.js +10 -12
- package/dist/execution-resolver.js.map +1 -1
- package/dist/main.js +94 -8
- package/dist/main.js.map +1 -1
- package/dist/runtime/conversation-runtime.js +2 -0
- package/dist/runtime/conversation-runtime.js.map +1 -1
- package/dist/sandbox/container.d.ts +1 -0
- package/dist/sandbox/container.d.ts.map +1 -1
- package/dist/sandbox/container.js +1 -1
- package/dist/sandbox/container.js.map +1 -1
- package/dist/sandbox/gondolin-fleet.d.ts +104 -0
- package/dist/sandbox/gondolin-fleet.d.ts.map +1 -0
- package/dist/sandbox/gondolin-fleet.js +330 -0
- package/dist/sandbox/gondolin-fleet.js.map +1 -0
- package/dist/sandbox/gondolin-gateway.d.ts +85 -0
- package/dist/sandbox/gondolin-gateway.d.ts.map +1 -0
- package/dist/sandbox/gondolin-gateway.js +400 -0
- package/dist/sandbox/gondolin-gateway.js.map +1 -0
- package/dist/sandbox/gondolin-inventory.d.ts +89 -0
- package/dist/sandbox/gondolin-inventory.d.ts.map +1 -0
- package/dist/sandbox/gondolin-inventory.js +267 -0
- package/dist/sandbox/gondolin-inventory.js.map +1 -0
- package/dist/sandbox/gondolin-join.d.ts +62 -0
- package/dist/sandbox/gondolin-join.d.ts.map +1 -0
- package/dist/sandbox/gondolin-join.js +261 -0
- package/dist/sandbox/gondolin-join.js.map +1 -0
- package/dist/sandbox/gondolin-nfs-advisory.d.ts +15 -0
- package/dist/sandbox/gondolin-nfs-advisory.d.ts.map +1 -0
- package/dist/sandbox/gondolin-nfs-advisory.js +60 -0
- package/dist/sandbox/gondolin-nfs-advisory.js.map +1 -0
- package/dist/sandbox/gondolin-placement.d.ts +32 -0
- package/dist/sandbox/gondolin-placement.d.ts.map +1 -0
- package/dist/sandbox/gondolin-placement.js +83 -0
- package/dist/sandbox/gondolin-placement.js.map +1 -0
- package/dist/sandbox/gondolin-remote.d.ts +73 -0
- package/dist/sandbox/gondolin-remote.d.ts.map +1 -0
- package/dist/sandbox/gondolin-remote.js +352 -0
- package/dist/sandbox/gondolin-remote.js.map +1 -0
- package/dist/sandbox/gondolin-worker-client.d.ts +139 -0
- package/dist/sandbox/gondolin-worker-client.d.ts.map +1 -0
- package/dist/sandbox/gondolin-worker-client.js +325 -0
- package/dist/sandbox/gondolin-worker-client.js.map +1 -0
- package/dist/sandbox/gondolin-worker-main.d.ts +2 -0
- package/dist/sandbox/gondolin-worker-main.d.ts.map +1 -0
- package/dist/sandbox/gondolin-worker-main.js +22 -0
- package/dist/sandbox/gondolin-worker-main.js.map +1 -0
- package/dist/sandbox/gondolin-worker.d.ts +55 -0
- package/dist/sandbox/gondolin-worker.d.ts.map +1 -0
- package/dist/sandbox/gondolin-worker.js +201 -0
- package/dist/sandbox/gondolin-worker.js.map +1 -0
- package/dist/sandbox/gondolin.d.ts +52 -0
- package/dist/sandbox/gondolin.d.ts.map +1 -0
- package/dist/sandbox/gondolin.js +425 -0
- package/dist/sandbox/gondolin.js.map +1 -0
- package/dist/sandbox/identity.d.ts +1 -1
- package/dist/sandbox/identity.js +2 -2
- package/dist/sandbox/identity.js.map +1 -1
- package/dist/sandbox/index.d.ts +3 -3
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +4 -4
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/types.d.ts +10 -4
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sandbox/types.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/sandbox.d.ts +2 -2
- package/dist/tools/sandbox.d.ts.map +1 -1
- package/dist/tools/sandbox.js +8 -7
- package/dist/tools/sandbox.js.map +1 -1
- package/dist/types.d.ts +71 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vault/index.js +3 -0
- package/dist/vault/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/sandbox/microvm.d.ts +0 -17
- package/dist/sandbox/microvm.d.ts.map +0 -1
- package/dist/sandbox/microvm.js +0 -145
- package/dist/sandbox/microvm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,11 +9,70 @@ any release.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.0.0-beta.18]
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Add an idempotent Debian and Ubuntu worker-host initialization script.
|
|
17
|
+
- Add persistent `mikan-worker` installation as a delegated systemd service.
|
|
18
|
+
- Add NFS export detection with OS-specific setup guidance for `gondolin:remote` workspaces.
|
|
19
|
+
- Ship host-side vault credential files securely to remote workers without placing them in the shared workspace.
|
|
20
|
+
- Add bounded shared-workspace health probes and worker degradation reporting.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Require each Gondolin remote gateway and static worker to declare its shared `workspaceRoot`.
|
|
25
|
+
- Exclude workers with unhealthy shared workspaces from new placements and restore them after a healthy heartbeat.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Fail remote execution with actionable diagnostics instead of hanging on dead shared-workspace mounts.
|
|
30
|
+
- Create runtime cgroups beneath the worker's delegated cgroup and report missing `Delegate=yes` configuration.
|
|
31
|
+
- Verify downloaded worker binaries against the matching release checksum filename.
|
|
32
|
+
- Validate `gondolin:remote` only after gateway and worker transports are configured.
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
|
|
36
|
+
- Materialize remote credential files as owner-only, read-only runtime files outside shared workspaces.
|
|
37
|
+
|
|
38
|
+
### Tests
|
|
39
|
+
|
|
40
|
+
- Add coverage for worker host services, cgroup delegation, workspace health, credential delivery, NFS advice, remote validation, and idle execution deadlines.
|
|
41
|
+
|
|
42
|
+
## [1.0.0-beta.17]
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
|
|
46
|
+
- Add `gondolin:remote` for scheduling sandbox runtimes across a fleet of Linux/KVM workers.
|
|
47
|
+
- Add a standalone `mikan-worker` daemon with mutual TLS, fenced leases, crash recovery, capacity-aware placement, draining, and sticky conversation assignment.
|
|
48
|
+
- Add dial-home worker enrollment through one-time join tokens and a mikan-hosted gateway.
|
|
49
|
+
- Add private workspace projection, vault injection, resource limits, lifecycle reconciliation, and drift recovery to Gondolin runtimes.
|
|
50
|
+
- Add worker installation, enrollment, operations, and remote quickstart documentation with a one-command end-to-end smoke test.
|
|
51
|
+
- Publish `mikan-worker` binaries and checksums with GitHub releases.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- Rename the preview sandbox mode from `microvm:default` to `gondolin:default` and the image build command to `npm run gondolin:image:build`.
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- Project mounted files correctly into Gondolin guests.
|
|
60
|
+
- Refresh rotated credentials when Gondolin runtimes are recreated.
|
|
61
|
+
|
|
62
|
+
### Security
|
|
63
|
+
|
|
64
|
+
- Authenticate remote workers with mutual TLS and fence stale workers through expiring leases.
|
|
65
|
+
- Keep enrollment tokens one-time and store worker credentials privately.
|
|
66
|
+
|
|
67
|
+
### Tests
|
|
68
|
+
|
|
69
|
+
- Add coverage for Gondolin lifecycle, workspace isolation, vaults, resource controls, fleet scheduling, gateways, enrollment, workers, leases, and remote execution.
|
|
70
|
+
|
|
12
71
|
## [1.0.0-beta.16]
|
|
13
72
|
|
|
14
73
|
### Added
|
|
15
74
|
|
|
16
|
-
- Add a preview `
|
|
75
|
+
- Add a preview `gondolin:default` sandbox backed by Gondolin and QEMU.
|
|
17
76
|
- Add a curated microVM guest image build with Node.js, Python, uv, Git, ripgrep, fd, jq, SSH, and build tools.
|
|
18
77
|
- Manage one process-local microVM per conversation with idle shutdown and recreation on demand.
|
|
19
78
|
|
package/dist/agent.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { PiAgentWrapper } from "./types.js";
|
|
|
7
7
|
import { type ImageContent } from "@earendil-works/pi-ai";
|
|
8
8
|
import { MikanModels } from "./harness/index.js";
|
|
9
9
|
import type { ConversationMessage } from "./adapter.js";
|
|
10
|
-
import type { PlatformNotifier, PlatformReactor, PlatformUploader } from "./types.js";
|
|
10
|
+
import type { PlatformNotifier, PlatformReactor, PlatformUploader, SandboxResourceController } from "./types.js";
|
|
11
11
|
import type { SessionViewTokenStoreLike } from "./commands/types.js";
|
|
12
12
|
import type { DockerContainerManager } from "./provisioner.js";
|
|
13
13
|
import { type RuntimePathContext, type SandboxConfig } from "./sandbox/index.js";
|
|
@@ -40,6 +40,7 @@ export interface CreateRunnerOptions {
|
|
|
40
40
|
sessionScope: ResolvedSessionScope;
|
|
41
41
|
vaultManager?: VaultManager;
|
|
42
42
|
provisioner?: DockerContainerManager;
|
|
43
|
+
resourceController?: SandboxResourceController;
|
|
43
44
|
sessionView?: {
|
|
44
45
|
tokenStore: SessionViewTokenStoreLike;
|
|
45
46
|
portalBaseUrl?: string;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAY,KAAK,YAAY,EAAc,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAUL,WAAW,EAKZ,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAEV,mBAAmB,EAIpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAGV,gBAAgB,EAChB,eAAe,EAEf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -1130,7 +1130,7 @@ function attachSessionEventHandlers(params) {
|
|
|
1130
1130
|
* This is a stateless factory function.
|
|
1131
1131
|
*/
|
|
1132
1132
|
export async function createRunner(options) {
|
|
1133
|
-
const { sandboxConfig, sessionKey, conversationId, conversationDir, workspaceDir, sessionScope, vaultManager, provisioner, sessionView, platformNotifier, platformReactor, platformUploader, platformToolPackFactories, } = options;
|
|
1133
|
+
const { sandboxConfig, sessionKey, conversationId, conversationDir, workspaceDir, sessionScope, vaultManager, provisioner, resourceController, sessionView, platformNotifier, platformReactor, platformUploader, platformToolPackFactories, } = options;
|
|
1134
1134
|
const agentConfig = resolveConversationSettings(conversationDir);
|
|
1135
1135
|
const workspaceBase = join(conversationDir, "..");
|
|
1136
1136
|
const { executionResolver, executor, getPathContext, resolveExecutorForRun } = createRunnerExecutionContext(sandboxConfig, vaultManager, provisioner, workspaceDir, workspaceBase);
|
|
@@ -1141,7 +1141,7 @@ export async function createRunner(options) {
|
|
|
1141
1141
|
}
|
|
1142
1142
|
const model = modelRegistry.resolve(agentConfig.provider, agentConfig.model);
|
|
1143
1143
|
// Create tools (per-runner, with per-runner upload function setter)
|
|
1144
|
-
const { tools, setUploadFunction, setReactFunction, bindPlatformToolPacks, setEventContext, setSandboxContext, } = createMikanTools(executor, workspaceDir, { sandbox: sandboxConfig, provisioner }, platformToolPackFactories ?? [], {
|
|
1144
|
+
const { tools, setUploadFunction, setReactFunction, bindPlatformToolPacks, setEventContext, setSandboxContext, } = createMikanTools(executor, workspaceDir, { sandbox: sandboxConfig, resourceController: resourceController ?? provisioner }, platformToolPackFactories ?? [], {
|
|
1145
1145
|
model,
|
|
1146
1146
|
getApiKey: () => modelRegistry.getApiKeyForProvider(model.provider),
|
|
1147
1147
|
});
|