@aspectlylabs/mikka 0.0.117 → 0.0.119
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/cli.js +20 -11
- package/client.js +2 -2
- package/http-link.js +2 -2
- package/login.js +2 -2
- package/main.js +20 -11
- package/mikka-release-manifest.json +16 -16
- package/mikka.js +20 -11
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/paths.js +2 -2
- package/sbom.cdx.json +7 -7
package/cli.js
CHANGED
|
@@ -4457,7 +4457,7 @@ import { join as join4 } from "node:path";
|
|
|
4457
4457
|
// package.json
|
|
4458
4458
|
var package_default = {
|
|
4459
4459
|
name: "@mikka/daemon",
|
|
4460
|
-
version: "0.0.
|
|
4460
|
+
version: "0.0.119",
|
|
4461
4461
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4462
4462
|
type: "module",
|
|
4463
4463
|
private: true,
|
|
@@ -4517,7 +4517,7 @@ var package_default = {
|
|
|
4517
4517
|
engines: {
|
|
4518
4518
|
node: ">=24"
|
|
4519
4519
|
},
|
|
4520
|
-
gitHead: "
|
|
4520
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
4521
4521
|
};
|
|
4522
4522
|
|
|
4523
4523
|
// src/paths.ts
|
|
@@ -10867,8 +10867,8 @@ function createLocalSubscriptionRunner(host) {
|
|
|
10867
10867
|
}
|
|
10868
10868
|
|
|
10869
10869
|
// src/sandbox-tools.ts
|
|
10870
|
-
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, renameSync as renameSync3, rmSync as rmSync14, writeFileSync as writeFileSync8 } from "node:fs";
|
|
10871
|
-
import { join as join25 } from "node:path";
|
|
10870
|
+
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, readlinkSync as readlinkSync2, renameSync as renameSync3, rmSync as rmSync14, writeFileSync as writeFileSync8 } from "node:fs";
|
|
10871
|
+
import { dirname as dirname12, isAbsolute as isAbsolute7, join as join25 } from "node:path";
|
|
10872
10872
|
import { execa as execa10 } from "execa";
|
|
10873
10873
|
|
|
10874
10874
|
// src/path-search.ts
|
|
@@ -10944,11 +10944,20 @@ async function ensureSandboxTools(options) {
|
|
|
10944
10944
|
if (missing.length < packages.length) log.info({ installed: packages.filter((name) => !missing.includes(name)) }, "sandbox tools installed");
|
|
10945
10945
|
return missing;
|
|
10946
10946
|
}
|
|
10947
|
+
function resolveUnpackedBinary(root, command) {
|
|
10948
|
+
let path = join25(root, "usr", "bin", command);
|
|
10949
|
+
for (let hops = 0; hops < 10; hops++) {
|
|
10950
|
+
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
10951
|
+
const target = readlinkSync2(path);
|
|
10952
|
+
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(dirname12(path), target);
|
|
10953
|
+
}
|
|
10954
|
+
throw new Error(`${command} resolves through too many symlinks`);
|
|
10955
|
+
}
|
|
10947
10956
|
async function installTool(tool2, context) {
|
|
10948
10957
|
const { work, dataDir, apt, run: run3 } = context;
|
|
10949
10958
|
const root = join25(work, "root");
|
|
10950
10959
|
await run3("dpkg-deb", ["-x", join25(work, debFile(work, tool2.package)), root], work);
|
|
10951
|
-
const unpacked =
|
|
10960
|
+
const unpacked = resolveUnpackedBinary(root, tool2.command);
|
|
10952
10961
|
chmodSync2(unpacked, 493);
|
|
10953
10962
|
const binDir = sandboxToolsDir(dataDir);
|
|
10954
10963
|
try {
|
|
@@ -13216,7 +13225,7 @@ function fixedCandidateCheck(assignment) {
|
|
|
13216
13225
|
// src/repositories.ts
|
|
13217
13226
|
import { createHash as createHash7, randomUUID as randomUUID7 } from "node:crypto";
|
|
13218
13227
|
import { existsSync as existsSync7, lstatSync as lstatSync9, mkdirSync as mkdirSync16, readdirSync as readdirSync8, realpathSync as realpathSync10, renameSync as renameSync4, rmSync as rmSync18 } from "node:fs";
|
|
13219
|
-
import { dirname as
|
|
13228
|
+
import { dirname as dirname13, join as join29, resolve as resolve12 } from "node:path";
|
|
13220
13229
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
13221
13230
|
import { execa as execa14 } from "execa";
|
|
13222
13231
|
import lockfile2 from "proper-lockfile";
|
|
@@ -13240,7 +13249,7 @@ var RepositoryCache = class {
|
|
|
13240
13249
|
signal?.throwIfAborted();
|
|
13241
13250
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
13242
13251
|
const path = this.pathFor(remote);
|
|
13243
|
-
this.ensureParents(
|
|
13252
|
+
this.ensureParents(dirname13(path));
|
|
13244
13253
|
const release = await this.lock(path, signal);
|
|
13245
13254
|
try {
|
|
13246
13255
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -13338,7 +13347,7 @@ import {
|
|
|
13338
13347
|
rmSync as rmSync19
|
|
13339
13348
|
} from "node:fs";
|
|
13340
13349
|
import { createRequire } from "node:module";
|
|
13341
|
-
import { delimiter as delimiter3, dirname as
|
|
13350
|
+
import { delimiter as delimiter3, dirname as dirname14, join as join30 } from "node:path";
|
|
13342
13351
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
13343
13352
|
import { promisify as promisify6 } from "node:util";
|
|
13344
13353
|
var exec3 = promisify6(execFile6);
|
|
@@ -13415,7 +13424,7 @@ async function createHostedBotRunner(host) {
|
|
|
13415
13424
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
13416
13425
|
);
|
|
13417
13426
|
claude ??= join30(
|
|
13418
|
-
|
|
13427
|
+
dirname14(
|
|
13419
13428
|
bundled.resolve(
|
|
13420
13429
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
13421
13430
|
)
|
|
@@ -13706,7 +13715,7 @@ async function createHostedBotRunner(host) {
|
|
|
13706
13715
|
const previous = readJson(ledger);
|
|
13707
13716
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
13708
13717
|
throw unavailable3();
|
|
13709
|
-
mkdirSync17(
|
|
13718
|
+
mkdirSync17(dirname14(ledger), { recursive: true, mode: 448 });
|
|
13710
13719
|
const record = async (sessionId) => {
|
|
13711
13720
|
assertOpen();
|
|
13712
13721
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -13810,7 +13819,7 @@ async function createHostedBotRunner(host) {
|
|
|
13810
13819
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
13811
13820
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
13812
13821
|
"-v",
|
|
13813
|
-
`${join30(
|
|
13822
|
+
`${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
13814
13823
|
"-v",
|
|
13815
13824
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
13816
13825
|
...computerGrant ? [
|
package/client.js
CHANGED
|
@@ -3719,7 +3719,7 @@ import { join } from "node:path";
|
|
|
3719
3719
|
// package.json
|
|
3720
3720
|
var package_default = {
|
|
3721
3721
|
name: "@mikka/daemon",
|
|
3722
|
-
version: "0.0.
|
|
3722
|
+
version: "0.0.119",
|
|
3723
3723
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3724
3724
|
type: "module",
|
|
3725
3725
|
private: true,
|
|
@@ -3779,7 +3779,7 @@ var package_default = {
|
|
|
3779
3779
|
engines: {
|
|
3780
3780
|
node: ">=24"
|
|
3781
3781
|
},
|
|
3782
|
-
gitHead: "
|
|
3782
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
3783
3783
|
};
|
|
3784
3784
|
|
|
3785
3785
|
// src/paths.ts
|
package/http-link.js
CHANGED
|
@@ -4118,7 +4118,7 @@ var InvalidIdError = class extends DaemonError {
|
|
|
4118
4118
|
// package.json
|
|
4119
4119
|
var package_default = {
|
|
4120
4120
|
name: "@mikka/daemon",
|
|
4121
|
-
version: "0.0.
|
|
4121
|
+
version: "0.0.119",
|
|
4122
4122
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4123
4123
|
type: "module",
|
|
4124
4124
|
private: true,
|
|
@@ -4178,7 +4178,7 @@ var package_default = {
|
|
|
4178
4178
|
engines: {
|
|
4179
4179
|
node: ">=24"
|
|
4180
4180
|
},
|
|
4181
|
-
gitHead: "
|
|
4181
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
4182
4182
|
};
|
|
4183
4183
|
|
|
4184
4184
|
// src/paths.ts
|
package/login.js
CHANGED
|
@@ -3726,7 +3726,7 @@ var ServerUnreachableError = class extends DaemonError {
|
|
|
3726
3726
|
// package.json
|
|
3727
3727
|
var package_default = {
|
|
3728
3728
|
name: "@mikka/daemon",
|
|
3729
|
-
version: "0.0.
|
|
3729
|
+
version: "0.0.119",
|
|
3730
3730
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3731
3731
|
type: "module",
|
|
3732
3732
|
private: true,
|
|
@@ -3786,7 +3786,7 @@ var package_default = {
|
|
|
3786
3786
|
engines: {
|
|
3787
3787
|
node: ">=24"
|
|
3788
3788
|
},
|
|
3789
|
-
gitHead: "
|
|
3789
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
3790
3790
|
};
|
|
3791
3791
|
|
|
3792
3792
|
// src/paths.ts
|
package/main.js
CHANGED
|
@@ -3773,7 +3773,7 @@ import { join as join5 } from "node:path";
|
|
|
3773
3773
|
// package.json
|
|
3774
3774
|
var package_default = {
|
|
3775
3775
|
name: "@mikka/daemon",
|
|
3776
|
-
version: "0.0.
|
|
3776
|
+
version: "0.0.119",
|
|
3777
3777
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3778
3778
|
type: "module",
|
|
3779
3779
|
private: true,
|
|
@@ -3833,7 +3833,7 @@ var package_default = {
|
|
|
3833
3833
|
engines: {
|
|
3834
3834
|
node: ">=24"
|
|
3835
3835
|
},
|
|
3836
|
-
gitHead: "
|
|
3836
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
3837
3837
|
};
|
|
3838
3838
|
|
|
3839
3839
|
// src/paths.ts
|
|
@@ -9777,8 +9777,8 @@ function createLocalSubscriptionRunner(host) {
|
|
|
9777
9777
|
}
|
|
9778
9778
|
|
|
9779
9779
|
// src/sandbox-tools.ts
|
|
9780
|
-
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync13, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, renameSync as renameSync3, rmSync as rmSync13, writeFileSync as writeFileSync8 } from "node:fs";
|
|
9781
|
-
import { join as join24 } from "node:path";
|
|
9780
|
+
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync13, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, readlinkSync as readlinkSync2, renameSync as renameSync3, rmSync as rmSync13, writeFileSync as writeFileSync8 } from "node:fs";
|
|
9781
|
+
import { dirname as dirname12, isAbsolute as isAbsolute7, join as join24 } from "node:path";
|
|
9782
9782
|
import { execa as execa10 } from "execa";
|
|
9783
9783
|
|
|
9784
9784
|
// src/path-search.ts
|
|
@@ -9854,11 +9854,20 @@ async function ensureSandboxTools(options) {
|
|
|
9854
9854
|
if (missing.length < packages.length) log.info({ installed: packages.filter((name) => !missing.includes(name)) }, "sandbox tools installed");
|
|
9855
9855
|
return missing;
|
|
9856
9856
|
}
|
|
9857
|
+
function resolveUnpackedBinary(root, command) {
|
|
9858
|
+
let path = join24(root, "usr", "bin", command);
|
|
9859
|
+
for (let hops = 0; hops < 10; hops++) {
|
|
9860
|
+
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
9861
|
+
const target = readlinkSync2(path);
|
|
9862
|
+
path = isAbsolute7(target) ? join24(root, `.${target}`) : join24(dirname12(path), target);
|
|
9863
|
+
}
|
|
9864
|
+
throw new Error(`${command} resolves through too many symlinks`);
|
|
9865
|
+
}
|
|
9857
9866
|
async function installTool(tool2, context) {
|
|
9858
9867
|
const { work, dataDir, apt, run: run3 } = context;
|
|
9859
9868
|
const root = join24(work, "root");
|
|
9860
9869
|
await run3("dpkg-deb", ["-x", join24(work, debFile(work, tool2.package)), root], work);
|
|
9861
|
-
const unpacked =
|
|
9870
|
+
const unpacked = resolveUnpackedBinary(root, tool2.command);
|
|
9862
9871
|
chmodSync2(unpacked, 493);
|
|
9863
9872
|
const binDir = sandboxToolsDir(dataDir);
|
|
9864
9873
|
try {
|
|
@@ -12291,7 +12300,7 @@ var SessionRejectedError = class extends DaemonError {
|
|
|
12291
12300
|
// src/repositories.ts
|
|
12292
12301
|
import { createHash as createHash7, randomUUID as randomUUID6 } from "node:crypto";
|
|
12293
12302
|
import { existsSync as existsSync7, lstatSync as lstatSync9, mkdirSync as mkdirSync16, readdirSync as readdirSync8, realpathSync as realpathSync10, renameSync as renameSync4, rmSync as rmSync18 } from "node:fs";
|
|
12294
|
-
import { dirname as
|
|
12303
|
+
import { dirname as dirname13, join as join29, resolve as resolve12 } from "node:path";
|
|
12295
12304
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
12296
12305
|
import { execa as execa14 } from "execa";
|
|
12297
12306
|
import lockfile2 from "proper-lockfile";
|
|
@@ -12315,7 +12324,7 @@ var RepositoryCache = class {
|
|
|
12315
12324
|
signal?.throwIfAborted();
|
|
12316
12325
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
12317
12326
|
const path = this.pathFor(remote);
|
|
12318
|
-
this.ensureParents(
|
|
12327
|
+
this.ensureParents(dirname13(path));
|
|
12319
12328
|
const release = await this.lock(path, signal);
|
|
12320
12329
|
try {
|
|
12321
12330
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -12413,7 +12422,7 @@ import {
|
|
|
12413
12422
|
rmSync as rmSync19
|
|
12414
12423
|
} from "node:fs";
|
|
12415
12424
|
import { createRequire } from "node:module";
|
|
12416
|
-
import { delimiter as delimiter3, dirname as
|
|
12425
|
+
import { delimiter as delimiter3, dirname as dirname14, join as join30 } from "node:path";
|
|
12417
12426
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
12418
12427
|
import { promisify as promisify6 } from "node:util";
|
|
12419
12428
|
var exec3 = promisify6(execFile6);
|
|
@@ -12490,7 +12499,7 @@ async function createHostedBotRunner(host) {
|
|
|
12490
12499
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
12491
12500
|
);
|
|
12492
12501
|
claude ??= join30(
|
|
12493
|
-
|
|
12502
|
+
dirname14(
|
|
12494
12503
|
bundled.resolve(
|
|
12495
12504
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
12496
12505
|
)
|
|
@@ -12781,7 +12790,7 @@ async function createHostedBotRunner(host) {
|
|
|
12781
12790
|
const previous = readJson(ledger);
|
|
12782
12791
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
12783
12792
|
throw unavailable3();
|
|
12784
|
-
mkdirSync17(
|
|
12793
|
+
mkdirSync17(dirname14(ledger), { recursive: true, mode: 448 });
|
|
12785
12794
|
const record = async (sessionId) => {
|
|
12786
12795
|
assertOpen();
|
|
12787
12796
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -12885,7 +12894,7 @@ async function createHostedBotRunner(host) {
|
|
|
12885
12894
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
12886
12895
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
12887
12896
|
"-v",
|
|
12888
|
-
`${join30(
|
|
12897
|
+
`${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
12889
12898
|
"-v",
|
|
12890
12899
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
12891
12900
|
...computerGrant ? [
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"sourceSha": "
|
|
3
|
+
"sourceSha": "3692a730e643f67944d04d0548e43a5a3f98e243",
|
|
4
4
|
"repository": "alexj11324/Mikka",
|
|
5
|
-
"buildRunId": "
|
|
5
|
+
"buildRunId": "41266025724",
|
|
6
6
|
"buildKind": "github-actions-main",
|
|
7
7
|
"sourceLockSha256": "c99f1e4f641d8e004cfe807653478e10f91e53fcf47102add5f4c154cdc1cb57",
|
|
8
|
-
"createdAt": "2026-11-01T02:
|
|
8
|
+
"createdAt": "2026-11-01T02:49:18.924Z",
|
|
9
9
|
"sbom": "sbom.cdx.json",
|
|
10
10
|
"files": [
|
|
11
11
|
{
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
"path": "cli.js",
|
|
43
|
-
"size":
|
|
44
|
-
"sha256": "
|
|
43
|
+
"size": 632263,
|
|
44
|
+
"sha256": "e73ef73d6be71ef7024523ab66b76e2f2d9980e10d479e10f11f5adff662673a"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "client.js",
|
|
48
48
|
"size": 139865,
|
|
49
|
-
"sha256": "
|
|
49
|
+
"sha256": "df1b10cbfc91c933829f7c7a857865be26010bf368df023782c2c1245dd9bfe0"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"path": "computer/driver.mjs",
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
{
|
|
172
172
|
"path": "http-link.js",
|
|
173
173
|
"size": 180835,
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "bb3da5fffe03bdce7500b0031219be4b7a12467064b7c658e17c227485cde888"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "log.js",
|
|
@@ -181,12 +181,12 @@
|
|
|
181
181
|
{
|
|
182
182
|
"path": "login.js",
|
|
183
183
|
"size": 144321,
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "c4237d0d1383b4ea330941b5f07ac749d5404f22ba469b3f1ff4e7d2b2a4b15f"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "main.js",
|
|
188
|
-
"size":
|
|
189
|
-
"sha256": "
|
|
188
|
+
"size": 577894,
|
|
189
|
+
"sha256": "a68124d1e69cb2f3fcae5919d32fe763edb1a7c08d277fe284a6e8fe2a00d1a3"
|
|
190
190
|
},
|
|
191
191
|
{
|
|
192
192
|
"path": "mikka-mcp.mjs",
|
|
@@ -195,23 +195,23 @@
|
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "mikka.js",
|
|
198
|
-
"size":
|
|
199
|
-
"sha256": "
|
|
198
|
+
"size": 632279,
|
|
199
|
+
"sha256": "3fc33a076c51450297d5f7f5a24a2707823bf9754ced17c2e3951a583c75d9b8"
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
"path": "npm-shrinkwrap.json",
|
|
203
203
|
"size": 78117,
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "8aadd7f5707ed7e997f23734e4e6ea23f9bcfe044d238d9e7087cc15cf1fccbb"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "package.json",
|
|
208
208
|
"size": 1247,
|
|
209
|
-
"sha256": "
|
|
209
|
+
"sha256": "301744448c0eef05a32967b2eff0043eacb3ec1215da01bd39aeff5355f0be49"
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
"path": "paths.js",
|
|
213
213
|
"size": 4138,
|
|
214
|
-
"sha256": "
|
|
214
|
+
"sha256": "0e5fcd691eed68be8efe483438c585e97e84b7bb98c6a6eb56d093d741f77fec"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "sandbox.js",
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
{
|
|
222
222
|
"path": "sbom.cdx.json",
|
|
223
223
|
"size": 144314,
|
|
224
|
-
"sha256": "
|
|
224
|
+
"sha256": "90c511e1d01e4fa9e7ef6ee953857a218d8e6aaadaa3b7535474e8086496e4a6"
|
|
225
225
|
}
|
|
226
226
|
]
|
|
227
227
|
}
|
package/mikka.js
CHANGED
|
@@ -4458,7 +4458,7 @@ import { join as join4 } from "node:path";
|
|
|
4458
4458
|
// package.json
|
|
4459
4459
|
var package_default = {
|
|
4460
4460
|
name: "@mikka/daemon",
|
|
4461
|
-
version: "0.0.
|
|
4461
|
+
version: "0.0.119",
|
|
4462
4462
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4463
4463
|
type: "module",
|
|
4464
4464
|
private: true,
|
|
@@ -4518,7 +4518,7 @@ var package_default = {
|
|
|
4518
4518
|
engines: {
|
|
4519
4519
|
node: ">=24"
|
|
4520
4520
|
},
|
|
4521
|
-
gitHead: "
|
|
4521
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
4522
4522
|
};
|
|
4523
4523
|
|
|
4524
4524
|
// src/paths.ts
|
|
@@ -10868,8 +10868,8 @@ function createLocalSubscriptionRunner(host) {
|
|
|
10868
10868
|
}
|
|
10869
10869
|
|
|
10870
10870
|
// src/sandbox-tools.ts
|
|
10871
|
-
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, renameSync as renameSync3, rmSync as rmSync14, writeFileSync as writeFileSync8 } from "node:fs";
|
|
10872
|
-
import { join as join25 } from "node:path";
|
|
10871
|
+
import { chmodSync as chmodSync2, existsSync as existsSync6, lstatSync as lstatSync8, mkdirSync as mkdirSync14, mkdtempSync as mkdtempSync6, readdirSync as readdirSync6, readlinkSync as readlinkSync2, renameSync as renameSync3, rmSync as rmSync14, writeFileSync as writeFileSync8 } from "node:fs";
|
|
10872
|
+
import { dirname as dirname12, isAbsolute as isAbsolute7, join as join25 } from "node:path";
|
|
10873
10873
|
import { execa as execa10 } from "execa";
|
|
10874
10874
|
|
|
10875
10875
|
// src/path-search.ts
|
|
@@ -10945,11 +10945,20 @@ async function ensureSandboxTools(options) {
|
|
|
10945
10945
|
if (missing.length < packages.length) log.info({ installed: packages.filter((name) => !missing.includes(name)) }, "sandbox tools installed");
|
|
10946
10946
|
return missing;
|
|
10947
10947
|
}
|
|
10948
|
+
function resolveUnpackedBinary(root, command) {
|
|
10949
|
+
let path = join25(root, "usr", "bin", command);
|
|
10950
|
+
for (let hops = 0; hops < 10; hops++) {
|
|
10951
|
+
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
10952
|
+
const target = readlinkSync2(path);
|
|
10953
|
+
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(dirname12(path), target);
|
|
10954
|
+
}
|
|
10955
|
+
throw new Error(`${command} resolves through too many symlinks`);
|
|
10956
|
+
}
|
|
10948
10957
|
async function installTool(tool2, context) {
|
|
10949
10958
|
const { work, dataDir, apt, run: run3 } = context;
|
|
10950
10959
|
const root = join25(work, "root");
|
|
10951
10960
|
await run3("dpkg-deb", ["-x", join25(work, debFile(work, tool2.package)), root], work);
|
|
10952
|
-
const unpacked =
|
|
10961
|
+
const unpacked = resolveUnpackedBinary(root, tool2.command);
|
|
10953
10962
|
chmodSync2(unpacked, 493);
|
|
10954
10963
|
const binDir = sandboxToolsDir(dataDir);
|
|
10955
10964
|
try {
|
|
@@ -13217,7 +13226,7 @@ function fixedCandidateCheck(assignment) {
|
|
|
13217
13226
|
// src/repositories.ts
|
|
13218
13227
|
import { createHash as createHash7, randomUUID as randomUUID7 } from "node:crypto";
|
|
13219
13228
|
import { existsSync as existsSync7, lstatSync as lstatSync9, mkdirSync as mkdirSync16, readdirSync as readdirSync8, realpathSync as realpathSync10, renameSync as renameSync4, rmSync as rmSync18 } from "node:fs";
|
|
13220
|
-
import { dirname as
|
|
13229
|
+
import { dirname as dirname13, join as join29, resolve as resolve12 } from "node:path";
|
|
13221
13230
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
13222
13231
|
import { execa as execa14 } from "execa";
|
|
13223
13232
|
import lockfile2 from "proper-lockfile";
|
|
@@ -13241,7 +13250,7 @@ var RepositoryCache = class {
|
|
|
13241
13250
|
signal?.throwIfAborted();
|
|
13242
13251
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
13243
13252
|
const path = this.pathFor(remote);
|
|
13244
|
-
this.ensureParents(
|
|
13253
|
+
this.ensureParents(dirname13(path));
|
|
13245
13254
|
const release = await this.lock(path, signal);
|
|
13246
13255
|
try {
|
|
13247
13256
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -13339,7 +13348,7 @@ import {
|
|
|
13339
13348
|
rmSync as rmSync19
|
|
13340
13349
|
} from "node:fs";
|
|
13341
13350
|
import { createRequire } from "node:module";
|
|
13342
|
-
import { delimiter as delimiter3, dirname as
|
|
13351
|
+
import { delimiter as delimiter3, dirname as dirname14, join as join30 } from "node:path";
|
|
13343
13352
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
13344
13353
|
import { promisify as promisify6 } from "node:util";
|
|
13345
13354
|
var exec3 = promisify6(execFile6);
|
|
@@ -13416,7 +13425,7 @@ async function createHostedBotRunner(host) {
|
|
|
13416
13425
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
13417
13426
|
);
|
|
13418
13427
|
claude ??= join30(
|
|
13419
|
-
|
|
13428
|
+
dirname14(
|
|
13420
13429
|
bundled.resolve(
|
|
13421
13430
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
13422
13431
|
)
|
|
@@ -13707,7 +13716,7 @@ async function createHostedBotRunner(host) {
|
|
|
13707
13716
|
const previous = readJson(ledger);
|
|
13708
13717
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
13709
13718
|
throw unavailable3();
|
|
13710
|
-
mkdirSync17(
|
|
13719
|
+
mkdirSync17(dirname14(ledger), { recursive: true, mode: 448 });
|
|
13711
13720
|
const record = async (sessionId) => {
|
|
13712
13721
|
assertOpen();
|
|
13713
13722
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -13811,7 +13820,7 @@ async function createHostedBotRunner(host) {
|
|
|
13811
13820
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
13812
13821
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
13813
13822
|
"-v",
|
|
13814
|
-
`${join30(
|
|
13823
|
+
`${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname14(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
13815
13824
|
"-v",
|
|
13816
13825
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
13817
13826
|
...computerGrant ? [
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspectlylabs/mikka",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.119",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@aspectlylabs/mikka",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.119",
|
|
10
10
|
"license": "AGPL-3.0-only",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@agentclientprotocol/sdk": "1.9.0",
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspectlylabs/mikka",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.119",
|
|
4
4
|
"description": "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
5
|
-
"gitHead": "
|
|
5
|
+
"gitHead": "3692a730e643f67944d04d0548e43a5a3f98e243",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"private": false,
|
|
8
8
|
"license": "AGPL-3.0-only",
|
package/paths.js
CHANGED
|
@@ -6,7 +6,7 @@ import { join } from "node:path";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@mikka/daemon",
|
|
9
|
-
version: "0.0.
|
|
9
|
+
version: "0.0.119",
|
|
10
10
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
11
11
|
type: "module",
|
|
12
12
|
private: true,
|
|
@@ -66,7 +66,7 @@ var package_default = {
|
|
|
66
66
|
engines: {
|
|
67
67
|
node: ">=24"
|
|
68
68
|
},
|
|
69
|
-
gitHead: "
|
|
69
|
+
gitHead: "3692a730e643f67944d04d0548e43a5a3f98e243"
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
// src/paths.ts
|
package/sbom.cdx.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
|
|
3
3
|
"bomFormat": "CycloneDX",
|
|
4
4
|
"specVersion": "1.5",
|
|
5
|
-
"serialNumber": "urn:uuid:
|
|
5
|
+
"serialNumber": "urn:uuid:86569a0b-0727-4370-9edb-6bbf794f8b01",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-11-01T02:
|
|
8
|
+
"timestamp": "2026-11-01T02:49:18.210Z",
|
|
9
9
|
"lifecycles": [
|
|
10
10
|
{
|
|
11
11
|
"phase": "pre-build"
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
"component": {
|
|
22
|
-
"bom-ref": "@aspectlylabs/mikka@0.0.
|
|
22
|
+
"bom-ref": "@aspectlylabs/mikka@0.0.119",
|
|
23
23
|
"type": "library",
|
|
24
|
-
"name": ".retained-build-
|
|
25
|
-
"version": "0.0.
|
|
24
|
+
"name": ".retained-build-otz6jF",
|
|
25
|
+
"version": "0.0.119",
|
|
26
26
|
"scope": "required",
|
|
27
27
|
"description": "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
28
|
-
"purl": "pkg:npm/%40aspectlylabs/mikka@0.0.
|
|
28
|
+
"purl": "pkg:npm/%40aspectlylabs/mikka@0.0.119",
|
|
29
29
|
"properties": [],
|
|
30
30
|
"externalReferences": [
|
|
31
31
|
{
|
|
@@ -4627,7 +4627,7 @@
|
|
|
4627
4627
|
],
|
|
4628
4628
|
"dependencies": [
|
|
4629
4629
|
{
|
|
4630
|
-
"ref": "@aspectlylabs/mikka@0.0.
|
|
4630
|
+
"ref": "@aspectlylabs/mikka@0.0.119",
|
|
4631
4631
|
"dependsOn": [
|
|
4632
4632
|
"@agentclientprotocol/sdk@1.9.0",
|
|
4633
4633
|
"@anthropic-ai/claude-agent-sdk@0.3.305",
|