@aspectlylabs/mikka 0.0.27 → 0.0.45
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/THIRD_PARTY_NOTICES.md +71 -0
- package/cli.js +101 -22
- package/client.js +13 -5
- package/computer/driver.mjs +3 -1
- package/http-link.js +15 -5
- package/login.js +13 -5
- package/main.js +99 -22
- package/mikka-release-manifest.json +202 -0
- package/mikka.js +101 -22
- package/npm-shrinkwrap.json +2187 -0
- package/package.json +3 -3
- package/paths.js +2 -2
- package/sbom.cdx.json +5613 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
## codeburn
|
|
4
|
+
|
|
5
|
+
The subscription-quota readers under `packages/daemon/src/quota/`
|
|
6
|
+
(`claude.ts`, `codex.ts`, `cursor.ts`, `files.ts`, and the usage-response
|
|
7
|
+
parsing in `parse.ts`) are adapted from
|
|
8
|
+
[codeburn](https://github.com/getagentseal/codeburn), Copyright (c) 2026
|
|
9
|
+
AgentSeal, licensed under the MIT License below.
|
|
10
|
+
|
|
11
|
+
The port is read-only. codeburn can refresh a Codex token and write
|
|
12
|
+
`~/.codex/auth.json`; Mikka does not. See `docs/adr/0027-local-credential-quota.md`.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
MIT License
|
|
16
|
+
|
|
17
|
+
Copyright (c) 2026 AgentSeal
|
|
18
|
+
|
|
19
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
20
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
21
|
+
in the Software without restriction, including without limitation the rights
|
|
22
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
23
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
24
|
+
furnished to do so, subject to the following conditions:
|
|
25
|
+
|
|
26
|
+
The above copyright notice and this permission notice shall be included in all
|
|
27
|
+
copies or substantial portions of the Software.
|
|
28
|
+
|
|
29
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
30
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
31
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
33
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
34
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
35
|
+
SOFTWARE.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## CUA standalone driver
|
|
39
|
+
|
|
40
|
+
Mikka's optional local/isolated computer adapter invokes the standalone
|
|
41
|
+
[cua-driver-rs 0.38.0](https://github.com/trycua/cua/releases/tag/cua-driver-rs-v0.38.0)
|
|
42
|
+
from CUA. Its Rust workspace declares MIT at upstream revision
|
|
43
|
+
`85e2b1318bd77ccf3cfa88ccdf875a4bb7eaed19`; the copyright and license below
|
|
44
|
+
are reproduced from that revision's `LICENSE.md`. Mikka does not install
|
|
45
|
+
`cua-perception`, OmniParser, Cua Spaces or `cua-spacesd`. The daemon npm
|
|
46
|
+
package contains the adapter and this notice; users/isolated CI supply the
|
|
47
|
+
separate driver binary. No CUA source is represented as Mikka-owned code.
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
MIT License
|
|
51
|
+
|
|
52
|
+
Copyright (c) 2025 Cua AI, Inc.
|
|
53
|
+
|
|
54
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
55
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
56
|
+
in the Software without restriction, including without limitation the rights
|
|
57
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
58
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
59
|
+
furnished to do so, subject to the following conditions:
|
|
60
|
+
|
|
61
|
+
The above copyright notice and this permission notice shall be included in all
|
|
62
|
+
copies or substantial portions of the Software.
|
|
63
|
+
|
|
64
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
65
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
66
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
67
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
68
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
69
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
70
|
+
SOFTWARE.
|
|
71
|
+
```
|
package/cli.js
CHANGED
|
@@ -2449,8 +2449,8 @@ var READ_ONLY_DENIED = [
|
|
|
2449
2449
|
"git_push",
|
|
2450
2450
|
"computer_use"
|
|
2451
2451
|
];
|
|
2452
|
-
var runPolicySchema = z2.
|
|
2453
|
-
permissions: z2.
|
|
2452
|
+
var runPolicySchema = z2.strictObject({
|
|
2453
|
+
permissions: z2.strictObject({
|
|
2454
2454
|
install_dependency: z2.enum(PERMISSION_DECISIONS),
|
|
2455
2455
|
write_outside_repo: z2.enum(PERMISSION_DECISIONS),
|
|
2456
2456
|
git_push: z2.enum(PERMISSION_DECISIONS),
|
|
@@ -2728,6 +2728,14 @@ var harnessInfoSchema = z6.object({
|
|
|
2728
2728
|
harness: harnessSchema,
|
|
2729
2729
|
installed: z6.boolean(),
|
|
2730
2730
|
models: z6.array(z6.string().trim().min(1).max(128)).max(500).optional(),
|
|
2731
|
+
modelSlots: z6.array(
|
|
2732
|
+
z6.object({
|
|
2733
|
+
slot: z6.string().trim().min(1).max(128).refine((v2) => v2 !== "auto"),
|
|
2734
|
+
model: z6.string().trim().min(1).max(128),
|
|
2735
|
+
name: z6.string().trim().min(1).max(200)
|
|
2736
|
+
})
|
|
2737
|
+
).max(500).optional(),
|
|
2738
|
+
defaultModelSlot: z6.string().trim().min(1).max(128).optional(),
|
|
2731
2739
|
/** Deprecated (#312, 2026-10-27): could host the native Coordinator. The server keeps that runtime switched off. */
|
|
2732
2740
|
coordinator: z6.boolean().optional(),
|
|
2733
2741
|
/** Set only by a runner with an isolated, owner-bound subscription broker. */
|
|
@@ -3209,9 +3217,10 @@ import { z as z12 } from "zod";
|
|
|
3209
3217
|
// ../protocol/src/skill-artifact.ts
|
|
3210
3218
|
import { z as z11 } from "zod";
|
|
3211
3219
|
var SKILL_ARTIFACT_HEADER = "x-mikka-skill-artifacts";
|
|
3220
|
+
var TEAM_SKILL_HEADER = "x-mikka-team-skills";
|
|
3212
3221
|
var skillArtifactRefSchema = z11.object({
|
|
3213
3222
|
schemaVersion: z11.literal(1),
|
|
3214
|
-
registryId: z11.
|
|
3223
|
+
registryId: z11.enum(["mikka-builtin", "mikka-team"]),
|
|
3215
3224
|
skillId: z11.uuid(),
|
|
3216
3225
|
versionId: z11.uuid(),
|
|
3217
3226
|
format: z11.literal("single-skill-md-v1"),
|
|
@@ -4299,7 +4308,7 @@ import { join as join3 } from "node:path";
|
|
|
4299
4308
|
// package.json
|
|
4300
4309
|
var package_default = {
|
|
4301
4310
|
name: "@mikka/daemon",
|
|
4302
|
-
version: "0.0.
|
|
4311
|
+
version: "0.0.45",
|
|
4303
4312
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
4304
4313
|
type: "module",
|
|
4305
4314
|
private: true,
|
|
@@ -4358,7 +4367,7 @@ var package_default = {
|
|
|
4358
4367
|
engines: {
|
|
4359
4368
|
node: ">=24"
|
|
4360
4369
|
},
|
|
4361
|
-
gitHead: "
|
|
4370
|
+
gitHead: "2ed99faf09cfa4dc1d7e904337353ba057dcff9b"
|
|
4362
4371
|
};
|
|
4363
4372
|
|
|
4364
4373
|
// src/paths.ts
|
|
@@ -5119,6 +5128,7 @@ var HttpServerLink = class {
|
|
|
5119
5128
|
"content-type": "application/json",
|
|
5120
5129
|
[CLIENT_VERSION_HEADER]: this.clientVersion,
|
|
5121
5130
|
[SKILL_ARTIFACT_HEADER]: "1",
|
|
5131
|
+
[TEAM_SKILL_HEADER]: "1",
|
|
5122
5132
|
[REPO_ORIGIN_HEADER]: "1",
|
|
5123
5133
|
[RECOVERY_WORKTREE_HEADER]: "1",
|
|
5124
5134
|
...token ? { authorization: `Bearer ${token}` } : {},
|
|
@@ -9841,7 +9851,54 @@ import { execa as execa9 } from "execa";
|
|
|
9841
9851
|
|
|
9842
9852
|
// src/harness-models.ts
|
|
9843
9853
|
import { execa as execa8 } from "execa";
|
|
9844
|
-
|
|
9854
|
+
function claudeDiscoveryEnv(host = process.env) {
|
|
9855
|
+
const env = buildChildEnv({ host });
|
|
9856
|
+
for (const slot of ["OPUS", "SONNET", "HAIKU"]) {
|
|
9857
|
+
const key2 = `ANTHROPIC_DEFAULT_${slot}_MODEL`;
|
|
9858
|
+
const value = host[key2];
|
|
9859
|
+
if (value && /^[a-zA-Z0-9._:/-]{1,128}$/.test(value)) env[key2] = value;
|
|
9860
|
+
}
|
|
9861
|
+
return env;
|
|
9862
|
+
}
|
|
9863
|
+
function claudeModelCatalogue(rows) {
|
|
9864
|
+
const modelSlots = rows.filter((r) => r.resolvedModel && r.value !== "auto").map((r) => ({
|
|
9865
|
+
slot: r.value,
|
|
9866
|
+
model: r.resolvedModel,
|
|
9867
|
+
name: r.resolvedModel
|
|
9868
|
+
}));
|
|
9869
|
+
return {
|
|
9870
|
+
models: modelSlots.map((r) => r.slot),
|
|
9871
|
+
modelSlots,
|
|
9872
|
+
...modelSlots.some((r) => r.slot === "opus") ? { defaultModelSlot: "opus" } : {}
|
|
9873
|
+
};
|
|
9874
|
+
}
|
|
9875
|
+
async function detectHarnessCatalogue(harness, binary) {
|
|
9876
|
+
if (harness === "claude_code") {
|
|
9877
|
+
const { query: query3 } = await import("@anthropic-ai/claude-agent-sdk");
|
|
9878
|
+
const controller = new AbortController();
|
|
9879
|
+
const timer = setTimeout(() => controller.abort(), 5e3);
|
|
9880
|
+
const session = query3({
|
|
9881
|
+
prompt: (async function* () {
|
|
9882
|
+
})(),
|
|
9883
|
+
options: {
|
|
9884
|
+
pathToClaudeCodeExecutable: binary,
|
|
9885
|
+
env: claudeDiscoveryEnv(),
|
|
9886
|
+
abortController: controller,
|
|
9887
|
+
settingSources: ["user", "project", "local"]
|
|
9888
|
+
}
|
|
9889
|
+
});
|
|
9890
|
+
try {
|
|
9891
|
+
return claudeModelCatalogue(await session.supportedModels());
|
|
9892
|
+
} catch {
|
|
9893
|
+
return {};
|
|
9894
|
+
} finally {
|
|
9895
|
+
clearTimeout(timer);
|
|
9896
|
+
session.close();
|
|
9897
|
+
}
|
|
9898
|
+
}
|
|
9899
|
+
return await discover(harness, binary);
|
|
9900
|
+
}
|
|
9901
|
+
async function discover(harness, binary) {
|
|
9845
9902
|
const options = {
|
|
9846
9903
|
env: buildChildEnv(),
|
|
9847
9904
|
extendEnv: false,
|
|
@@ -9857,9 +9914,9 @@ async function detectHarnessModels(harness, binary) {
|
|
|
9857
9914
|
);
|
|
9858
9915
|
return match ? [match[1]] : [];
|
|
9859
9916
|
});
|
|
9860
|
-
return models
|
|
9917
|
+
return { models: [...new Set(models)].slice(0, 500) };
|
|
9861
9918
|
}
|
|
9862
|
-
if (harness !== "codex") return
|
|
9919
|
+
if (harness !== "codex") return {};
|
|
9863
9920
|
const child = execa8(binary, ["app-server"], { ...options, stdin: "pipe" });
|
|
9864
9921
|
const completion = child.catch(() => void 0);
|
|
9865
9922
|
child.stdin.write(
|
|
@@ -9873,7 +9930,7 @@ async function detectHarnessModels(harness, binary) {
|
|
|
9873
9930
|
try {
|
|
9874
9931
|
for await (const chunk of child.stdout) {
|
|
9875
9932
|
pending += chunk.toString();
|
|
9876
|
-
if (pending.length > 1e6) return
|
|
9933
|
+
if (pending.length > 1e6) return {};
|
|
9877
9934
|
let newline;
|
|
9878
9935
|
while ((newline = pending.indexOf("\n")) >= 0) {
|
|
9879
9936
|
const line = pending.slice(0, newline);
|
|
@@ -9898,14 +9955,31 @@ async function detectHarnessModels(harness, binary) {
|
|
|
9898
9955
|
}
|
|
9899
9956
|
if (reply.id === 2) {
|
|
9900
9957
|
const rows = reply.result?.data;
|
|
9901
|
-
if (!Array.isArray(rows)) return
|
|
9902
|
-
|
|
9903
|
-
|
|
9904
|
-
|
|
9905
|
-
|
|
9906
|
-
|
|
9907
|
-
|
|
9908
|
-
|
|
9958
|
+
if (!Array.isArray(rows)) return {};
|
|
9959
|
+
const models = rows.filter(
|
|
9960
|
+
(r) => typeof r.model === "string" && r.model.length <= 128
|
|
9961
|
+
);
|
|
9962
|
+
const modelSlots = models.map(
|
|
9963
|
+
(r) => ({
|
|
9964
|
+
slot: r.model,
|
|
9965
|
+
model: r.model,
|
|
9966
|
+
name: r.displayName ?? r.model
|
|
9967
|
+
})
|
|
9968
|
+
);
|
|
9969
|
+
const selected = models.find(
|
|
9970
|
+
(r) => r.isDefault
|
|
9971
|
+
);
|
|
9972
|
+
if (selected)
|
|
9973
|
+
modelSlots.push({
|
|
9974
|
+
slot: "default",
|
|
9975
|
+
model: selected.model,
|
|
9976
|
+
name: selected.displayName ?? selected.model
|
|
9977
|
+
});
|
|
9978
|
+
return {
|
|
9979
|
+
models: models.map((r) => r.model),
|
|
9980
|
+
modelSlots,
|
|
9981
|
+
...selected ? { defaultModelSlot: "default" } : {}
|
|
9982
|
+
};
|
|
9909
9983
|
}
|
|
9910
9984
|
}
|
|
9911
9985
|
}
|
|
@@ -9915,7 +9989,7 @@ async function detectHarnessModels(harness, binary) {
|
|
|
9915
9989
|
}
|
|
9916
9990
|
} catch {
|
|
9917
9991
|
}
|
|
9918
|
-
return
|
|
9992
|
+
return {};
|
|
9919
9993
|
}
|
|
9920
9994
|
|
|
9921
9995
|
// src/harnesses.ts
|
|
@@ -9945,8 +10019,8 @@ async function detectHarnesses() {
|
|
|
9945
10019
|
for (const binary of HARNESS_BINARIES[harness]) {
|
|
9946
10020
|
const version = await versionOf(binary);
|
|
9947
10021
|
if (version) {
|
|
9948
|
-
const
|
|
9949
|
-
return { harness, installed: true, version, ...
|
|
10022
|
+
const catalogue = await detectHarnessCatalogue(harness, binary);
|
|
10023
|
+
return { harness, installed: true, version, ...catalogue };
|
|
9950
10024
|
}
|
|
9951
10025
|
}
|
|
9952
10026
|
return { harness, installed: false, version: null };
|
|
@@ -12471,6 +12545,11 @@ var RunSupervisor = class {
|
|
|
12471
12545
|
verifySkillAssignment(assignment);
|
|
12472
12546
|
if (assignment.skillReceipt && (this.leases.get(runId) ?? 0) <= Date.now())
|
|
12473
12547
|
throw new Error("Receipted Skill assignment requires a current server lease");
|
|
12548
|
+
if (assignment.skillReceipt?.artifact.registryId === "mikka-team") {
|
|
12549
|
+
if (!this.deps.revalidateSkillAssignment) throw new Error("Current team Skill authorization unavailable");
|
|
12550
|
+
const current = await this.deps.revalidateSkillAssignment(assignment);
|
|
12551
|
+
this.leases.set(runId, Date.parse(verifySkillResume(assignment, current)));
|
|
12552
|
+
}
|
|
12474
12553
|
const adapter = this.adapterFor(runId);
|
|
12475
12554
|
if (assignment.requireSessionResume && entry.questionResumeState === "starting")
|
|
12476
12555
|
throw new Error(
|
|
@@ -12948,7 +13027,7 @@ var RepositoryCache = class {
|
|
|
12948
13027
|
"-c",
|
|
12949
13028
|
`protocol.file.allow=${this.allowFile ? "always" : "never"}`,
|
|
12950
13029
|
...args
|
|
12951
|
-
], { cwd, env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }, stdin: "ignore", timeout: FETCH_TIMEOUT_MS, cancelSignal: signal });
|
|
13030
|
+
], { cwd, env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }, stdin: "ignore", timeout: FETCH_TIMEOUT_MS, cancelSignal: signal, killDescendants: true });
|
|
12952
13031
|
if (!existsSync5(path)) {
|
|
12953
13032
|
const temporary = `${path}.clone-${randomUUID7()}`;
|
|
12954
13033
|
try {
|
|
@@ -13991,7 +14070,7 @@ function driverArguments(input, platform3 = process.platform) {
|
|
|
13991
14070
|
scope: "desktop",
|
|
13992
14071
|
...platform3 === "darwin" ? {} : { coordinate_frame: "desktop" },
|
|
13993
14072
|
delivery_mode: "foreground"
|
|
13994
|
-
} :
|
|
14073
|
+
} : ["type_text", "press_key"].includes(call.name) ? { ...call.arguments, scope: "desktop", delivery_mode: "foreground" } : call.name === "scroll" ? { ...call.arguments, scope: "desktop", ...platform3 === "darwin" ? {} : { coordinate_frame: "desktop" }, delivery_mode: "foreground" } : call.arguments;
|
|
13995
14074
|
}
|
|
13996
14075
|
async function executeDriver(driver, input, display, leaseGuard, assertLive = () => {
|
|
13997
14076
|
}, beforeAction) {
|
package/client.js
CHANGED
|
@@ -2095,8 +2095,8 @@ var storedPermissionsSchema = z2.strictObject({
|
|
|
2095
2095
|
computer_use: z2.enum(CONFIGURABLE_PERMISSIONS.computer_use)
|
|
2096
2096
|
}).partial();
|
|
2097
2097
|
var guidanceSchema = z2.string().max(MAX_GUIDANCE_LENGTH);
|
|
2098
|
-
var runPolicySchema = z2.
|
|
2099
|
-
permissions: z2.
|
|
2098
|
+
var runPolicySchema = z2.strictObject({
|
|
2099
|
+
permissions: z2.strictObject({
|
|
2100
2100
|
install_dependency: z2.enum(PERMISSION_DECISIONS),
|
|
2101
2101
|
write_outside_repo: z2.enum(PERMISSION_DECISIONS),
|
|
2102
2102
|
git_push: z2.enum(PERMISSION_DECISIONS),
|
|
@@ -2335,6 +2335,14 @@ var harnessInfoSchema = z6.object({
|
|
|
2335
2335
|
harness: harnessSchema,
|
|
2336
2336
|
installed: z6.boolean(),
|
|
2337
2337
|
models: z6.array(z6.string().trim().min(1).max(128)).max(500).optional(),
|
|
2338
|
+
modelSlots: z6.array(
|
|
2339
|
+
z6.object({
|
|
2340
|
+
slot: z6.string().trim().min(1).max(128).refine((v2) => v2 !== "auto"),
|
|
2341
|
+
model: z6.string().trim().min(1).max(128),
|
|
2342
|
+
name: z6.string().trim().min(1).max(200)
|
|
2343
|
+
})
|
|
2344
|
+
).max(500).optional(),
|
|
2345
|
+
defaultModelSlot: z6.string().trim().min(1).max(128).optional(),
|
|
2338
2346
|
/** Deprecated (#312, 2026-10-27): could host the native Coordinator. The server keeps that runtime switched off. */
|
|
2339
2347
|
coordinator: z6.boolean().optional(),
|
|
2340
2348
|
/** Set only by a runner with an isolated, owner-bound subscription broker. */
|
|
@@ -2727,7 +2735,7 @@ import { z as z12 } from "zod";
|
|
|
2727
2735
|
import { z as z11 } from "zod";
|
|
2728
2736
|
var skillArtifactRefSchema = z11.object({
|
|
2729
2737
|
schemaVersion: z11.literal(1),
|
|
2730
|
-
registryId: z11.
|
|
2738
|
+
registryId: z11.enum(["mikka-builtin", "mikka-team"]),
|
|
2731
2739
|
skillId: z11.uuid(),
|
|
2732
2740
|
versionId: z11.uuid(),
|
|
2733
2741
|
format: z11.literal("single-skill-md-v1"),
|
|
@@ -3633,7 +3641,7 @@ import { join } from "node:path";
|
|
|
3633
3641
|
// package.json
|
|
3634
3642
|
var package_default = {
|
|
3635
3643
|
name: "@mikka/daemon",
|
|
3636
|
-
version: "0.0.
|
|
3644
|
+
version: "0.0.45",
|
|
3637
3645
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3638
3646
|
type: "module",
|
|
3639
3647
|
private: true,
|
|
@@ -3692,7 +3700,7 @@ var package_default = {
|
|
|
3692
3700
|
engines: {
|
|
3693
3701
|
node: ">=24"
|
|
3694
3702
|
},
|
|
3695
|
-
gitHead: "
|
|
3703
|
+
gitHead: "2ed99faf09cfa4dc1d7e904337353ba057dcff9b"
|
|
3696
3704
|
};
|
|
3697
3705
|
|
|
3698
3706
|
// src/paths.ts
|
package/computer/driver.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// Invokes the optional standalone cua-driver 0.38.0 (MIT), Copyright (c) 2025 Cua AI, Inc.
|
|
2
|
+
// See packages/daemon/THIRD_PARTY_NOTICES.md. No perception or Spaces extension is installed here.
|
|
1
3
|
import { spawn } from "node:child_process";
|
|
2
4
|
import { execFile } from "node:child_process";
|
|
3
5
|
import { promisify } from "node:util";
|
|
@@ -161,7 +163,7 @@ export function driverArguments(input, platform = process.platform) {
|
|
|
161
163
|
? { ...call.arguments, scope: "desktop",
|
|
162
164
|
...(platform === "darwin" ? {} : { coordinate_frame: "desktop" }),
|
|
163
165
|
delivery_mode: "foreground" }
|
|
164
|
-
:
|
|
166
|
+
: ["type_text", "press_key"].includes(call.name) ? { ...call.arguments, scope: "desktop", delivery_mode: "foreground" }
|
|
165
167
|
: call.name === "scroll" ? { ...call.arguments, scope: "desktop", ...(platform === "darwin" ? {} : { coordinate_frame: "desktop" }), delivery_mode: "foreground" }
|
|
166
168
|
: call.arguments;
|
|
167
169
|
}
|
package/http-link.js
CHANGED
|
@@ -2219,8 +2219,8 @@ var storedPermissionsSchema = z2.strictObject({
|
|
|
2219
2219
|
computer_use: z2.enum(CONFIGURABLE_PERMISSIONS.computer_use)
|
|
2220
2220
|
}).partial();
|
|
2221
2221
|
var guidanceSchema = z2.string().max(MAX_GUIDANCE_LENGTH);
|
|
2222
|
-
var runPolicySchema = z2.
|
|
2223
|
-
permissions: z2.
|
|
2222
|
+
var runPolicySchema = z2.strictObject({
|
|
2223
|
+
permissions: z2.strictObject({
|
|
2224
2224
|
install_dependency: z2.enum(PERMISSION_DECISIONS),
|
|
2225
2225
|
write_outside_repo: z2.enum(PERMISSION_DECISIONS),
|
|
2226
2226
|
git_push: z2.enum(PERMISSION_DECISIONS),
|
|
@@ -2323,9 +2323,10 @@ import { z as z4 } from "zod";
|
|
|
2323
2323
|
// ../protocol/src/skill-artifact.ts
|
|
2324
2324
|
import { z as z3 } from "zod";
|
|
2325
2325
|
var SKILL_ARTIFACT_HEADER = "x-mikka-skill-artifacts";
|
|
2326
|
+
var TEAM_SKILL_HEADER = "x-mikka-team-skills";
|
|
2326
2327
|
var skillArtifactRefSchema = z3.object({
|
|
2327
2328
|
schemaVersion: z3.literal(1),
|
|
2328
|
-
registryId: z3.
|
|
2329
|
+
registryId: z3.enum(["mikka-builtin", "mikka-team"]),
|
|
2329
2330
|
skillId: z3.uuid(),
|
|
2330
2331
|
versionId: z3.uuid(),
|
|
2331
2332
|
format: z3.literal("single-skill-md-v1"),
|
|
@@ -2828,6 +2829,14 @@ var harnessInfoSchema = z13.object({
|
|
|
2828
2829
|
harness: harnessSchema,
|
|
2829
2830
|
installed: z13.boolean(),
|
|
2830
2831
|
models: z13.array(z13.string().trim().min(1).max(128)).max(500).optional(),
|
|
2832
|
+
modelSlots: z13.array(
|
|
2833
|
+
z13.object({
|
|
2834
|
+
slot: z13.string().trim().min(1).max(128).refine((v2) => v2 !== "auto"),
|
|
2835
|
+
model: z13.string().trim().min(1).max(128),
|
|
2836
|
+
name: z13.string().trim().min(1).max(200)
|
|
2837
|
+
})
|
|
2838
|
+
).max(500).optional(),
|
|
2839
|
+
defaultModelSlot: z13.string().trim().min(1).max(128).optional(),
|
|
2831
2840
|
/** Deprecated (#312, 2026-10-27): could host the native Coordinator. The server keeps that runtime switched off. */
|
|
2832
2841
|
coordinator: z13.boolean().optional(),
|
|
2833
2842
|
/** Set only by a runner with an isolated, owner-bound subscription broker. */
|
|
@@ -3934,7 +3943,7 @@ var InvalidIdError = class extends DaemonError {
|
|
|
3934
3943
|
// package.json
|
|
3935
3944
|
var package_default = {
|
|
3936
3945
|
name: "@mikka/daemon",
|
|
3937
|
-
version: "0.0.
|
|
3946
|
+
version: "0.0.45",
|
|
3938
3947
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3939
3948
|
type: "module",
|
|
3940
3949
|
private: true,
|
|
@@ -3993,7 +4002,7 @@ var package_default = {
|
|
|
3993
4002
|
engines: {
|
|
3994
4003
|
node: ">=24"
|
|
3995
4004
|
},
|
|
3996
|
-
gitHead: "
|
|
4005
|
+
gitHead: "2ed99faf09cfa4dc1d7e904337353ba057dcff9b"
|
|
3997
4006
|
};
|
|
3998
4007
|
|
|
3999
4008
|
// src/paths.ts
|
|
@@ -4312,6 +4321,7 @@ var HttpServerLink = class {
|
|
|
4312
4321
|
"content-type": "application/json",
|
|
4313
4322
|
[CLIENT_VERSION_HEADER]: this.clientVersion,
|
|
4314
4323
|
[SKILL_ARTIFACT_HEADER]: "1",
|
|
4324
|
+
[TEAM_SKILL_HEADER]: "1",
|
|
4315
4325
|
[REPO_ORIGIN_HEADER]: "1",
|
|
4316
4326
|
[RECOVERY_WORKTREE_HEADER]: "1",
|
|
4317
4327
|
...token ? { authorization: `Bearer ${token}` } : {},
|
package/login.js
CHANGED
|
@@ -2091,8 +2091,8 @@ var storedPermissionsSchema = z2.strictObject({
|
|
|
2091
2091
|
computer_use: z2.enum(CONFIGURABLE_PERMISSIONS.computer_use)
|
|
2092
2092
|
}).partial();
|
|
2093
2093
|
var guidanceSchema = z2.string().max(MAX_GUIDANCE_LENGTH);
|
|
2094
|
-
var runPolicySchema = z2.
|
|
2095
|
-
permissions: z2.
|
|
2094
|
+
var runPolicySchema = z2.strictObject({
|
|
2095
|
+
permissions: z2.strictObject({
|
|
2096
2096
|
install_dependency: z2.enum(PERMISSION_DECISIONS),
|
|
2097
2097
|
write_outside_repo: z2.enum(PERMISSION_DECISIONS),
|
|
2098
2098
|
git_push: z2.enum(PERMISSION_DECISIONS),
|
|
@@ -2332,6 +2332,14 @@ var harnessInfoSchema = z6.object({
|
|
|
2332
2332
|
harness: harnessSchema,
|
|
2333
2333
|
installed: z6.boolean(),
|
|
2334
2334
|
models: z6.array(z6.string().trim().min(1).max(128)).max(500).optional(),
|
|
2335
|
+
modelSlots: z6.array(
|
|
2336
|
+
z6.object({
|
|
2337
|
+
slot: z6.string().trim().min(1).max(128).refine((v2) => v2 !== "auto"),
|
|
2338
|
+
model: z6.string().trim().min(1).max(128),
|
|
2339
|
+
name: z6.string().trim().min(1).max(200)
|
|
2340
|
+
})
|
|
2341
|
+
).max(500).optional(),
|
|
2342
|
+
defaultModelSlot: z6.string().trim().min(1).max(128).optional(),
|
|
2335
2343
|
/** Deprecated (#312, 2026-10-27): could host the native Coordinator. The server keeps that runtime switched off. */
|
|
2336
2344
|
coordinator: z6.boolean().optional(),
|
|
2337
2345
|
/** Set only by a runner with an isolated, owner-bound subscription broker. */
|
|
@@ -2723,7 +2731,7 @@ import { z as z12 } from "zod";
|
|
|
2723
2731
|
import { z as z11 } from "zod";
|
|
2724
2732
|
var skillArtifactRefSchema = z11.object({
|
|
2725
2733
|
schemaVersion: z11.literal(1),
|
|
2726
|
-
registryId: z11.
|
|
2734
|
+
registryId: z11.enum(["mikka-builtin", "mikka-team"]),
|
|
2727
2735
|
skillId: z11.uuid(),
|
|
2728
2736
|
versionId: z11.uuid(),
|
|
2729
2737
|
format: z11.literal("single-skill-md-v1"),
|
|
@@ -3640,7 +3648,7 @@ var ServerUnreachableError = class extends DaemonError {
|
|
|
3640
3648
|
// package.json
|
|
3641
3649
|
var package_default = {
|
|
3642
3650
|
name: "@mikka/daemon",
|
|
3643
|
-
version: "0.0.
|
|
3651
|
+
version: "0.0.45",
|
|
3644
3652
|
description: "Local Mikka daemon: runs agents through the user's own CLIs",
|
|
3645
3653
|
type: "module",
|
|
3646
3654
|
private: true,
|
|
@@ -3699,7 +3707,7 @@ var package_default = {
|
|
|
3699
3707
|
engines: {
|
|
3700
3708
|
node: ">=24"
|
|
3701
3709
|
},
|
|
3702
|
-
gitHead: "
|
|
3710
|
+
gitHead: "2ed99faf09cfa4dc1d7e904337353ba057dcff9b"
|
|
3703
3711
|
};
|
|
3704
3712
|
|
|
3705
3713
|
// src/paths.ts
|