@aspectlylabs/mikka 0.0.135 → 0.0.137
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 +30 -23
- package/client.js +2 -2
- package/http-link.js +2 -2
- package/login.js +2 -2
- package/main.js +39 -32
- package/mikka-release-manifest.json +16 -16
- package/mikka.js +30 -23
- 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.137",
|
|
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: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
4521
4521
|
};
|
|
4522
4522
|
|
|
4523
4523
|
// src/paths.ts
|
|
@@ -5677,7 +5677,7 @@ async function registrationLogin(options) {
|
|
|
5677
5677
|
|
|
5678
5678
|
// src/coordinator/runner.ts
|
|
5679
5679
|
import { mkdirSync as mkdirSync9, mkdtempSync as mkdtempSync3, rmSync as rmSync9, writeFileSync as writeFileSync5 } from "node:fs";
|
|
5680
|
-
import { dirname as
|
|
5680
|
+
import { dirname as dirname9, join as join12 } from "node:path";
|
|
5681
5681
|
import { setTimeout as delay } from "node:timers/promises";
|
|
5682
5682
|
import { z as z30 } from "zod";
|
|
5683
5683
|
|
|
@@ -6091,7 +6091,7 @@ import {
|
|
|
6091
6091
|
rmSync as rmSync5
|
|
6092
6092
|
} from "node:fs";
|
|
6093
6093
|
import { tmpdir } from "node:os";
|
|
6094
|
-
import { join as join8, resolve as resolve5 } from "node:path";
|
|
6094
|
+
import { dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6095
6095
|
|
|
6096
6096
|
// src/ids.ts
|
|
6097
6097
|
var SAFE_ID = /^[A-Za-z0-9_-]{1,64}$/;
|
|
@@ -6512,7 +6512,8 @@ async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
|
6512
6512
|
const common = resolve5(gitDir, "..", "..");
|
|
6513
6513
|
const branch = `mikka/run-${assertSafeId("run id", runId)}`;
|
|
6514
6514
|
const ref = join8(common, "refs", "heads", branch);
|
|
6515
|
-
|
|
6515
|
+
const logsRef = join8(common, "logs", "refs", "heads", branch);
|
|
6516
|
+
return [gitDir, join8(common, "objects"), dirname7(ref), ref, `${ref}.lock`, dirname7(logsRef), logsRef];
|
|
6516
6517
|
}
|
|
6517
6518
|
function safeRealpath(path) {
|
|
6518
6519
|
try {
|
|
@@ -6726,14 +6727,20 @@ exec env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NOD
|
|
|
6726
6727
|
PATH: `${bin}${delimiter}${path}`,
|
|
6727
6728
|
GH_HOST: "github.com",
|
|
6728
6729
|
GH_REPO: github.repository,
|
|
6730
|
+
// The agent commits inside the sandbox, where a signing program or agent
|
|
6731
|
+
// configured outside it (gpg, ssh-agent, a signing helper) is unreachable.
|
|
6729
6732
|
GIT_TERMINAL_PROMPT: "0",
|
|
6730
|
-
GIT_CONFIG_COUNT: "
|
|
6733
|
+
GIT_CONFIG_COUNT: "5",
|
|
6731
6734
|
GIT_CONFIG_KEY_0: "credential.helper",
|
|
6732
6735
|
GIT_CONFIG_VALUE_0: "",
|
|
6733
6736
|
GIT_CONFIG_KEY_1: "credential.https://github.com.helper",
|
|
6734
6737
|
GIT_CONFIG_VALUE_1: `!env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NODE=1 " : ""}${quote(node)} ${quote(helper)} git ${quote(config)}`,
|
|
6735
6738
|
GIT_CONFIG_KEY_2: "credential.useHttpPath",
|
|
6736
6739
|
GIT_CONFIG_VALUE_2: "true",
|
|
6740
|
+
GIT_CONFIG_KEY_3: "commit.gpgSign",
|
|
6741
|
+
GIT_CONFIG_VALUE_3: "false",
|
|
6742
|
+
GIT_CONFIG_KEY_4: "tag.gpgSign",
|
|
6743
|
+
GIT_CONFIG_VALUE_4: "false",
|
|
6737
6744
|
GIT_AUTHOR_NAME: "Mikka Agent",
|
|
6738
6745
|
GIT_AUTHOR_EMAIL: "agent@mikka.invalid",
|
|
6739
6746
|
GIT_COMMITTER_NAME: "Mikka Agent",
|
|
@@ -6797,7 +6804,7 @@ import {
|
|
|
6797
6804
|
writeFileSync as writeFileSync4
|
|
6798
6805
|
} from "node:fs";
|
|
6799
6806
|
import { homedir as homedir4 } from "node:os";
|
|
6800
|
-
import { dirname as
|
|
6807
|
+
import { dirname as dirname8, join as join11, resolve as resolve7 } from "node:path";
|
|
6801
6808
|
|
|
6802
6809
|
// src/agents/skill-artifact.ts
|
|
6803
6810
|
import { createHash as createHash2 } from "node:crypto";
|
|
@@ -7100,7 +7107,7 @@ var RunContext = class {
|
|
|
7100
7107
|
for (const file of skill.files) {
|
|
7101
7108
|
const target = resolve7(dir, file.path);
|
|
7102
7109
|
if (!target.startsWith(`${dir}/`)) continue;
|
|
7103
|
-
mkdirSync8(
|
|
7110
|
+
mkdirSync8(dirname8(target), { recursive: true });
|
|
7104
7111
|
writeFileSync4(target, file.content, "utf8");
|
|
7105
7112
|
}
|
|
7106
7113
|
}
|
|
@@ -7620,7 +7627,7 @@ sandbox_mode = "read-only"
|
|
|
7620
7627
|
env: { ...buildChildEnv(process.env), CODEX_HOME: home.home },
|
|
7621
7628
|
policy: {
|
|
7622
7629
|
allowWrite: [dir],
|
|
7623
|
-
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(
|
|
7630
|
+
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(dirname9(options.stateDir))],
|
|
7624
7631
|
allowDomains: HARNESS_DOMAINS.codex
|
|
7625
7632
|
},
|
|
7626
7633
|
pidFile: join12(dir, "private", "codex.pid"),
|
|
@@ -9691,7 +9698,7 @@ ${firstMessage}` : firstMessage
|
|
|
9691
9698
|
// src/adapters/mock.ts
|
|
9692
9699
|
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
9693
9700
|
import { mkdirSync as mkdirSync11, readFileSync as readFileSync8, writeFileSync as writeFileSync6 } from "node:fs";
|
|
9694
|
-
import { dirname as
|
|
9701
|
+
import { dirname as dirname10, join as join17, resolve as resolve8 } from "node:path";
|
|
9695
9702
|
import { setTimeout as sleep2 } from "node:timers/promises";
|
|
9696
9703
|
import { execa as execa5 } from "execa";
|
|
9697
9704
|
|
|
@@ -9842,7 +9849,7 @@ var MockAdapter = class {
|
|
|
9842
9849
|
);
|
|
9843
9850
|
}
|
|
9844
9851
|
const target = resolve8(options.cwd, line.write.path);
|
|
9845
|
-
mkdirSync11(
|
|
9852
|
+
mkdirSync11(dirname10(target), { recursive: true });
|
|
9846
9853
|
writeFileSync6(target, line.write.content);
|
|
9847
9854
|
}
|
|
9848
9855
|
if (line.chunk) yield { type: "chunk", chunk: line.chunk };
|
|
@@ -10104,7 +10111,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
10104
10111
|
import { execFile as execFile3 } from "node:child_process";
|
|
10105
10112
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
10106
10113
|
import { homedir as homedir5, platform } from "node:os";
|
|
10107
|
-
import { basename as basename2, dirname as
|
|
10114
|
+
import { basename as basename2, dirname as dirname11, isAbsolute as isAbsolute5, join as join19, resolve as resolve9 } from "node:path";
|
|
10108
10115
|
import { promisify as promisify3 } from "node:util";
|
|
10109
10116
|
var run = promisify3(execFile3);
|
|
10110
10117
|
async function git(cwd, args) {
|
|
@@ -10186,7 +10193,7 @@ async function browseFolder(request) {
|
|
|
10186
10193
|
isRepo: await exists(join19(full, ".git"))
|
|
10187
10194
|
});
|
|
10188
10195
|
}
|
|
10189
|
-
const parent =
|
|
10196
|
+
const parent = dirname11(path);
|
|
10190
10197
|
return {
|
|
10191
10198
|
ok: true,
|
|
10192
10199
|
path,
|
|
@@ -10413,7 +10420,7 @@ function harnessFingerprint(store) {
|
|
|
10413
10420
|
import { spawn as spawn4 } from "node:child_process";
|
|
10414
10421
|
import { createHash as createHash5 } from "node:crypto";
|
|
10415
10422
|
import { existsSync as existsSync5, readFileSync as readFileSync10 } from "node:fs";
|
|
10416
|
-
import { dirname as
|
|
10423
|
+
import { dirname as dirname12, join as join22, resolve as resolve10 } from "node:path";
|
|
10417
10424
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
10418
10425
|
import { execa as execa9 } from "execa";
|
|
10419
10426
|
|
|
@@ -10672,7 +10679,7 @@ function containerMounts(policy, gitCommonDir2) {
|
|
|
10672
10679
|
if (gitCommonDir2) mounts.set(gitCommonDir2, "ro");
|
|
10673
10680
|
for (const path of policy.allowWrite) mounts.set(path, "rw");
|
|
10674
10681
|
for (const path of policy.denyWrite ?? []) if (existsSync5(path)) mounts.set(path, "ro");
|
|
10675
|
-
for (const path of [MCP_SERVER_SCRIPT, join22(
|
|
10682
|
+
for (const path of [MCP_SERVER_SCRIPT, join22(dirname12(MCP_SERVER_SCRIPT), "capture-copy.mjs")]) mounts.set(path, "ro");
|
|
10676
10683
|
return [...mounts].flatMap(([path, mode]) => ["-v", `${path}:${path}:${mode}`]);
|
|
10677
10684
|
}
|
|
10678
10685
|
function containerArgs(options) {
|
|
@@ -10871,7 +10878,7 @@ function createLocalSubscriptionRunner(host) {
|
|
|
10871
10878
|
|
|
10872
10879
|
// src/sandbox-tools.ts
|
|
10873
10880
|
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";
|
|
10874
|
-
import { dirname as
|
|
10881
|
+
import { dirname as dirname13, isAbsolute as isAbsolute7, join as join25 } from "node:path";
|
|
10875
10882
|
import { execa as execa10 } from "execa";
|
|
10876
10883
|
|
|
10877
10884
|
// src/path-search.ts
|
|
@@ -10952,7 +10959,7 @@ function resolveUnpackedBinary(root, command) {
|
|
|
10952
10959
|
for (let hops = 0; hops < 10; hops++) {
|
|
10953
10960
|
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
10954
10961
|
const target = readlinkSync2(path);
|
|
10955
|
-
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(
|
|
10962
|
+
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(dirname13(path), target);
|
|
10956
10963
|
}
|
|
10957
10964
|
throw new Error(`${command} resolves through too many symlinks`);
|
|
10958
10965
|
}
|
|
@@ -13228,7 +13235,7 @@ function fixedCandidateCheck(assignment) {
|
|
|
13228
13235
|
// src/repositories.ts
|
|
13229
13236
|
import { createHash as createHash7, randomUUID as randomUUID7 } from "node:crypto";
|
|
13230
13237
|
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";
|
|
13231
|
-
import { dirname as
|
|
13238
|
+
import { dirname as dirname14, join as join29, resolve as resolve12 } from "node:path";
|
|
13232
13239
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
13233
13240
|
import { execa as execa14 } from "execa";
|
|
13234
13241
|
import lockfile2 from "proper-lockfile";
|
|
@@ -13252,7 +13259,7 @@ var RepositoryCache = class {
|
|
|
13252
13259
|
signal?.throwIfAborted();
|
|
13253
13260
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
13254
13261
|
const path = this.pathFor(remote);
|
|
13255
|
-
this.ensureParents(
|
|
13262
|
+
this.ensureParents(dirname14(path));
|
|
13256
13263
|
const release = await this.lock(path, signal);
|
|
13257
13264
|
try {
|
|
13258
13265
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -13350,7 +13357,7 @@ import {
|
|
|
13350
13357
|
rmSync as rmSync19
|
|
13351
13358
|
} from "node:fs";
|
|
13352
13359
|
import { createRequire } from "node:module";
|
|
13353
|
-
import { delimiter as delimiter3, dirname as
|
|
13360
|
+
import { delimiter as delimiter3, dirname as dirname15, join as join30 } from "node:path";
|
|
13354
13361
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
13355
13362
|
import { promisify as promisify6 } from "node:util";
|
|
13356
13363
|
var exec3 = promisify6(execFile6);
|
|
@@ -13427,7 +13434,7 @@ async function createHostedBotRunner(host) {
|
|
|
13427
13434
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
13428
13435
|
);
|
|
13429
13436
|
claude ??= join30(
|
|
13430
|
-
|
|
13437
|
+
dirname15(
|
|
13431
13438
|
bundled.resolve(
|
|
13432
13439
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
13433
13440
|
)
|
|
@@ -13718,7 +13725,7 @@ async function createHostedBotRunner(host) {
|
|
|
13718
13725
|
const previous = readJson(ledger);
|
|
13719
13726
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
13720
13727
|
throw unavailable3();
|
|
13721
|
-
mkdirSync17(
|
|
13728
|
+
mkdirSync17(dirname15(ledger), { recursive: true, mode: 448 });
|
|
13722
13729
|
const record = async (sessionId) => {
|
|
13723
13730
|
assertOpen();
|
|
13724
13731
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -13822,7 +13829,7 @@ async function createHostedBotRunner(host) {
|
|
|
13822
13829
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
13823
13830
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
13824
13831
|
"-v",
|
|
13825
|
-
`${join30(
|
|
13832
|
+
`${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
13826
13833
|
"-v",
|
|
13827
13834
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
13828
13835
|
...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.137",
|
|
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: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
3783
3783
|
};
|
|
3784
3784
|
|
|
3785
3785
|
// src/paths.ts
|
package/http-link.js
CHANGED
|
@@ -4121,7 +4121,7 @@ var InvalidIdError = class extends DaemonError {
|
|
|
4121
4121
|
// package.json
|
|
4122
4122
|
var package_default = {
|
|
4123
4123
|
name: "@mikka/daemon",
|
|
4124
|
-
version: "0.0.
|
|
4124
|
+
version: "0.0.137",
|
|
4125
4125
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4126
4126
|
type: "module",
|
|
4127
4127
|
private: true,
|
|
@@ -4181,7 +4181,7 @@ var package_default = {
|
|
|
4181
4181
|
engines: {
|
|
4182
4182
|
node: ">=24"
|
|
4183
4183
|
},
|
|
4184
|
-
gitHead: "
|
|
4184
|
+
gitHead: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
4185
4185
|
};
|
|
4186
4186
|
|
|
4187
4187
|
// 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.137",
|
|
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: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
3790
3790
|
};
|
|
3791
3791
|
|
|
3792
3792
|
// src/paths.ts
|
package/main.js
CHANGED
|
@@ -2024,7 +2024,7 @@ var require_semver2 = __commonJS({
|
|
|
2024
2024
|
|
|
2025
2025
|
// src/coordinator/runner.ts
|
|
2026
2026
|
import { mkdirSync as mkdirSync8, mkdtempSync as mkdtempSync3, rmSync as rmSync8, writeFileSync as writeFileSync5 } from "node:fs";
|
|
2027
|
-
import { dirname as
|
|
2027
|
+
import { dirname as dirname7, join as join9 } from "node:path";
|
|
2028
2028
|
import { setTimeout as delay } from "node:timers/promises";
|
|
2029
2029
|
import { z as z26 } from "zod";
|
|
2030
2030
|
|
|
@@ -2665,7 +2665,7 @@ import {
|
|
|
2665
2665
|
rmSync as rmSync4
|
|
2666
2666
|
} from "node:fs";
|
|
2667
2667
|
import { tmpdir } from "node:os";
|
|
2668
|
-
import { join as join3, resolve as resolve2 } from "node:path";
|
|
2668
|
+
import { dirname as dirname3, join as join3, resolve as resolve2 } from "node:path";
|
|
2669
2669
|
|
|
2670
2670
|
// src/ids.ts
|
|
2671
2671
|
var SAFE_ID = /^[A-Za-z0-9_-]{1,64}$/;
|
|
@@ -3086,7 +3086,8 @@ async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
|
3086
3086
|
const common = resolve2(gitDir, "..", "..");
|
|
3087
3087
|
const branch = `mikka/run-${assertSafeId("run id", runId)}`;
|
|
3088
3088
|
const ref = join3(common, "refs", "heads", branch);
|
|
3089
|
-
|
|
3089
|
+
const logsRef = join3(common, "logs", "refs", "heads", branch);
|
|
3090
|
+
return [gitDir, join3(common, "objects"), dirname3(ref), ref, `${ref}.lock`, dirname3(logsRef), logsRef];
|
|
3090
3091
|
}
|
|
3091
3092
|
function safeRealpath(path) {
|
|
3092
3093
|
try {
|
|
@@ -3300,14 +3301,20 @@ exec env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NOD
|
|
|
3300
3301
|
PATH: `${bin}${delimiter}${path}`,
|
|
3301
3302
|
GH_HOST: "github.com",
|
|
3302
3303
|
GH_REPO: github.repository,
|
|
3304
|
+
// The agent commits inside the sandbox, where a signing program or agent
|
|
3305
|
+
// configured outside it (gpg, ssh-agent, a signing helper) is unreachable.
|
|
3303
3306
|
GIT_TERMINAL_PROMPT: "0",
|
|
3304
|
-
GIT_CONFIG_COUNT: "
|
|
3307
|
+
GIT_CONFIG_COUNT: "5",
|
|
3305
3308
|
GIT_CONFIG_KEY_0: "credential.helper",
|
|
3306
3309
|
GIT_CONFIG_VALUE_0: "",
|
|
3307
3310
|
GIT_CONFIG_KEY_1: "credential.https://github.com.helper",
|
|
3308
3311
|
GIT_CONFIG_VALUE_1: `!env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NODE=1 " : ""}${quote(node)} ${quote(helper)} git ${quote(config)}`,
|
|
3309
3312
|
GIT_CONFIG_KEY_2: "credential.useHttpPath",
|
|
3310
3313
|
GIT_CONFIG_VALUE_2: "true",
|
|
3314
|
+
GIT_CONFIG_KEY_3: "commit.gpgSign",
|
|
3315
|
+
GIT_CONFIG_VALUE_3: "false",
|
|
3316
|
+
GIT_CONFIG_KEY_4: "tag.gpgSign",
|
|
3317
|
+
GIT_CONFIG_VALUE_4: "false",
|
|
3311
3318
|
GIT_AUTHOR_NAME: "Mikka Agent",
|
|
3312
3319
|
GIT_AUTHOR_EMAIL: "agent@mikka.invalid",
|
|
3313
3320
|
GIT_COMMITTER_NAME: "Mikka Agent",
|
|
@@ -3391,7 +3398,7 @@ import {
|
|
|
3391
3398
|
writeFileSync as writeFileSync4
|
|
3392
3399
|
} from "node:fs";
|
|
3393
3400
|
import { homedir as homedir2 } from "node:os";
|
|
3394
|
-
import { dirname as
|
|
3401
|
+
import { dirname as dirname6, join as join8, resolve as resolve5 } from "node:path";
|
|
3395
3402
|
|
|
3396
3403
|
// ../protocol/src/run.ts
|
|
3397
3404
|
import { z as z4 } from "zod";
|
|
@@ -3773,7 +3780,7 @@ import { join as join5 } from "node:path";
|
|
|
3773
3780
|
// package.json
|
|
3774
3781
|
var package_default = {
|
|
3775
3782
|
name: "@mikka/daemon",
|
|
3776
|
-
version: "0.0.
|
|
3783
|
+
version: "0.0.137",
|
|
3777
3784
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3778
3785
|
type: "module",
|
|
3779
3786
|
private: true,
|
|
@@ -3833,7 +3840,7 @@ var package_default = {
|
|
|
3833
3840
|
engines: {
|
|
3834
3841
|
node: ">=24"
|
|
3835
3842
|
},
|
|
3836
|
-
gitHead: "
|
|
3843
|
+
gitHead: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
3837
3844
|
};
|
|
3838
3845
|
|
|
3839
3846
|
// src/paths.ts
|
|
@@ -3877,7 +3884,7 @@ function daemonPaths(dataDir) {
|
|
|
3877
3884
|
import { lstatSync as lstatSync5, readlinkSync, realpathSync as realpathSync5 } from "node:fs";
|
|
3878
3885
|
import {
|
|
3879
3886
|
basename,
|
|
3880
|
-
dirname as
|
|
3887
|
+
dirname as dirname4,
|
|
3881
3888
|
isAbsolute as isAbsolute2,
|
|
3882
3889
|
join as join6,
|
|
3883
3890
|
relative as relative2,
|
|
@@ -4018,10 +4025,10 @@ function realTarget(path) {
|
|
|
4018
4025
|
} catch {
|
|
4019
4026
|
if (lstatSync5(current, { throwIfNoEntry: false })?.isSymbolicLink()) {
|
|
4020
4027
|
if (++hops > 40) return path;
|
|
4021
|
-
current = resolve4(
|
|
4028
|
+
current = resolve4(dirname4(current), readlinkSync(current));
|
|
4022
4029
|
continue;
|
|
4023
4030
|
}
|
|
4024
|
-
const parent =
|
|
4031
|
+
const parent = dirname4(current);
|
|
4025
4032
|
if (parent === current) return path;
|
|
4026
4033
|
missing.push(basename(current));
|
|
4027
4034
|
current = parent;
|
|
@@ -5589,9 +5596,9 @@ import {
|
|
|
5589
5596
|
renameSync,
|
|
5590
5597
|
writeSync
|
|
5591
5598
|
} from "node:fs";
|
|
5592
|
-
import { dirname as
|
|
5599
|
+
import { dirname as dirname5 } from "node:path";
|
|
5593
5600
|
function writeFileAtomic(file, data, mode = 384) {
|
|
5594
|
-
mkdirSync5(
|
|
5601
|
+
mkdirSync5(dirname5(file), { recursive: true });
|
|
5595
5602
|
const tmp = `${file}.${process.pid}.tmp`;
|
|
5596
5603
|
const fd = openSync(tmp, "w", mode);
|
|
5597
5604
|
try {
|
|
@@ -5887,7 +5894,7 @@ var RunContext = class {
|
|
|
5887
5894
|
for (const file of skill.files) {
|
|
5888
5895
|
const target = resolve5(dir, file.path);
|
|
5889
5896
|
if (!target.startsWith(`${dir}/`)) continue;
|
|
5890
|
-
mkdirSync7(
|
|
5897
|
+
mkdirSync7(dirname6(target), { recursive: true });
|
|
5891
5898
|
writeFileSync4(target, file.content, "utf8");
|
|
5892
5899
|
}
|
|
5893
5900
|
}
|
|
@@ -6407,7 +6414,7 @@ sandbox_mode = "read-only"
|
|
|
6407
6414
|
env: { ...buildChildEnv(process.env), CODEX_HOME: home.home },
|
|
6408
6415
|
policy: {
|
|
6409
6416
|
allowWrite: [dir],
|
|
6410
|
-
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(
|
|
6417
|
+
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(dirname7(options.stateDir))],
|
|
6411
6418
|
allowDomains: HARNESS_DOMAINS.codex
|
|
6412
6419
|
},
|
|
6413
6420
|
pidFile: join9(dir, "private", "codex.pid"),
|
|
@@ -8513,7 +8520,7 @@ ${firstMessage}` : firstMessage
|
|
|
8513
8520
|
// src/adapters/mock.ts
|
|
8514
8521
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
8515
8522
|
import { mkdirSync as mkdirSync10, readFileSync as readFileSync7, writeFileSync as writeFileSync6 } from "node:fs";
|
|
8516
|
-
import { dirname as
|
|
8523
|
+
import { dirname as dirname8, join as join14, resolve as resolve6 } from "node:path";
|
|
8517
8524
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
8518
8525
|
import { execa as execa5 } from "execa";
|
|
8519
8526
|
|
|
@@ -8664,7 +8671,7 @@ var MockAdapter = class {
|
|
|
8664
8671
|
);
|
|
8665
8672
|
}
|
|
8666
8673
|
const target = resolve6(options.cwd, line.write.path);
|
|
8667
|
-
mkdirSync10(
|
|
8674
|
+
mkdirSync10(dirname8(target), { recursive: true });
|
|
8668
8675
|
writeFileSync6(target, line.write.content);
|
|
8669
8676
|
}
|
|
8670
8677
|
if (line.chunk) yield { type: "chunk", chunk: line.chunk };
|
|
@@ -8926,7 +8933,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
8926
8933
|
import { execFile } from "node:child_process";
|
|
8927
8934
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
8928
8935
|
import { homedir as homedir3, platform } from "node:os";
|
|
8929
|
-
import { basename as basename2, dirname as
|
|
8936
|
+
import { basename as basename2, dirname as dirname9, isAbsolute as isAbsolute5, join as join16, resolve as resolve7 } from "node:path";
|
|
8930
8937
|
import { promisify } from "node:util";
|
|
8931
8938
|
var run = promisify(execFile);
|
|
8932
8939
|
async function git(cwd, args) {
|
|
@@ -9008,7 +9015,7 @@ async function browseFolder(request) {
|
|
|
9008
9015
|
isRepo: await exists(join16(full, ".git"))
|
|
9009
9016
|
});
|
|
9010
9017
|
}
|
|
9011
|
-
const parent =
|
|
9018
|
+
const parent = dirname9(path);
|
|
9012
9019
|
return {
|
|
9013
9020
|
ok: true,
|
|
9014
9021
|
path,
|
|
@@ -9036,7 +9043,7 @@ async function verifyExpectedOrigin(path, expected) {
|
|
|
9036
9043
|
import { execFile as execFile2 } from "node:child_process";
|
|
9037
9044
|
import { realpathSync as realpathSync9 } from "node:fs";
|
|
9038
9045
|
import { homedir as homedir4 } from "node:os";
|
|
9039
|
-
import { dirname as
|
|
9046
|
+
import { dirname as dirname10, join as join17, resolve as resolve8 } from "node:path";
|
|
9040
9047
|
import { promisify as promisify2 } from "node:util";
|
|
9041
9048
|
var exec = promisify2(execFile2);
|
|
9042
9049
|
var DAY = 24 * 60 * 60 * 1e3;
|
|
@@ -9048,12 +9055,12 @@ function newerStableVersion(candidate, current) {
|
|
|
9048
9055
|
return false;
|
|
9049
9056
|
}
|
|
9050
9057
|
async function runServiceNpm(args) {
|
|
9051
|
-
const npm = realpathSync9(join17(
|
|
9058
|
+
const npm = realpathSync9(join17(dirname10(process.execPath), "npm"));
|
|
9052
9059
|
const { stdout } = await exec(process.execPath, [npm, ...args], {
|
|
9053
9060
|
cwd: homedir4(),
|
|
9054
9061
|
timeout: 3e5,
|
|
9055
9062
|
maxBuffer: 1024 * 1024,
|
|
9056
|
-
env: { ...process.env, PATH: `${
|
|
9063
|
+
env: { ...process.env, PATH: `${dirname10(process.execPath)}:${process.env.PATH ?? ""}` }
|
|
9057
9064
|
});
|
|
9058
9065
|
return stdout.trim();
|
|
9059
9066
|
}
|
|
@@ -9070,7 +9077,7 @@ import { execFile as execFile3 } from "node:child_process";
|
|
|
9070
9077
|
import { promisify as promisify3 } from "node:util";
|
|
9071
9078
|
import { mkdir, writeFile, rm } from "node:fs/promises";
|
|
9072
9079
|
import { homedir as homedir5 } from "node:os";
|
|
9073
|
-
import { dirname as
|
|
9080
|
+
import { dirname as dirname11, join as join18, resolve as resolve9 } from "node:path";
|
|
9074
9081
|
var exec2 = promisify3(execFile3);
|
|
9075
9082
|
var label = "com.aspectlylabs.mikka.daemon";
|
|
9076
9083
|
async function restartService(update, beforeRestart, dependencies = {
|
|
@@ -9323,7 +9330,7 @@ function harnessFingerprint(store) {
|
|
|
9323
9330
|
import { spawn as spawn4 } from "node:child_process";
|
|
9324
9331
|
import { createHash as createHash5 } from "node:crypto";
|
|
9325
9332
|
import { existsSync as existsSync5, readFileSync as readFileSync9 } from "node:fs";
|
|
9326
|
-
import { dirname as
|
|
9333
|
+
import { dirname as dirname12, join as join21, resolve as resolve10 } from "node:path";
|
|
9327
9334
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
9328
9335
|
import { execa as execa9 } from "execa";
|
|
9329
9336
|
|
|
@@ -9582,7 +9589,7 @@ function containerMounts(policy, gitCommonDir2) {
|
|
|
9582
9589
|
if (gitCommonDir2) mounts.set(gitCommonDir2, "ro");
|
|
9583
9590
|
for (const path of policy.allowWrite) mounts.set(path, "rw");
|
|
9584
9591
|
for (const path of policy.denyWrite ?? []) if (existsSync5(path)) mounts.set(path, "ro");
|
|
9585
|
-
for (const path of [MCP_SERVER_SCRIPT, join21(
|
|
9592
|
+
for (const path of [MCP_SERVER_SCRIPT, join21(dirname12(MCP_SERVER_SCRIPT), "capture-copy.mjs")]) mounts.set(path, "ro");
|
|
9586
9593
|
return [...mounts].flatMap(([path, mode]) => ["-v", `${path}:${path}:${mode}`]);
|
|
9587
9594
|
}
|
|
9588
9595
|
function containerArgs(options) {
|
|
@@ -9781,7 +9788,7 @@ function createLocalSubscriptionRunner(host) {
|
|
|
9781
9788
|
|
|
9782
9789
|
// src/sandbox-tools.ts
|
|
9783
9790
|
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";
|
|
9784
|
-
import { dirname as
|
|
9791
|
+
import { dirname as dirname13, isAbsolute as isAbsolute7, join as join24 } from "node:path";
|
|
9785
9792
|
import { execa as execa10 } from "execa";
|
|
9786
9793
|
|
|
9787
9794
|
// src/path-search.ts
|
|
@@ -9862,7 +9869,7 @@ function resolveUnpackedBinary(root, command) {
|
|
|
9862
9869
|
for (let hops = 0; hops < 10; hops++) {
|
|
9863
9870
|
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
9864
9871
|
const target = readlinkSync2(path);
|
|
9865
|
-
path = isAbsolute7(target) ? join24(root, `.${target}`) : join24(
|
|
9872
|
+
path = isAbsolute7(target) ? join24(root, `.${target}`) : join24(dirname13(path), target);
|
|
9866
9873
|
}
|
|
9867
9874
|
throw new Error(`${command} resolves through too many symlinks`);
|
|
9868
9875
|
}
|
|
@@ -12303,7 +12310,7 @@ var SessionRejectedError = class extends DaemonError {
|
|
|
12303
12310
|
// src/repositories.ts
|
|
12304
12311
|
import { createHash as createHash7, randomUUID as randomUUID6 } from "node:crypto";
|
|
12305
12312
|
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";
|
|
12306
|
-
import { dirname as
|
|
12313
|
+
import { dirname as dirname14, join as join29, resolve as resolve12 } from "node:path";
|
|
12307
12314
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
12308
12315
|
import { execa as execa14 } from "execa";
|
|
12309
12316
|
import lockfile2 from "proper-lockfile";
|
|
@@ -12327,7 +12334,7 @@ var RepositoryCache = class {
|
|
|
12327
12334
|
signal?.throwIfAborted();
|
|
12328
12335
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
12329
12336
|
const path = this.pathFor(remote);
|
|
12330
|
-
this.ensureParents(
|
|
12337
|
+
this.ensureParents(dirname14(path));
|
|
12331
12338
|
const release = await this.lock(path, signal);
|
|
12332
12339
|
try {
|
|
12333
12340
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -12425,7 +12432,7 @@ import {
|
|
|
12425
12432
|
rmSync as rmSync19
|
|
12426
12433
|
} from "node:fs";
|
|
12427
12434
|
import { createRequire } from "node:module";
|
|
12428
|
-
import { delimiter as delimiter3, dirname as
|
|
12435
|
+
import { delimiter as delimiter3, dirname as dirname15, join as join30 } from "node:path";
|
|
12429
12436
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
12430
12437
|
import { promisify as promisify6 } from "node:util";
|
|
12431
12438
|
var exec3 = promisify6(execFile6);
|
|
@@ -12502,7 +12509,7 @@ async function createHostedBotRunner(host) {
|
|
|
12502
12509
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
12503
12510
|
);
|
|
12504
12511
|
claude ??= join30(
|
|
12505
|
-
|
|
12512
|
+
dirname15(
|
|
12506
12513
|
bundled.resolve(
|
|
12507
12514
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
12508
12515
|
)
|
|
@@ -12793,7 +12800,7 @@ async function createHostedBotRunner(host) {
|
|
|
12793
12800
|
const previous = readJson(ledger);
|
|
12794
12801
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
12795
12802
|
throw unavailable3();
|
|
12796
|
-
mkdirSync17(
|
|
12803
|
+
mkdirSync17(dirname15(ledger), { recursive: true, mode: 448 });
|
|
12797
12804
|
const record = async (sessionId) => {
|
|
12798
12805
|
assertOpen();
|
|
12799
12806
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -12897,7 +12904,7 @@ async function createHostedBotRunner(host) {
|
|
|
12897
12904
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
12898
12905
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
12899
12906
|
"-v",
|
|
12900
|
-
`${join30(
|
|
12907
|
+
`${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
12901
12908
|
"-v",
|
|
12902
12909
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
12903
12910
|
...computerGrant ? [
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"sourceSha": "
|
|
3
|
+
"sourceSha": "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6",
|
|
4
4
|
"repository": "alexj11324/Mikka",
|
|
5
|
-
"buildRunId": "
|
|
5
|
+
"buildRunId": "41273318229",
|
|
6
6
|
"buildKind": "github-actions-main",
|
|
7
7
|
"sourceLockSha256": "c99f1e4f641d8e004cfe807653478e10f91e53fcf47102add5f4c154cdc1cb57",
|
|
8
|
-
"createdAt": "2026-11-01T04:
|
|
8
|
+
"createdAt": "2026-11-01T04:42:18.233Z",
|
|
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": 634724,
|
|
44
|
+
"sha256": "0f90daa50f571daafb4ac8d5d6e57ecff8ac481be7dedfa158fe6f31a0bb43e7"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "client.js",
|
|
48
48
|
"size": 139865,
|
|
49
|
-
"sha256": "
|
|
49
|
+
"sha256": "4d0e7b8763db3d42380d14e7db123fc21290b80a06612f85f86173e1d7422629"
|
|
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": 181108,
|
|
174
|
-
"sha256": "
|
|
174
|
+
"sha256": "798c9754b2dbcc028ec4c42595ee47c2503ef82fd8ad23ec826eb4b9565d9cc5"
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
177
|
"path": "log.js",
|
|
@@ -181,12 +181,12 @@
|
|
|
181
181
|
{
|
|
182
182
|
"path": "login.js",
|
|
183
183
|
"size": 144600,
|
|
184
|
-
"sha256": "
|
|
184
|
+
"sha256": "e122a2a3686942abbbe36d785985e0f8ddde07cbc86a279f9761f0dd90c6bab1"
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"path": "main.js",
|
|
188
|
-
"size":
|
|
189
|
-
"sha256": "
|
|
188
|
+
"size": 580350,
|
|
189
|
+
"sha256": "e17154083cd17b156ab56f4d6ab256d2d95ec325e8ee7ee37255740251f7cc04"
|
|
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": 634740,
|
|
199
|
+
"sha256": "905ecad76b53df54f4268237445fa0da27e1fdc6ad1d033e360d3111f9ac6436"
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
"path": "npm-shrinkwrap.json",
|
|
203
203
|
"size": 78117,
|
|
204
|
-
"sha256": "
|
|
204
|
+
"sha256": "29f0c09c9836b6f53ec21716fb4e662e6e843eb95b587f53239e7d938fc0225a"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "package.json",
|
|
208
208
|
"size": 1247,
|
|
209
|
-
"sha256": "
|
|
209
|
+
"sha256": "57cc6ed74e54fa091fe16b008c4a34440e7d188aae4b752e77a7d2cdab14d342"
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
"path": "paths.js",
|
|
213
213
|
"size": 4138,
|
|
214
|
-
"sha256": "
|
|
214
|
+
"sha256": "4dce5b4e25fb8d3f529db5bc4dd20c427b88ef29e8bccc8a6bf35ab445dd9969"
|
|
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": "21aed31e8c01b4a27def6b05a3f3087e6896bc0c5ea01178639e07ae21377894"
|
|
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.137",
|
|
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: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
4522
4522
|
};
|
|
4523
4523
|
|
|
4524
4524
|
// src/paths.ts
|
|
@@ -5678,7 +5678,7 @@ async function registrationLogin(options) {
|
|
|
5678
5678
|
|
|
5679
5679
|
// src/coordinator/runner.ts
|
|
5680
5680
|
import { mkdirSync as mkdirSync9, mkdtempSync as mkdtempSync3, rmSync as rmSync9, writeFileSync as writeFileSync5 } from "node:fs";
|
|
5681
|
-
import { dirname as
|
|
5681
|
+
import { dirname as dirname9, join as join12 } from "node:path";
|
|
5682
5682
|
import { setTimeout as delay } from "node:timers/promises";
|
|
5683
5683
|
import { z as z30 } from "zod";
|
|
5684
5684
|
|
|
@@ -6092,7 +6092,7 @@ import {
|
|
|
6092
6092
|
rmSync as rmSync5
|
|
6093
6093
|
} from "node:fs";
|
|
6094
6094
|
import { tmpdir } from "node:os";
|
|
6095
|
-
import { join as join8, resolve as resolve5 } from "node:path";
|
|
6095
|
+
import { dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6096
6096
|
|
|
6097
6097
|
// src/ids.ts
|
|
6098
6098
|
var SAFE_ID = /^[A-Za-z0-9_-]{1,64}$/;
|
|
@@ -6513,7 +6513,8 @@ async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
|
6513
6513
|
const common = resolve5(gitDir, "..", "..");
|
|
6514
6514
|
const branch = `mikka/run-${assertSafeId("run id", runId)}`;
|
|
6515
6515
|
const ref = join8(common, "refs", "heads", branch);
|
|
6516
|
-
|
|
6516
|
+
const logsRef = join8(common, "logs", "refs", "heads", branch);
|
|
6517
|
+
return [gitDir, join8(common, "objects"), dirname7(ref), ref, `${ref}.lock`, dirname7(logsRef), logsRef];
|
|
6517
6518
|
}
|
|
6518
6519
|
function safeRealpath(path) {
|
|
6519
6520
|
try {
|
|
@@ -6727,14 +6728,20 @@ exec env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NOD
|
|
|
6727
6728
|
PATH: `${bin}${delimiter}${path}`,
|
|
6728
6729
|
GH_HOST: "github.com",
|
|
6729
6730
|
GH_REPO: github.repository,
|
|
6731
|
+
// The agent commits inside the sandbox, where a signing program or agent
|
|
6732
|
+
// configured outside it (gpg, ssh-agent, a signing helper) is unreachable.
|
|
6730
6733
|
GIT_TERMINAL_PROMPT: "0",
|
|
6731
|
-
GIT_CONFIG_COUNT: "
|
|
6734
|
+
GIT_CONFIG_COUNT: "5",
|
|
6732
6735
|
GIT_CONFIG_KEY_0: "credential.helper",
|
|
6733
6736
|
GIT_CONFIG_VALUE_0: "",
|
|
6734
6737
|
GIT_CONFIG_KEY_1: "credential.https://github.com.helper",
|
|
6735
6738
|
GIT_CONFIG_VALUE_1: `!env NODE_USE_ENV_PROXY=1 ${process.versions.electron ? "ELECTRON_RUN_AS_NODE=1 " : ""}${quote(node)} ${quote(helper)} git ${quote(config)}`,
|
|
6736
6739
|
GIT_CONFIG_KEY_2: "credential.useHttpPath",
|
|
6737
6740
|
GIT_CONFIG_VALUE_2: "true",
|
|
6741
|
+
GIT_CONFIG_KEY_3: "commit.gpgSign",
|
|
6742
|
+
GIT_CONFIG_VALUE_3: "false",
|
|
6743
|
+
GIT_CONFIG_KEY_4: "tag.gpgSign",
|
|
6744
|
+
GIT_CONFIG_VALUE_4: "false",
|
|
6738
6745
|
GIT_AUTHOR_NAME: "Mikka Agent",
|
|
6739
6746
|
GIT_AUTHOR_EMAIL: "agent@mikka.invalid",
|
|
6740
6747
|
GIT_COMMITTER_NAME: "Mikka Agent",
|
|
@@ -6798,7 +6805,7 @@ import {
|
|
|
6798
6805
|
writeFileSync as writeFileSync4
|
|
6799
6806
|
} from "node:fs";
|
|
6800
6807
|
import { homedir as homedir4 } from "node:os";
|
|
6801
|
-
import { dirname as
|
|
6808
|
+
import { dirname as dirname8, join as join11, resolve as resolve7 } from "node:path";
|
|
6802
6809
|
|
|
6803
6810
|
// src/agents/skill-artifact.ts
|
|
6804
6811
|
import { createHash as createHash2 } from "node:crypto";
|
|
@@ -7101,7 +7108,7 @@ var RunContext = class {
|
|
|
7101
7108
|
for (const file of skill.files) {
|
|
7102
7109
|
const target = resolve7(dir, file.path);
|
|
7103
7110
|
if (!target.startsWith(`${dir}/`)) continue;
|
|
7104
|
-
mkdirSync8(
|
|
7111
|
+
mkdirSync8(dirname8(target), { recursive: true });
|
|
7105
7112
|
writeFileSync4(target, file.content, "utf8");
|
|
7106
7113
|
}
|
|
7107
7114
|
}
|
|
@@ -7621,7 +7628,7 @@ sandbox_mode = "read-only"
|
|
|
7621
7628
|
env: { ...buildChildEnv(process.env), CODEX_HOME: home.home },
|
|
7622
7629
|
policy: {
|
|
7623
7630
|
allowWrite: [dir],
|
|
7624
|
-
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(
|
|
7631
|
+
denyRead: [...credentialDenyRead("codex"), ...daemonSecrets(dirname9(options.stateDir))],
|
|
7625
7632
|
allowDomains: HARNESS_DOMAINS.codex
|
|
7626
7633
|
},
|
|
7627
7634
|
pidFile: join12(dir, "private", "codex.pid"),
|
|
@@ -9692,7 +9699,7 @@ ${firstMessage}` : firstMessage
|
|
|
9692
9699
|
// src/adapters/mock.ts
|
|
9693
9700
|
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
9694
9701
|
import { mkdirSync as mkdirSync11, readFileSync as readFileSync8, writeFileSync as writeFileSync6 } from "node:fs";
|
|
9695
|
-
import { dirname as
|
|
9702
|
+
import { dirname as dirname10, join as join17, resolve as resolve8 } from "node:path";
|
|
9696
9703
|
import { setTimeout as sleep2 } from "node:timers/promises";
|
|
9697
9704
|
import { execa as execa5 } from "execa";
|
|
9698
9705
|
|
|
@@ -9843,7 +9850,7 @@ var MockAdapter = class {
|
|
|
9843
9850
|
);
|
|
9844
9851
|
}
|
|
9845
9852
|
const target = resolve8(options.cwd, line.write.path);
|
|
9846
|
-
mkdirSync11(
|
|
9853
|
+
mkdirSync11(dirname10(target), { recursive: true });
|
|
9847
9854
|
writeFileSync6(target, line.write.content);
|
|
9848
9855
|
}
|
|
9849
9856
|
if (line.chunk) yield { type: "chunk", chunk: line.chunk };
|
|
@@ -10105,7 +10112,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
10105
10112
|
import { execFile as execFile3 } from "node:child_process";
|
|
10106
10113
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
10107
10114
|
import { homedir as homedir5, platform } from "node:os";
|
|
10108
|
-
import { basename as basename2, dirname as
|
|
10115
|
+
import { basename as basename2, dirname as dirname11, isAbsolute as isAbsolute5, join as join19, resolve as resolve9 } from "node:path";
|
|
10109
10116
|
import { promisify as promisify3 } from "node:util";
|
|
10110
10117
|
var run = promisify3(execFile3);
|
|
10111
10118
|
async function git(cwd, args) {
|
|
@@ -10187,7 +10194,7 @@ async function browseFolder(request) {
|
|
|
10187
10194
|
isRepo: await exists(join19(full, ".git"))
|
|
10188
10195
|
});
|
|
10189
10196
|
}
|
|
10190
|
-
const parent =
|
|
10197
|
+
const parent = dirname11(path);
|
|
10191
10198
|
return {
|
|
10192
10199
|
ok: true,
|
|
10193
10200
|
path,
|
|
@@ -10414,7 +10421,7 @@ function harnessFingerprint(store) {
|
|
|
10414
10421
|
import { spawn as spawn4 } from "node:child_process";
|
|
10415
10422
|
import { createHash as createHash5 } from "node:crypto";
|
|
10416
10423
|
import { existsSync as existsSync5, readFileSync as readFileSync10 } from "node:fs";
|
|
10417
|
-
import { dirname as
|
|
10424
|
+
import { dirname as dirname12, join as join22, resolve as resolve10 } from "node:path";
|
|
10418
10425
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
10419
10426
|
import { execa as execa9 } from "execa";
|
|
10420
10427
|
|
|
@@ -10673,7 +10680,7 @@ function containerMounts(policy, gitCommonDir2) {
|
|
|
10673
10680
|
if (gitCommonDir2) mounts.set(gitCommonDir2, "ro");
|
|
10674
10681
|
for (const path of policy.allowWrite) mounts.set(path, "rw");
|
|
10675
10682
|
for (const path of policy.denyWrite ?? []) if (existsSync5(path)) mounts.set(path, "ro");
|
|
10676
|
-
for (const path of [MCP_SERVER_SCRIPT, join22(
|
|
10683
|
+
for (const path of [MCP_SERVER_SCRIPT, join22(dirname12(MCP_SERVER_SCRIPT), "capture-copy.mjs")]) mounts.set(path, "ro");
|
|
10677
10684
|
return [...mounts].flatMap(([path, mode]) => ["-v", `${path}:${path}:${mode}`]);
|
|
10678
10685
|
}
|
|
10679
10686
|
function containerArgs(options) {
|
|
@@ -10872,7 +10879,7 @@ function createLocalSubscriptionRunner(host) {
|
|
|
10872
10879
|
|
|
10873
10880
|
// src/sandbox-tools.ts
|
|
10874
10881
|
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";
|
|
10875
|
-
import { dirname as
|
|
10882
|
+
import { dirname as dirname13, isAbsolute as isAbsolute7, join as join25 } from "node:path";
|
|
10876
10883
|
import { execa as execa10 } from "execa";
|
|
10877
10884
|
|
|
10878
10885
|
// src/path-search.ts
|
|
@@ -10953,7 +10960,7 @@ function resolveUnpackedBinary(root, command) {
|
|
|
10953
10960
|
for (let hops = 0; hops < 10; hops++) {
|
|
10954
10961
|
if (!lstatSync8(path).isSymbolicLink()) return path;
|
|
10955
10962
|
const target = readlinkSync2(path);
|
|
10956
|
-
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(
|
|
10963
|
+
path = isAbsolute7(target) ? join25(root, `.${target}`) : join25(dirname13(path), target);
|
|
10957
10964
|
}
|
|
10958
10965
|
throw new Error(`${command} resolves through too many symlinks`);
|
|
10959
10966
|
}
|
|
@@ -13229,7 +13236,7 @@ function fixedCandidateCheck(assignment) {
|
|
|
13229
13236
|
// src/repositories.ts
|
|
13230
13237
|
import { createHash as createHash7, randomUUID as randomUUID7 } from "node:crypto";
|
|
13231
13238
|
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";
|
|
13232
|
-
import { dirname as
|
|
13239
|
+
import { dirname as dirname14, join as join29, resolve as resolve12 } from "node:path";
|
|
13233
13240
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
13234
13241
|
import { execa as execa14 } from "execa";
|
|
13235
13242
|
import lockfile2 from "proper-lockfile";
|
|
@@ -13253,7 +13260,7 @@ var RepositoryCache = class {
|
|
|
13253
13260
|
signal?.throwIfAborted();
|
|
13254
13261
|
const { remoteUrl: remote } = normalizeRepository(remoteUrl, { allowFile: this.allowFile });
|
|
13255
13262
|
const path = this.pathFor(remote);
|
|
13256
|
-
this.ensureParents(
|
|
13263
|
+
this.ensureParents(dirname14(path));
|
|
13257
13264
|
const release = await this.lock(path, signal);
|
|
13258
13265
|
try {
|
|
13259
13266
|
return await withRepoConfig(path, () => this.update(path, remote, signal));
|
|
@@ -13351,7 +13358,7 @@ import {
|
|
|
13351
13358
|
rmSync as rmSync19
|
|
13352
13359
|
} from "node:fs";
|
|
13353
13360
|
import { createRequire } from "node:module";
|
|
13354
|
-
import { delimiter as delimiter3, dirname as
|
|
13361
|
+
import { delimiter as delimiter3, dirname as dirname15, join as join30 } from "node:path";
|
|
13355
13362
|
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
13356
13363
|
import { promisify as promisify6 } from "node:util";
|
|
13357
13364
|
var exec3 = promisify6(execFile6);
|
|
@@ -13428,7 +13435,7 @@ async function createHostedBotRunner(host) {
|
|
|
13428
13435
|
require2.resolve("@anthropic-ai/claude-agent-sdk")
|
|
13429
13436
|
);
|
|
13430
13437
|
claude ??= join30(
|
|
13431
|
-
|
|
13438
|
+
dirname15(
|
|
13432
13439
|
bundled.resolve(
|
|
13433
13440
|
"@anthropic-ai/claude-agent-sdk-linux-x64/package.json"
|
|
13434
13441
|
)
|
|
@@ -13719,7 +13726,7 @@ async function createHostedBotRunner(host) {
|
|
|
13719
13726
|
const previous = readJson(ledger);
|
|
13720
13727
|
if (existsSync8(ledger) && (!previous || JSON.stringify(previous.scope) !== JSON.stringify(scope) || typeof previous.sessionId !== "string"))
|
|
13721
13728
|
throw unavailable3();
|
|
13722
|
-
mkdirSync17(
|
|
13729
|
+
mkdirSync17(dirname15(ledger), { recursive: true, mode: 448 });
|
|
13723
13730
|
const record = async (sessionId) => {
|
|
13724
13731
|
assertOpen();
|
|
13725
13732
|
writeJsonAtomic(ledger, { scope, sessionId });
|
|
@@ -13823,7 +13830,7 @@ async function createHostedBotRunner(host) {
|
|
|
13823
13830
|
`${MCP_SERVER_SCRIPT}:${MCP_SERVER_SCRIPT}:ro`,
|
|
13824
13831
|
...githubCli ? ["-v", `${githubCli}:/usr/local/bin/mikka-gh:ro`, "-v", `${GITHUB_CREDENTIAL_SCRIPT}:${GITHUB_CREDENTIAL_SCRIPT}:ro`] : [],
|
|
13825
13832
|
"-v",
|
|
13826
|
-
`${join30(
|
|
13833
|
+
`${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:${join30(dirname15(MCP_SERVER_SCRIPT), "capture-copy.mjs")}:ro`,
|
|
13827
13834
|
"-v",
|
|
13828
13835
|
`${readyBroker.socket}:/run/mikka-native.sock:ro`,
|
|
13829
13836
|
...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.137",
|
|
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.137",
|
|
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.137",
|
|
4
4
|
"description": "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
5
|
-
"gitHead": "
|
|
5
|
+
"gitHead": "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6",
|
|
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.137",
|
|
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: "686bcc2d8211e09c9ef0ff941fa58bc7fb1eefe6"
|
|
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:0263a7a3-87ac-42e7-9814-6ac65813ffb7",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-11-01T04:
|
|
8
|
+
"timestamp": "2026-11-01T04:42:17.485Z",
|
|
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.137",
|
|
23
23
|
"type": "library",
|
|
24
|
-
"name": ".retained-build-
|
|
25
|
-
"version": "0.0.
|
|
24
|
+
"name": ".retained-build-DRDmmY",
|
|
25
|
+
"version": "0.0.137",
|
|
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.137",
|
|
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.137",
|
|
4631
4631
|
"dependsOn": [
|
|
4632
4632
|
"@agentclientprotocol/sdk@1.9.0",
|
|
4633
4633
|
"@anthropic-ai/claude-agent-sdk@0.3.305",
|