@geminixiang/mikan 1.0.0-beta.16 → 1.0.0-beta.17

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.
Files changed (93) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/dist/agent.d.ts +2 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +2 -2
  5. package/dist/agent.js.map +1 -1
  6. package/dist/commands/sandbox.d.ts.map +1 -1
  7. package/dist/commands/sandbox.js +13 -10
  8. package/dist/commands/sandbox.js.map +1 -1
  9. package/dist/commands/types.d.ts +2 -0
  10. package/dist/commands/types.d.ts.map +1 -1
  11. package/dist/commands/types.js.map +1 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +40 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/execution-resolver.d.ts +1 -1
  16. package/dist/execution-resolver.d.ts.map +1 -1
  17. package/dist/execution-resolver.js +10 -12
  18. package/dist/execution-resolver.js.map +1 -1
  19. package/dist/main.js +84 -8
  20. package/dist/main.js.map +1 -1
  21. package/dist/runtime/conversation-runtime.js +2 -0
  22. package/dist/runtime/conversation-runtime.js.map +1 -1
  23. package/dist/sandbox/container.d.ts +1 -0
  24. package/dist/sandbox/container.d.ts.map +1 -1
  25. package/dist/sandbox/container.js +1 -1
  26. package/dist/sandbox/container.js.map +1 -1
  27. package/dist/sandbox/gondolin-fleet.d.ts +88 -0
  28. package/dist/sandbox/gondolin-fleet.d.ts.map +1 -0
  29. package/dist/sandbox/gondolin-fleet.js +281 -0
  30. package/dist/sandbox/gondolin-fleet.js.map +1 -0
  31. package/dist/sandbox/gondolin-gateway.d.ts +75 -0
  32. package/dist/sandbox/gondolin-gateway.d.ts.map +1 -0
  33. package/dist/sandbox/gondolin-gateway.js +369 -0
  34. package/dist/sandbox/gondolin-gateway.js.map +1 -0
  35. package/dist/sandbox/gondolin-inventory.d.ts +89 -0
  36. package/dist/sandbox/gondolin-inventory.d.ts.map +1 -0
  37. package/dist/sandbox/gondolin-inventory.js +267 -0
  38. package/dist/sandbox/gondolin-inventory.js.map +1 -0
  39. package/dist/sandbox/gondolin-join.d.ts +62 -0
  40. package/dist/sandbox/gondolin-join.d.ts.map +1 -0
  41. package/dist/sandbox/gondolin-join.js +261 -0
  42. package/dist/sandbox/gondolin-join.js.map +1 -0
  43. package/dist/sandbox/gondolin-placement.d.ts +32 -0
  44. package/dist/sandbox/gondolin-placement.d.ts.map +1 -0
  45. package/dist/sandbox/gondolin-placement.js +83 -0
  46. package/dist/sandbox/gondolin-placement.js.map +1 -0
  47. package/dist/sandbox/gondolin-remote.d.ts +64 -0
  48. package/dist/sandbox/gondolin-remote.d.ts.map +1 -0
  49. package/dist/sandbox/gondolin-remote.js +327 -0
  50. package/dist/sandbox/gondolin-remote.js.map +1 -0
  51. package/dist/sandbox/gondolin-worker-client.d.ts +138 -0
  52. package/dist/sandbox/gondolin-worker-client.d.ts.map +1 -0
  53. package/dist/sandbox/gondolin-worker-client.js +300 -0
  54. package/dist/sandbox/gondolin-worker-client.js.map +1 -0
  55. package/dist/sandbox/gondolin-worker-main.d.ts +2 -0
  56. package/dist/sandbox/gondolin-worker-main.d.ts.map +1 -0
  57. package/dist/sandbox/gondolin-worker-main.js +22 -0
  58. package/dist/sandbox/gondolin-worker-main.js.map +1 -0
  59. package/dist/sandbox/gondolin-worker.d.ts +55 -0
  60. package/dist/sandbox/gondolin-worker.d.ts.map +1 -0
  61. package/dist/sandbox/gondolin-worker.js +201 -0
  62. package/dist/sandbox/gondolin-worker.js.map +1 -0
  63. package/dist/sandbox/gondolin.d.ts +47 -0
  64. package/dist/sandbox/gondolin.d.ts.map +1 -0
  65. package/dist/sandbox/gondolin.js +409 -0
  66. package/dist/sandbox/gondolin.js.map +1 -0
  67. package/dist/sandbox/identity.d.ts +1 -1
  68. package/dist/sandbox/identity.js +2 -2
  69. package/dist/sandbox/identity.js.map +1 -1
  70. package/dist/sandbox/index.d.ts +3 -3
  71. package/dist/sandbox/index.d.ts.map +1 -1
  72. package/dist/sandbox/index.js +4 -4
  73. package/dist/sandbox/index.js.map +1 -1
  74. package/dist/sandbox/types.d.ts +10 -4
  75. package/dist/sandbox/types.d.ts.map +1 -1
  76. package/dist/sandbox/types.js.map +1 -1
  77. package/dist/tools/index.d.ts +2 -2
  78. package/dist/tools/index.d.ts.map +1 -1
  79. package/dist/tools/index.js.map +1 -1
  80. package/dist/tools/sandbox.d.ts +2 -2
  81. package/dist/tools/sandbox.d.ts.map +1 -1
  82. package/dist/tools/sandbox.js +8 -7
  83. package/dist/tools/sandbox.js.map +1 -1
  84. package/dist/types.d.ts +66 -0
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/types.js.map +1 -1
  87. package/dist/vault/index.js +3 -0
  88. package/dist/vault/index.js.map +1 -1
  89. package/package.json +2 -2
  90. package/dist/sandbox/microvm.d.ts +0 -17
  91. package/dist/sandbox/microvm.d.ts.map +0 -1
  92. package/dist/sandbox/microvm.js +0 -145
  93. package/dist/sandbox/microvm.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -9,11 +9,40 @@ any release.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.0.0-beta.17]
