@aspectlylabs/mikka 0.0.230 → 0.0.231
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/agents/native-container.mjs +7 -23
- package/cli.js +717 -2127
- package/client.js +4 -7
- package/computer/proxy.mjs +1 -17
- package/harness/cli.mjs +1 -1
- package/harness/install.mjs +2 -2
- package/http-link.js +692 -994
- package/login.js +51 -56
- package/main.js +364 -1583
- package/mikka-release-manifest.json +34 -54
- package/mikka.js +717 -2127
- package/npm-shrinkwrap.json +2 -54
- package/package.json +2 -3
- package/paths.js +4 -7
- package/sandbox.js +0 -115
- package/sbom.cdx.json +7 -171
- package/agents/native-egress.mjs +0 -51
- package/agents/run-container-entry.mjs +0 -22
- package/harness/Dockerfile +0 -19
- package/run-sandbox-worker.mjs +0 -360
package/client.js
CHANGED
|
@@ -3763,7 +3763,7 @@ import { join } from "node:path";
|
|
|
3763
3763
|
// package.json
|
|
3764
3764
|
var package_default = {
|
|
3765
3765
|
name: "@mikka/daemon",
|
|
3766
|
-
version: "0.0.
|
|
3766
|
+
version: "0.0.231",
|
|
3767
3767
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3768
3768
|
type: "module",
|
|
3769
3769
|
private: true,
|
|
@@ -3787,7 +3787,7 @@ var package_default = {
|
|
|
3787
3787
|
daemon: "tsx bin/mikka.ts daemon",
|
|
3788
3788
|
dev: "tsx watch bin/mikka.ts daemon --dev --server memory",
|
|
3789
3789
|
typecheck: "tsgo --noEmit -p tsconfig.json",
|
|
3790
|
-
test: "vitest run && pnpm test:mailbox-cli && pnpm test:repository-identity && pnpm test:github-credentials
|
|
3790
|
+
test: "vitest run && pnpm test:mailbox-cli && pnpm test:repository-identity && pnpm test:github-credentials",
|
|
3791
3791
|
"test:mailbox-cli": "node --import tsx --test --test-timeout=60000 test/run-mailbox.node-test.ts",
|
|
3792
3792
|
"codex:types": 'codex app-server generate-ts --out "${TMPDIR:-/tmp}/mikka-codex-types" && echo "Generated; compare v2/ with src/adapters/codex-protocol.ts"',
|
|
3793
3793
|
"test:real": "MIKKA_REAL_AGENTS=${MIKKA_REAL_AGENTS:-claude_code,codex,cursor} vitest run test/real-agents.test.ts",
|
|
@@ -3795,14 +3795,11 @@ var package_default = {
|
|
|
3795
3795
|
build: "node scripts/build.mjs",
|
|
3796
3796
|
"test:package": "node --test test/package.test.mjs",
|
|
3797
3797
|
"test:repository-identity": "node --experimental-strip-types --test test/repository-identity-pure.node-test.ts",
|
|
3798
|
-
"test:github-credentials": "node --test test/github-credentials.node-test.mjs"
|
|
3799
|
-
"test:run-container": "node --import tsx --test --test-timeout=900000 test/run-container.docker-test.ts",
|
|
3800
|
-
"test:local-git-origin-sandbox": "node --import tsx --test --test-timeout=60000 test/local-git-origin.sandbox-test.ts"
|
|
3798
|
+
"test:github-credentials": "node --test test/github-credentials.node-test.mjs"
|
|
3801
3799
|
},
|
|
3802
3800
|
dependencies: {
|
|
3803
3801
|
"@agentclientprotocol/sdk": "1.9.0",
|
|
3804
3802
|
"@anthropic-ai/claude-agent-sdk": "^0.3.305",
|
|
3805
|
-
"@anthropic-ai/sandbox-runtime": "0.0.80",
|
|
3806
3803
|
"@mikka/protocol": "workspace:*",
|
|
3807
3804
|
ai: "7.0.142",
|
|
3808
3805
|
execa: "10.1.1",
|
|
@@ -3824,7 +3821,7 @@ var package_default = {
|
|
|
3824
3821
|
engines: {
|
|
3825
3822
|
node: ">=24"
|
|
3826
3823
|
},
|
|
3827
|
-
gitHead: "
|
|
3824
|
+
gitHead: "931b22df15150487d8db57efbf8064864e90ffd5"
|
|
3828
3825
|
};
|
|
3829
3826
|
|
|
3830
3827
|
// src/paths.ts
|
package/computer/proxy.mjs
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Keeping tools/call pending returns the actual result to the same model turn
|
|
4
4
|
// after the authenticated reviewer decides; text 'resume' cannot approve it.
|
|
5
5
|
import { connect } from "node:net";
|
|
6
|
-
import { request as httpRequest } from "node:http";
|
|
7
6
|
import { createInterface } from "node:readline";
|
|
8
7
|
import { CAPTURE_TOOLS, TOOLS, isCaptureTool, normalizeCall, normalizeCaptureCall } from "./driver.mjs";
|
|
9
8
|
const [socketPath, token, ...flags] = process.argv.slice(2);
|
|
@@ -13,22 +12,7 @@ async function openBroker() {
|
|
|
13
12
|
if (!socketPath.startsWith('tcp://')) return connect(socketPath);
|
|
14
13
|
const target = new URL(socketPath);
|
|
15
14
|
if (target.hostname !== '127.0.0.1' || !target.port || target.username || target.password || target.pathname || target.search || target.hash) throw new Error('Invalid broker');
|
|
16
|
-
|
|
17
|
-
const proxy = new URL(process.env.HTTP_PROXY ?? process.env.http_proxy ?? '');
|
|
18
|
-
if (proxy.protocol !== 'http:' || !['127.0.0.1','localhost'].includes(proxy.hostname)) throw new Error('Sandbox proxy unavailable');
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
const headers = {};
|
|
21
|
-
if (proxy.username || proxy.password) headers['Proxy-Authorization'] = 'Basic ' + Buffer.from(decodeURIComponent(proxy.username) + ':' + decodeURIComponent(proxy.password)).toString('base64');
|
|
22
|
-
const req = httpRequest({ hostname: proxy.hostname, port: proxy.port || 80, method: 'CONNECT', path: target.host, headers });
|
|
23
|
-
req.once('error', reject);
|
|
24
|
-
req.setTimeout(10000, () => { req.destroy(); reject(new Error('Sandbox proxy unavailable')); });
|
|
25
|
-
req.once('connect', (response, socket, head) => {
|
|
26
|
-
if (response.statusCode !== 200) { socket.destroy(); reject(new Error('Sandbox proxy denied')); return; }
|
|
27
|
-
if (head.length) socket.unshift(head);
|
|
28
|
-
resolve(socket);
|
|
29
|
-
});
|
|
30
|
-
req.end();
|
|
31
|
-
});
|
|
15
|
+
return connect({ host: target.hostname, port: Number(target.port) });
|
|
32
16
|
}
|
|
33
17
|
async function request(call, kind = "call") {
|
|
34
18
|
const socket = await openBroker();
|
package/harness/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Installs the pinned harnesses with plain Node, for images built from the
|
|
2
|
-
// same pins as the daemon (
|
|
2
|
+
// same pins as the daemon (scripts/e2b/build-template.py):
|
|
3
3
|
// node harness/cli.mjs <root> [claude_code|codex ...]
|
|
4
4
|
// Prints each installed binary's path.
|
|
5
5
|
import { ensureHarness, MANAGED_HARNESSES } from './install.mjs'
|
package/harness/install.mjs
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
// `<root>/<harness>/<version>/bin/<command>`. A daemon release that bumps a
|
|
6
6
|
// pin installs the new version on its next run and removes the old.
|
|
7
7
|
//
|
|
8
|
-
// Plain JavaScript with no local imports beyond the pins: the
|
|
9
|
-
//
|
|
8
|
+
// Plain JavaScript with no local imports beyond the pins: the E2B templates
|
|
9
|
+
// run it through `cli.mjs`.
|
|
10
10
|
import { createHash, randomBytes } from 'node:crypto'
|
|
11
11
|
import { execFile } from 'node:child_process'
|
|
12
12
|
import { createWriteStream, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs'
|