@aspectlylabs/mikka 0.0.154 → 0.0.155
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 +24 -12
- package/client.js +2 -2
- package/http-link.js +2 -2
- package/login.js +2 -2
- package/main.js +28 -16
- package/mikka-release-manifest.json +16 -16
- package/mikka.js +24 -12
- 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
|
@@ -4480,7 +4480,7 @@ import { join as join4 } from "node:path";
|
|
|
4480
4480
|
// package.json
|
|
4481
4481
|
var package_default = {
|
|
4482
4482
|
name: "@mikka/daemon",
|
|
4483
|
-
version: "0.0.
|
|
4483
|
+
version: "0.0.155",
|
|
4484
4484
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4485
4485
|
type: "module",
|
|
4486
4486
|
private: true,
|
|
@@ -4540,7 +4540,7 @@ var package_default = {
|
|
|
4540
4540
|
engines: {
|
|
4541
4541
|
node: ">=24"
|
|
4542
4542
|
},
|
|
4543
|
-
gitHead: "
|
|
4543
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
4544
4544
|
};
|
|
4545
4545
|
|
|
4546
4546
|
// src/paths.ts
|
|
@@ -6115,7 +6115,7 @@ import {
|
|
|
6115
6115
|
rmSync as rmSync5
|
|
6116
6116
|
} from "node:fs";
|
|
6117
6117
|
import { tmpdir } from "node:os";
|
|
6118
|
-
import { dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6118
|
+
import { basename as basename2, dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6119
6119
|
|
|
6120
6120
|
// src/ids.ts
|
|
6121
6121
|
var SAFE_ID = /^[A-Za-z0-9_-]{1,64}$/;
|
|
@@ -6532,12 +6532,10 @@ async function worktreeGitDir(repoPath, worktree) {
|
|
|
6532
6532
|
throw new Error(`${worktree} is not a worktree of ${repoPath}`);
|
|
6533
6533
|
}
|
|
6534
6534
|
async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
6535
|
-
|
|
6536
|
-
const common = resolve5(
|
|
6537
|
-
|
|
6538
|
-
|
|
6539
|
-
const logsRef = join8(common, "logs", "refs", "heads", branch);
|
|
6540
|
-
return [gitDir, join8(common, "objects"), dirname7(ref), ref, `${ref}.lock`, dirname7(logsRef), logsRef];
|
|
6535
|
+
assertSafeId("run id", runId);
|
|
6536
|
+
const common = resolve5(await worktreeGitDir(repoPath, worktree), "..", "..");
|
|
6537
|
+
if (basename2(common) !== ".git") throw new Error(`${repoPath} is not a standard clone`);
|
|
6538
|
+
return [dirname7(common)];
|
|
6541
6539
|
}
|
|
6542
6540
|
function safeRealpath(path) {
|
|
6543
6541
|
try {
|
|
@@ -7014,6 +7012,16 @@ var HARNESS_DOMAINS = {
|
|
|
7014
7012
|
var MCP_SERVER_SCRIPT = resolve7(import.meta.dirname, "mikka-mcp.mjs");
|
|
7015
7013
|
var MCP_SERVER_NAME = "mikka";
|
|
7016
7014
|
var COMPUTER_MCP_SERVER_NAME = "mikka_computer";
|
|
7015
|
+
var RUN_GIT_CONFIG = [["maintenance.auto", "false"], ["gc.auto", "0"]];
|
|
7016
|
+
function withGitConfig(env, entries) {
|
|
7017
|
+
const start = Number(env.GIT_CONFIG_COUNT ?? 0);
|
|
7018
|
+
const out = { ...env, GIT_CONFIG_COUNT: String(start + entries.length) };
|
|
7019
|
+
entries.forEach(([key2, value], i) => {
|
|
7020
|
+
out[`GIT_CONFIG_KEY_${start + i}`] = key2;
|
|
7021
|
+
out[`GIT_CONFIG_VALUE_${start + i}`] = value;
|
|
7022
|
+
});
|
|
7023
|
+
return out;
|
|
7024
|
+
}
|
|
7017
7025
|
function credentialDenyRead(harness, home = homedir4()) {
|
|
7018
7026
|
return [
|
|
7019
7027
|
".ssh",
|
|
@@ -7155,6 +7163,10 @@ var RunContext = class {
|
|
|
7155
7163
|
join11(this.gitDir, "commondir"),
|
|
7156
7164
|
join11(this.gitDir, "gitdir"),
|
|
7157
7165
|
join11(this.gitDir, "config.worktree"),
|
|
7166
|
+
// sandbox-runtime's own protection of a repository's config and hooks
|
|
7167
|
+
// covers repositories under the process's working directory only;
|
|
7168
|
+
// the shared clone lies outside it, so it is declared here the same way.
|
|
7169
|
+
...this.options.gitWritePaths?.length ? [join11(this.gitDir, "..", "..", "config"), join11(this.gitDir, "..", "..", "hooks")] : [],
|
|
7158
7170
|
...readOnly ? [this.worktree, ...this.options.gitWritePaths ?? []] : []
|
|
7159
7171
|
],
|
|
7160
7172
|
denyRead: [
|
|
@@ -7216,7 +7228,7 @@ var RunContext = class {
|
|
|
7216
7228
|
* and zsh writes here-docs to `$TMPPREFIX` (default `/tmp/zsh`).
|
|
7217
7229
|
*/
|
|
7218
7230
|
tempEnv() {
|
|
7219
|
-
return { TMPDIR: this.tmpDir, TMPPREFIX: join11(this.tmpDir, "zsh"), ...this.githubEnv, ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
7231
|
+
return { TMPDIR: this.tmpDir, TMPPREFIX: join11(this.tmpDir, "zsh"), ...withGitConfig(this.githubEnv, RUN_GIT_CONFIG), ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
7220
7232
|
}
|
|
7221
7233
|
/** A hand-in from an earlier session would end this one at once. */
|
|
7222
7234
|
clearHandoff() {
|
|
@@ -10226,7 +10238,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
10226
10238
|
import { execFile as execFile3 } from "node:child_process";
|
|
10227
10239
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
10228
10240
|
import { homedir as homedir5, platform } from "node:os";
|
|
10229
|
-
import { basename as
|
|
10241
|
+
import { basename as basename3, dirname as dirname11, isAbsolute as isAbsolute5, join as join19, resolve as resolve9 } from "node:path";
|
|
10230
10242
|
import { promisify as promisify3 } from "node:util";
|
|
10231
10243
|
var run = promisify3(execFile3);
|
|
10232
10244
|
async function git(cwd, args) {
|
|
@@ -10312,7 +10324,7 @@ async function browseFolder(request) {
|
|
|
10312
10324
|
return {
|
|
10313
10325
|
ok: true,
|
|
10314
10326
|
path,
|
|
10315
|
-
parent: parent === path ||
|
|
10327
|
+
parent: parent === path || basename3(path) === "" ? null : parent,
|
|
10316
10328
|
home,
|
|
10317
10329
|
platform: platform(),
|
|
10318
10330
|
entries: folders,
|
package/client.js
CHANGED
|
@@ -3741,7 +3741,7 @@ import { join } from "node:path";
|
|
|
3741
3741
|
// package.json
|
|
3742
3742
|
var package_default = {
|
|
3743
3743
|
name: "@mikka/daemon",
|
|
3744
|
-
version: "0.0.
|
|
3744
|
+
version: "0.0.155",
|
|
3745
3745
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3746
3746
|
type: "module",
|
|
3747
3747
|
private: true,
|
|
@@ -3801,7 +3801,7 @@ var package_default = {
|
|
|
3801
3801
|
engines: {
|
|
3802
3802
|
node: ">=24"
|
|
3803
3803
|
},
|
|
3804
|
-
gitHead: "
|
|
3804
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
3805
3805
|
};
|
|
3806
3806
|
|
|
3807
3807
|
// src/paths.ts
|
package/http-link.js
CHANGED
|
@@ -4144,7 +4144,7 @@ var InvalidIdError = class extends DaemonError {
|
|
|
4144
4144
|
// package.json
|
|
4145
4145
|
var package_default = {
|
|
4146
4146
|
name: "@mikka/daemon",
|
|
4147
|
-
version: "0.0.
|
|
4147
|
+
version: "0.0.155",
|
|
4148
4148
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4149
4149
|
type: "module",
|
|
4150
4150
|
private: true,
|
|
@@ -4204,7 +4204,7 @@ var package_default = {
|
|
|
4204
4204
|
engines: {
|
|
4205
4205
|
node: ">=24"
|
|
4206
4206
|
},
|
|
4207
|
-
gitHead: "
|
|
4207
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
4208
4208
|
};
|
|
4209
4209
|
|
|
4210
4210
|
// src/paths.ts
|
package/login.js
CHANGED
|
@@ -3748,7 +3748,7 @@ var ServerUnreachableError = class extends DaemonError {
|
|
|
3748
3748
|
// package.json
|
|
3749
3749
|
var package_default = {
|
|
3750
3750
|
name: "@mikka/daemon",
|
|
3751
|
-
version: "0.0.
|
|
3751
|
+
version: "0.0.155",
|
|
3752
3752
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3753
3753
|
type: "module",
|
|
3754
3754
|
private: true,
|
|
@@ -3808,7 +3808,7 @@ var package_default = {
|
|
|
3808
3808
|
engines: {
|
|
3809
3809
|
node: ">=24"
|
|
3810
3810
|
},
|
|
3811
|
-
gitHead: "
|
|
3811
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
3812
3812
|
};
|
|
3813
3813
|
|
|
3814
3814
|
// src/paths.ts
|
package/main.js
CHANGED
|
@@ -2665,7 +2665,7 @@ import {
|
|
|
2665
2665
|
rmSync as rmSync4
|
|
2666
2666
|
} from "node:fs";
|
|
2667
2667
|
import { tmpdir } from "node:os";
|
|
2668
|
-
import { dirname as dirname3, join as join3, resolve as resolve2 } from "node:path";
|
|
2668
|
+
import { basename, 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}$/;
|
|
@@ -3082,12 +3082,10 @@ async function worktreeGitDir(repoPath, worktree) {
|
|
|
3082
3082
|
throw new Error(`${worktree} is not a worktree of ${repoPath}`);
|
|
3083
3083
|
}
|
|
3084
3084
|
async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
3085
|
-
|
|
3086
|
-
const common = resolve2(
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
const logsRef = join3(common, "logs", "refs", "heads", branch);
|
|
3090
|
-
return [gitDir, join3(common, "objects"), dirname3(ref), ref, `${ref}.lock`, dirname3(logsRef), logsRef];
|
|
3085
|
+
assertSafeId("run id", runId);
|
|
3086
|
+
const common = resolve2(await worktreeGitDir(repoPath, worktree), "..", "..");
|
|
3087
|
+
if (basename(common) !== ".git") throw new Error(`${repoPath} is not a standard clone`);
|
|
3088
|
+
return [dirname3(common)];
|
|
3091
3089
|
}
|
|
3092
3090
|
function safeRealpath(path) {
|
|
3093
3091
|
try {
|
|
@@ -3787,7 +3785,7 @@ import { join as join5 } from "node:path";
|
|
|
3787
3785
|
// package.json
|
|
3788
3786
|
var package_default = {
|
|
3789
3787
|
name: "@mikka/daemon",
|
|
3790
|
-
version: "0.0.
|
|
3788
|
+
version: "0.0.155",
|
|
3791
3789
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3792
3790
|
type: "module",
|
|
3793
3791
|
private: true,
|
|
@@ -3847,7 +3845,7 @@ var package_default = {
|
|
|
3847
3845
|
engines: {
|
|
3848
3846
|
node: ">=24"
|
|
3849
3847
|
},
|
|
3850
|
-
gitHead: "
|
|
3848
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
3851
3849
|
};
|
|
3852
3850
|
|
|
3853
3851
|
// src/paths.ts
|
|
@@ -3890,7 +3888,7 @@ function daemonPaths(dataDir) {
|
|
|
3890
3888
|
// src/permissions.ts
|
|
3891
3889
|
import { lstatSync as lstatSync5, readlinkSync, realpathSync as realpathSync5 } from "node:fs";
|
|
3892
3890
|
import {
|
|
3893
|
-
basename,
|
|
3891
|
+
basename as basename2,
|
|
3894
3892
|
dirname as dirname4,
|
|
3895
3893
|
isAbsolute as isAbsolute2,
|
|
3896
3894
|
join as join6,
|
|
@@ -3961,7 +3959,7 @@ function classifySegment(segment, depth) {
|
|
|
3961
3959
|
words.shift();
|
|
3962
3960
|
continue;
|
|
3963
3961
|
}
|
|
3964
|
-
if (WRAPPERS.has(
|
|
3962
|
+
if (WRAPPERS.has(basename2(words[0]))) {
|
|
3965
3963
|
words.shift();
|
|
3966
3964
|
while (words.length && words[0].startsWith("-")) {
|
|
3967
3965
|
const option = words.shift();
|
|
@@ -3973,7 +3971,7 @@ function classifySegment(segment, depth) {
|
|
|
3973
3971
|
}
|
|
3974
3972
|
const [tool2, verb] = words;
|
|
3975
3973
|
if (!tool2) return null;
|
|
3976
|
-
const name =
|
|
3974
|
+
const name = basename2(tool2);
|
|
3977
3975
|
if (SHELLS.has(name) && depth < 3) {
|
|
3978
3976
|
const index = words.findIndex((word) => word === "--command" || /^-[A-Za-z]*c[A-Za-z]*$/.test(word));
|
|
3979
3977
|
if (index !== -1) {
|
|
@@ -4037,7 +4035,7 @@ function realTarget(path) {
|
|
|
4037
4035
|
}
|
|
4038
4036
|
const parent = dirname4(current);
|
|
4039
4037
|
if (parent === current) return path;
|
|
4040
|
-
missing.push(
|
|
4038
|
+
missing.push(basename2(current));
|
|
4041
4039
|
current = parent;
|
|
4042
4040
|
}
|
|
4043
4041
|
}
|
|
@@ -5799,6 +5797,16 @@ var HARNESS_DOMAINS = {
|
|
|
5799
5797
|
var MCP_SERVER_SCRIPT = resolve5(import.meta.dirname, "mikka-mcp.mjs");
|
|
5800
5798
|
var MCP_SERVER_NAME = "mikka";
|
|
5801
5799
|
var COMPUTER_MCP_SERVER_NAME = "mikka_computer";
|
|
5800
|
+
var RUN_GIT_CONFIG = [["maintenance.auto", "false"], ["gc.auto", "0"]];
|
|
5801
|
+
function withGitConfig(env, entries) {
|
|
5802
|
+
const start = Number(env.GIT_CONFIG_COUNT ?? 0);
|
|
5803
|
+
const out = { ...env, GIT_CONFIG_COUNT: String(start + entries.length) };
|
|
5804
|
+
entries.forEach(([key2, value], i) => {
|
|
5805
|
+
out[`GIT_CONFIG_KEY_${start + i}`] = key2;
|
|
5806
|
+
out[`GIT_CONFIG_VALUE_${start + i}`] = value;
|
|
5807
|
+
});
|
|
5808
|
+
return out;
|
|
5809
|
+
}
|
|
5802
5810
|
function credentialDenyRead(harness, home = homedir2()) {
|
|
5803
5811
|
return [
|
|
5804
5812
|
".ssh",
|
|
@@ -5940,6 +5948,10 @@ var RunContext = class {
|
|
|
5940
5948
|
join8(this.gitDir, "commondir"),
|
|
5941
5949
|
join8(this.gitDir, "gitdir"),
|
|
5942
5950
|
join8(this.gitDir, "config.worktree"),
|
|
5951
|
+
// sandbox-runtime's own protection of a repository's config and hooks
|
|
5952
|
+
// covers repositories under the process's working directory only;
|
|
5953
|
+
// the shared clone lies outside it, so it is declared here the same way.
|
|
5954
|
+
...this.options.gitWritePaths?.length ? [join8(this.gitDir, "..", "..", "config"), join8(this.gitDir, "..", "..", "hooks")] : [],
|
|
5943
5955
|
...readOnly ? [this.worktree, ...this.options.gitWritePaths ?? []] : []
|
|
5944
5956
|
],
|
|
5945
5957
|
denyRead: [
|
|
@@ -6001,7 +6013,7 @@ var RunContext = class {
|
|
|
6001
6013
|
* and zsh writes here-docs to `$TMPPREFIX` (default `/tmp/zsh`).
|
|
6002
6014
|
*/
|
|
6003
6015
|
tempEnv() {
|
|
6004
|
-
return { TMPDIR: this.tmpDir, TMPPREFIX: join8(this.tmpDir, "zsh"), ...this.githubEnv, ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
6016
|
+
return { TMPDIR: this.tmpDir, TMPPREFIX: join8(this.tmpDir, "zsh"), ...withGitConfig(this.githubEnv, RUN_GIT_CONFIG), ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
6005
6017
|
}
|
|
6006
6018
|
/** A hand-in from an earlier session would end this one at once. */
|
|
6007
6019
|
clearHandoff() {
|
|
@@ -9046,7 +9058,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
9046
9058
|
import { execFile } from "node:child_process";
|
|
9047
9059
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
9048
9060
|
import { homedir as homedir3, platform } from "node:os";
|
|
9049
|
-
import { basename as
|
|
9061
|
+
import { basename as basename3, dirname as dirname9, isAbsolute as isAbsolute5, join as join16, resolve as resolve7 } from "node:path";
|
|
9050
9062
|
import { promisify } from "node:util";
|
|
9051
9063
|
var run = promisify(execFile);
|
|
9052
9064
|
async function git(cwd, args) {
|
|
@@ -9132,7 +9144,7 @@ async function browseFolder(request) {
|
|
|
9132
9144
|
return {
|
|
9133
9145
|
ok: true,
|
|
9134
9146
|
path,
|
|
9135
|
-
parent: parent === path ||
|
|
9147
|
+
parent: parent === path || basename3(path) === "" ? null : parent,
|
|
9136
9148
|
home,
|
|
9137
9149
|
platform: platform(),
|
|
9138
9150
|
entries: folders,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"sourceSha": "
|
|
3
|
+
"sourceSha": "a0295ff9031591fc84944f77c47074e8345d129e",
|
|
4
4
|
"repository": "alexj11324/Mikka",
|
|
5
|
-
"buildRunId": "
|
|
5
|
+
"buildRunId": "41301858649",
|
|
6
6
|
"buildKind": "github-actions-main",
|
|
7
7
|
"sourceLockSha256": "c99f1e4f641d8e004cfe807653478e10f91e53fcf47102add5f4c154cdc1cb57",
|
|
8
|
-
"createdAt": "2026-11-01T11:
|
|
8
|
+
"createdAt": "2026-11-01T11:31:02.333Z",
|
|
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": 649393,
|
|
44
|
+
"sha256": "80d315deabf491b19d9fd4c4c7504538b9a61384c6657f5e1366f046d51f0599"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"path": "client.js",
|
|
48
48
|
"size": 141206,
|
|
49
|
-
"sha256": "
|
|
49
|
+
"sha256": "3ec2e556beec11fe31d93aa0b7556b44262f6649635a0ee824d32583c357af52"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"path": "computer/driver.mjs",
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
{
|
|
177
177
|
"path": "http-link.js",
|
|
178
178
|
"size": 182550,
|
|
179
|
-
"sha256": "
|
|
179
|
+
"sha256": "c508932885e19e4799d1cdcc7520d53bdd4f0ed252e0bf49290f80fa87c95145"
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"path": "log.js",
|
|
@@ -186,12 +186,12 @@
|
|
|
186
186
|
{
|
|
187
187
|
"path": "login.js",
|
|
188
188
|
"size": 145941,
|
|
189
|
-
"sha256": "
|
|
189
|
+
"sha256": "3eb7143f66eca50a633fd5392a831428b82066e797411e6e2b7edac440920315"
|
|
190
190
|
},
|
|
191
191
|
{
|
|
192
192
|
"path": "main.js",
|
|
193
|
-
"size":
|
|
194
|
-
"sha256": "
|
|
193
|
+
"size": 594919,
|
|
194
|
+
"sha256": "d291c36403b253623ab236a7c11e753d62ce7fc9bdb8131935bc1e838e4f4254"
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"path": "mikka-mcp.mjs",
|
|
@@ -200,23 +200,23 @@
|
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
"path": "mikka.js",
|
|
203
|
-
"size":
|
|
204
|
-
"sha256": "
|
|
203
|
+
"size": 649409,
|
|
204
|
+
"sha256": "c2487ea75f1c0e96b48b6769a9a90c389fffa6fb6f179aa204cea7f9305dc621"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"path": "npm-shrinkwrap.json",
|
|
208
208
|
"size": 78117,
|
|
209
|
-
"sha256": "
|
|
209
|
+
"sha256": "31ea2bd8080c86920394085e7bf8ee590f876c900749e7183061e2b07dc3b7e5"
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
"path": "package.json",
|
|
213
213
|
"size": 1247,
|
|
214
|
-
"sha256": "
|
|
214
|
+
"sha256": "7f037c1026312bdc90f1df4e56467e4abb2edf1263140529708d3cc498d447c5"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"path": "paths.js",
|
|
218
218
|
"size": 4138,
|
|
219
|
-
"sha256": "
|
|
219
|
+
"sha256": "be92460dc50121d80c377f23017f6a8e92a1e91f4df91a7aad0208bf45595a12"
|
|
220
220
|
},
|
|
221
221
|
{
|
|
222
222
|
"path": "sandbox.js",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
{
|
|
227
227
|
"path": "sbom.cdx.json",
|
|
228
228
|
"size": 144314,
|
|
229
|
-
"sha256": "
|
|
229
|
+
"sha256": "054e7e065839261ed3371a9b2f5347d43dc7d056a985813dec2f0df280eaf531"
|
|
230
230
|
}
|
|
231
231
|
]
|
|
232
232
|
}
|
package/mikka.js
CHANGED
|
@@ -4481,7 +4481,7 @@ import { join as join4 } from "node:path";
|
|
|
4481
4481
|
// package.json
|
|
4482
4482
|
var package_default = {
|
|
4483
4483
|
name: "@mikka/daemon",
|
|
4484
|
-
version: "0.0.
|
|
4484
|
+
version: "0.0.155",
|
|
4485
4485
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4486
4486
|
type: "module",
|
|
4487
4487
|
private: true,
|
|
@@ -4541,7 +4541,7 @@ var package_default = {
|
|
|
4541
4541
|
engines: {
|
|
4542
4542
|
node: ">=24"
|
|
4543
4543
|
},
|
|
4544
|
-
gitHead: "
|
|
4544
|
+
gitHead: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
4545
4545
|
};
|
|
4546
4546
|
|
|
4547
4547
|
// src/paths.ts
|
|
@@ -6116,7 +6116,7 @@ import {
|
|
|
6116
6116
|
rmSync as rmSync5
|
|
6117
6117
|
} from "node:fs";
|
|
6118
6118
|
import { tmpdir } from "node:os";
|
|
6119
|
-
import { dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6119
|
+
import { basename as basename2, dirname as dirname7, join as join8, resolve as resolve5 } from "node:path";
|
|
6120
6120
|
|
|
6121
6121
|
// src/ids.ts
|
|
6122
6122
|
var SAFE_ID = /^[A-Za-z0-9_-]{1,64}$/;
|
|
@@ -6533,12 +6533,10 @@ async function worktreeGitDir(repoPath, worktree) {
|
|
|
6533
6533
|
throw new Error(`${worktree} is not a worktree of ${repoPath}`);
|
|
6534
6534
|
}
|
|
6535
6535
|
async function worktreeGitWritePaths(repoPath, worktree, runId) {
|
|
6536
|
-
|
|
6537
|
-
const common = resolve5(
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
const logsRef = join8(common, "logs", "refs", "heads", branch);
|
|
6541
|
-
return [gitDir, join8(common, "objects"), dirname7(ref), ref, `${ref}.lock`, dirname7(logsRef), logsRef];
|
|
6536
|
+
assertSafeId("run id", runId);
|
|
6537
|
+
const common = resolve5(await worktreeGitDir(repoPath, worktree), "..", "..");
|
|
6538
|
+
if (basename2(common) !== ".git") throw new Error(`${repoPath} is not a standard clone`);
|
|
6539
|
+
return [dirname7(common)];
|
|
6542
6540
|
}
|
|
6543
6541
|
function safeRealpath(path) {
|
|
6544
6542
|
try {
|
|
@@ -7015,6 +7013,16 @@ var HARNESS_DOMAINS = {
|
|
|
7015
7013
|
var MCP_SERVER_SCRIPT = resolve7(import.meta.dirname, "mikka-mcp.mjs");
|
|
7016
7014
|
var MCP_SERVER_NAME = "mikka";
|
|
7017
7015
|
var COMPUTER_MCP_SERVER_NAME = "mikka_computer";
|
|
7016
|
+
var RUN_GIT_CONFIG = [["maintenance.auto", "false"], ["gc.auto", "0"]];
|
|
7017
|
+
function withGitConfig(env, entries) {
|
|
7018
|
+
const start = Number(env.GIT_CONFIG_COUNT ?? 0);
|
|
7019
|
+
const out = { ...env, GIT_CONFIG_COUNT: String(start + entries.length) };
|
|
7020
|
+
entries.forEach(([key2, value], i) => {
|
|
7021
|
+
out[`GIT_CONFIG_KEY_${start + i}`] = key2;
|
|
7022
|
+
out[`GIT_CONFIG_VALUE_${start + i}`] = value;
|
|
7023
|
+
});
|
|
7024
|
+
return out;
|
|
7025
|
+
}
|
|
7018
7026
|
function credentialDenyRead(harness, home = homedir4()) {
|
|
7019
7027
|
return [
|
|
7020
7028
|
".ssh",
|
|
@@ -7156,6 +7164,10 @@ var RunContext = class {
|
|
|
7156
7164
|
join11(this.gitDir, "commondir"),
|
|
7157
7165
|
join11(this.gitDir, "gitdir"),
|
|
7158
7166
|
join11(this.gitDir, "config.worktree"),
|
|
7167
|
+
// sandbox-runtime's own protection of a repository's config and hooks
|
|
7168
|
+
// covers repositories under the process's working directory only;
|
|
7169
|
+
// the shared clone lies outside it, so it is declared here the same way.
|
|
7170
|
+
...this.options.gitWritePaths?.length ? [join11(this.gitDir, "..", "..", "config"), join11(this.gitDir, "..", "..", "hooks")] : [],
|
|
7159
7171
|
...readOnly ? [this.worktree, ...this.options.gitWritePaths ?? []] : []
|
|
7160
7172
|
],
|
|
7161
7173
|
denyRead: [
|
|
@@ -7217,7 +7229,7 @@ var RunContext = class {
|
|
|
7217
7229
|
* and zsh writes here-docs to `$TMPPREFIX` (default `/tmp/zsh`).
|
|
7218
7230
|
*/
|
|
7219
7231
|
tempEnv() {
|
|
7220
|
-
return { TMPDIR: this.tmpDir, TMPPREFIX: join11(this.tmpDir, "zsh"), ...this.githubEnv, ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
7232
|
+
return { TMPDIR: this.tmpDir, TMPPREFIX: join11(this.tmpDir, "zsh"), ...withGitConfig(this.githubEnv, RUN_GIT_CONFIG), ...this.options.policyHash ? { MIKKA_POLICY_HASH: this.options.policyHash } : {} };
|
|
7221
7233
|
}
|
|
7222
7234
|
/** A hand-in from an earlier session would end this one at once. */
|
|
7223
7235
|
clearHandoff() {
|
|
@@ -10227,7 +10239,7 @@ import { SandboxManager as SandboxManager2 } from "@anthropic-ai/sandbox-runtime
|
|
|
10227
10239
|
import { execFile as execFile3 } from "node:child_process";
|
|
10228
10240
|
import { readdir as readdir2, realpath, stat } from "node:fs/promises";
|
|
10229
10241
|
import { homedir as homedir5, platform } from "node:os";
|
|
10230
|
-
import { basename as
|
|
10242
|
+
import { basename as basename3, dirname as dirname11, isAbsolute as isAbsolute5, join as join19, resolve as resolve9 } from "node:path";
|
|
10231
10243
|
import { promisify as promisify3 } from "node:util";
|
|
10232
10244
|
var run = promisify3(execFile3);
|
|
10233
10245
|
async function git(cwd, args) {
|
|
@@ -10313,7 +10325,7 @@ async function browseFolder(request) {
|
|
|
10313
10325
|
return {
|
|
10314
10326
|
ok: true,
|
|
10315
10327
|
path,
|
|
10316
|
-
parent: parent === path ||
|
|
10328
|
+
parent: parent === path || basename3(path) === "" ? null : parent,
|
|
10317
10329
|
home,
|
|
10318
10330
|
platform: platform(),
|
|
10319
10331
|
entries: folders,
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aspectlylabs/mikka",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.155",
|
|
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.155",
|
|
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.155",
|
|
4
4
|
"description": "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
5
|
-
"gitHead": "
|
|
5
|
+
"gitHead": "a0295ff9031591fc84944f77c47074e8345d129e",
|
|
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.155",
|
|
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: "a0295ff9031591fc84944f77c47074e8345d129e"
|
|
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:e7394798-8931-48d8-bf37-b1552788707f",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-11-01T11:
|
|
8
|
+
"timestamp": "2026-11-01T11:31:01.301Z",
|
|
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.155",
|
|
23
23
|
"type": "library",
|
|
24
|
-
"name": ".retained-build-
|
|
25
|
-
"version": "0.0.
|
|
24
|
+
"name": ".retained-build-CZssE9",
|
|
25
|
+
"version": "0.0.155",
|
|
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.155",
|
|
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.155",
|
|
4631
4631
|
"dependsOn": [
|
|
4632
4632
|
"@agentclientprotocol/sdk@1.9.0",
|
|
4633
4633
|
"@anthropic-ai/claude-agent-sdk@0.3.305",
|