13
+
14
+ ### Added
15
+
16
+ - Add `gondolin:remote` for scheduling sandbox runtimes across a fleet of Linux/KVM workers.
17
+ - Add a standalone `mikan-worker` daemon with mutual TLS, fenced leases, crash recovery, capacity-aware placement, draining, and sticky conversation assignment.
18
+ - Add dial-home worker enrollment through one-time join tokens and a mikan-hosted gateway.
19
+ - Add private workspace projection, vault injection, resource limits, lifecycle reconciliation, and drift recovery to Gondolin runtimes.
20
+ - Add worker installation, enrollment, operations, and remote quickstart documentation with a one-command end-to-end smoke test.
21
+ - Publish `mikan-worker` binaries and checksums with GitHub releases.
22
+
23
+ ### Changed
24
+
25
+ - Rename the preview sandbox mode from `microvm:default` to `gondolin:default` and the image build command to `npm run gondolin:image:build`.
26
+
27
+ ### Fixed
28
+
29
+ - Project mounted files correctly into Gondolin guests.
30
+ - Refresh rotated credentials when Gondolin runtimes are recreated.
31
+
32
+ ### Security
33
+
34
+ - Authenticate remote workers with mutual TLS and fence stale workers through expiring leases.
35
+ - Keep enrollment tokens one-time and store worker credentials privately.
36
+
37
+ ### Tests
38
+
39
+ - Add coverage for Gondolin lifecycle, workspace isolation, vaults, resource controls, fleet scheduling, gateways, enrollment, workers, leases, and remote execution.
40
+
12
41
  ## [1.0.0-beta.16]
13
42
 
14
43
  ### Added
15
44
 
16
- - Add a preview `microvm:default` sandbox backed by Gondolin and QEMU.
45
+ - Add a preview `gondolin:default` sandbox backed by Gondolin and QEMU.
17
46
  - Add a curated microVM guest image build with Node.js, Python, uv, Git, ripgrep, fd, jq, SSH, and build tools.
18
47
  - Manage one process-local microVM per conversation with idle shutdown and recreation on demand.
19
48
 
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;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
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
  });