@desplega.ai/agent-swarm 1.162.0 → 1.164.0
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/README.md +2 -1
- package/dist/{acp-adapter-74m73ae9.js → acp-adapter-8t22d18g.js} +2 -2
- package/dist/{actions-4sr14gnt.js → actions-49xrhww7.js} +32 -29
- package/dist/amp-adapter-p230tajt.js +34 -0
- package/dist/{anthropic-messages-8xxrzky9.js → anthropic-messages-hst62ws9.js} +3 -3
- package/dist/{app-pt68fbwp.js → app-tgzw3f3d.js} +11 -10
- package/dist/{assistant-cv3jytks.js → assistant-dgfjm07j.js} +33 -30
- package/dist/{azure-openai-responses-f5cqsyj8.js → azure-openai-responses-mh8tvf78.js} +9 -68
- package/dist/{boot-reembed-4ht4gqth.js → boot-reembed-0qzs614r.js} +13 -12
- package/dist/{boot-reembed-nxpcvpj9.js → boot-reembed-dgp6peyx.js} +12 -11
- package/dist/{boot-scrub-logs-k93kyw8k.js → boot-scrub-logs-fxnk021a.js} +10 -9
- package/dist/{boot-seeds-1skcrs0e.js → boot-seeds-xe7adjvm.js} +14 -13
- package/dist/{claude-adapter-r5g0tzge.js → claude-adapter-hx0n8a31.js} +22 -20
- package/dist/{claude-managed-adapter-yxkfxg8j.js → claude-managed-adapter-hskapeen.js} +3 -3
- package/dist/{claude-managed-setup-pkyrgshb.js → claude-managed-setup-p7mt6dfq.js} +1 -1
- package/dist/{claude-sdk-session-jxyxnrwd.js → claude-sdk-session-d61a9c8x.js} +22 -20
- package/dist/{cli-twrh04ap.js → cli-0y30kqz4.js} +3 -3
- package/dist/{cli-5xhpb3kv.js → cli-0z9dj97t.js} +9 -9
- package/dist/{cli-t845n9xk.js → cli-1nzb8ftr.js} +2 -2
- package/dist/{cli-kdkwd3yr.js → cli-1wd1n2ya.js} +38 -10
- package/dist/{cli-vxe6qa4h.js → cli-23az412e.js} +1 -1
- package/dist/{cli-bsky8g7w.js → cli-26x4d89j.js} +1 -1
- package/dist/{cli-swfmp1fx.js → cli-2ar0x7cz.js} +9 -9
- package/dist/cli-2ksgp01n.js +933 -0
- package/dist/{cli-rnyzn44p.js → cli-2zhhnz2h.js} +1 -1
- package/dist/{cli-vc9bp061.js → cli-3qaw32we.js} +5 -5
- package/dist/{cli-vy3ed88x.js → cli-402m8btc.js} +31 -3
- package/dist/{cli-5bcd7sfy.js → cli-43fh8fzw.js} +3 -3
- package/dist/{cli-5k6k8ta3.js → cli-4f7s6k3q.js} +13 -5
- package/dist/{cli-sqvfa090.js → cli-4ntg6tkp.js} +6 -5
- package/dist/{cli-kh04eqwe.js → cli-4y9bnpvy.js} +1 -1
- package/dist/{cli-qjjvzwzd.js → cli-5c2j5yvx.js} +1 -1
- package/dist/{cli-2zy95vhm.js → cli-6891ft0y.js} +2 -2
- package/dist/{cli-tre4bdgq.js → cli-6behs2bt.js} +1 -1
- package/dist/cli-7mm2r1kp.js +17 -0
- package/dist/cli-7xcgj20z.js +68 -0
- package/dist/{cli-4cwxn7gp.js → cli-812vt3ht.js} +2 -2
- package/dist/{cli-mbssg1xv.js → cli-8kt0bmgx.js} +1 -1
- package/dist/{cli-wjgs5wxe.js → cli-8rpq35c0.js} +7 -7
- package/dist/{cli-jxs2ygaw.js → cli-9m8fk2v7.js} +74 -29
- package/dist/{cli-pkd6s2wy.js → cli-9q3wt23f.js} +2 -2
- package/dist/{cli-s3hwpt9v.js → cli-9s6fsg07.js} +30 -10
- package/dist/{cli-xqpk3rp7.js → cli-9x3bwfd3.js} +28 -5
- package/dist/{cli-qrgt5bqf.js → cli-agamgm0p.js} +1 -1
- package/dist/{cli-13hw4z91.js → cli-b0f70z24.js} +1 -1
- package/dist/{cli-gpqpmns7.js → cli-cgrvsz2t.js} +2 -2
- package/dist/{cli-2hhfhfq5.js → cli-cn53e7vc.js} +8 -1
- package/dist/{cli-p0r8sxj5.js → cli-crjazzsg.js} +222 -4
- package/dist/{cli-tcen9p5w.js → cli-d37n8b7c.js} +5 -5
- package/dist/{cli-wxkkd0e0.js → cli-dgh781z9.js} +3 -3
- package/dist/cli-dsdg2wrk.js +516 -0
- package/dist/{cli-q24re23n.js → cli-e2xnc4m5.js} +4 -4
- package/dist/{cli-f7kvq46p.js → cli-erxeg64j.js} +20 -0
- package/dist/{cli-8ev9xqnx.js → cli-fajbc7sa.js} +17 -219
- package/dist/{cli-g739zqzt.js → cli-fj86xr3c.js} +2 -2
- package/dist/{cli-zvhd3f64.js → cli-fpbvcf55.js} +3 -3
- package/dist/{cli-kp42yek0.js → cli-fyra5y8k.js} +424 -71
- package/dist/{cli-jyy6pm2f.js → cli-g3qgrzck.js} +15 -3
- package/dist/{cli-eg0b3p0k.js → cli-g5erf0zt.js} +23 -14
- package/dist/{cli-cvatsam7.js → cli-gcvzvq3e.js} +4 -4
- package/dist/{cli-89s4ngw3.js → cli-gvcgmx69.js} +1 -1
- package/dist/{cli-7tre70zp.js → cli-j261c831.js} +138 -128
- package/dist/{cli-sptrj5f5.js → cli-j3me0jw2.js} +2 -2
- package/dist/{cli-zxqx25nz.js → cli-k6w44yvq.js} +6 -6
- package/dist/cli-ndx5yz5n.js +3299 -0
- package/dist/{cli-ykk5jaax.js → cli-nexwh8zg.js} +34 -29
- package/dist/{cli-rfjw9jw2.js → cli-ng97fjq7.js} +2 -2
- package/dist/{cli-4x0csdjq.js → cli-ngne1dng.js} +2 -2
- package/dist/{cli-4dcpaefp.js → cli-pfzrhb8n.js} +2 -2
- package/dist/{cli-hb5c2x5y.js → cli-q38n4bq0.js} +2 -2
- package/dist/{cli-cebmgwsc.js → cli-r109nq7n.js} +4 -4
- package/dist/{cli-nq7yqw7b.js → cli-t7g0vmtc.js} +4 -4
- package/dist/{cli-jf7wmv1r.js → cli-tsvj33y0.js} +58 -19
- package/dist/{cli-7af8yhav.js → cli-vbr859rz.js} +7 -4
- package/dist/{cli-nt8hecg9.js → cli-wk3v6h55.js} +67 -38
- package/dist/{cli-vyqs9ya8.js → cli-wwvk0tsy.js} +7 -7
- package/dist/{cli-rj0gqwwp.js → cli-y2de3bzp.js} +1 -1
- package/dist/{cli-hmsw1gpy.js → cli-y74170pb.js} +4 -4
- package/dist/cli-ydt3zkwv.js +70 -0
- package/dist/{cli-xk79303e.js → cli-yj790e19.js} +9 -1
- package/dist/cli-zt3w1cn1.js +137 -0
- package/dist/{cli-trc24wk2.js → cli-zxg80zs9.js} +1 -1
- package/dist/cli.js +23 -22
- package/dist/{cloudflare-workers-ai-system-one-k8ddqjkq.js → cloudflare-workers-ai-system-one-tt484t61.js} +2 -2
- package/dist/{codex-adapter-esvmnhn7.js → codex-adapter-e3pky8aj.js} +14 -13
- package/dist/{codex-hook-m73jmqgx.js → codex-hook-b1fb7c2k.js} +4 -3
- package/dist/{codex-session-runner-ban9excr.js → codex-session-runner-1gq27w2t.js} +14 -13
- package/dist/{commands-75413p2n.js → commands-q07ezjzn.js} +10 -9
- package/dist/cursor-adapter-50cz7yba.js +32 -0
- package/dist/{db-7f5pecwg.js → db-wwt0sq9q.js} +18 -9
- package/dist/{dispatcher-fh9at8nz.js → dispatcher-wrg35vdd.js} +31 -28
- package/dist/{dsh-adapter-wpze65d4.js → dsh-adapter-sa6rxfpc.js} +6 -6
- package/dist/{e2b-gjgdjp91.js → e2b-v5np73yj.js} +4 -4
- package/dist/{easter-egg-3d-3w5c2n4c.js → easter-egg-3d-h2hx9b64.js} +2 -2
- package/dist/{event-bus-sfx8dx3t.js → event-bus-vkbhzt4n.js} +1 -1
- package/dist/{execute-f50wg9nh.js → execute-6gczxy8v.js} +42 -13
- package/dist/{google-generative-ai-jxxpnegy.js → google-generative-ai-d6nphg3q.js} +3 -3
- package/dist/{google-vertex-x7q1angm.js → google-vertex-cpshkref.js} +3 -3
- package/dist/{handlers-w13787bb.js → handlers-rv3gxvsp.js} +34 -31
- package/dist/{hook-46g1jrvx.js → hook-bcf5m80y.js} +15 -13
- package/dist/{hook-4tpts2ry.js → hook-z8b1jm2d.js} +16 -14
- package/dist/{http-19pzbfrt.js → http-56f7yt97.js} +932 -134
- package/dist/{index-scptvdxg.js → index-0kncjnrm.js} +30 -23
- package/dist/{index-dqmp15bq.js → index-1e6cg96n.js} +31 -28
- package/dist/{index-qb4q1y3e.js → index-8xgdb3k8.js} +31 -28
- package/dist/index-adw4zr9j.js +1020 -0
- package/dist/{index-h5gs261z.js → index-etdrp7yp.js} +140 -140
- package/dist/{index-8fd4dm4h.js → index-f9zscmft.js} +32 -29
- package/dist/index-fdk1t4d6.js +91297 -0
- package/dist/{index-s75wc4wd.js → index-jvb37h77.js} +12 -11
- package/dist/{keepalive-xa5ts9cd.js → keepalive-rp8daj4s.js} +12 -11
- package/dist/{lead-qp4xkvjq.js → lead-dfp77erc.js} +45 -40
- package/dist/{maintenance-rm5885hm.js → maintenance-wtmw3jqv.js} +13 -12
- package/dist/{mistral-conversations-rw7fbt22.js → mistral-conversations-8445ddjn.js} +2 -2
- package/dist/{oauth-refresh-sweep-1csdfebf.js → oauth-refresh-sweep-yhzqt95v.js} +11 -10
- package/dist/{onboard-r6b78cs4.js → onboard-9z8rwbcy.js} +2 -2
- package/dist/{openai-codex-responses-efvrgrq3.js → openai-codex-responses-9ynm88zy.js} +3 -3
- package/dist/{openai-completions-bbbrrz4z.js → openai-completions-nhqwjmaw.js} +2 -2
- package/dist/{openai-responses-9jjyrcm1.js → openai-responses-xx1c4kgm.js} +3 -3
- package/dist/{opencode-adapter-kb3g6pkf.js → opencode-adapter-1nxb6555.js} +5 -5
- package/dist/{otel-impl-0y9knpky.js → otel-impl-b83gaxw2.js} +1 -1
- package/dist/{pi-mono-adapter-z6s1bme2.js → pi-mono-adapter-ddxz8pjp.js} +18 -17
- package/dist/{pricing-refresh-mth26tgp.js → pricing-refresh-tmjvazb6.js} +12 -11
- package/dist/{rbac-roles-kwntb23q.js → rbac-roles-pa0gzjws.js} +11 -10
- package/dist/{rbac-roles-vpk4ebm8.js → rbac-roles-rhexa9s2.js} +12 -11
- package/dist/{render-v2-hcm7h00y.js → render-v2-ask84n8y.js} +11 -10
- package/dist/{runtime-vfjsfsc5.js → runtime-ckjnj3vf.js} +4 -4
- package/dist/{setup-hbyzd65h.js → setup-5ga5gdsy.js} +2 -2
- package/dist/{typesafe-system-one-2ef30pec.js → typesafe-system-one-datfr82p.js} +2 -2
- package/dist/{virtual-modules-9bv7ry91.js → virtual-modules-bmp3zwjf.js} +12 -11
- package/dist/{work-objects-m09sxnhe.js → work-objects-snnh0t7j.js} +34 -31
- package/dist/{worker-0h35rvk4.js → worker-rxyymrhb.js} +45 -40
- package/openapi.json +997 -39
- package/package.json +6 -5
- package/src/be/db/active-sessions.ts +30 -0
- package/src/be/db/approvals.ts +54 -0
- package/src/be/db.ts +25 -4
- package/src/be/mcp-server-checked-update.ts +34 -0
- package/src/be/mcp-server-stdio-gate.ts +34 -0
- package/src/be/memory/key-browser.ts +304 -0
- package/src/be/memory/providers/sqlite-store.ts +16 -3
- package/src/be/migrations/194_memory_orphan_chunks.sql +15 -0
- package/src/be/migrations/195_approval_request_approvals.sql +6 -0
- package/src/be/model-validation.ts +12 -2
- package/src/be/multi-runtime.ts +4 -3
- package/src/be/pricing-normalize.ts +11 -0
- package/src/be/repo-checked-update.ts +37 -0
- package/src/be/repo-merge-policy.ts +15 -0
- package/src/be/seed-pricing.ts +48 -1
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/commands/provider-credentials.ts +44 -2
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +100 -0
- package/src/extensions/dispatcher.ts +19 -0
- package/src/extensions/post-bridge.ts +191 -0
- package/src/github/handlers.ts +128 -2
- package/src/gitlab/workflow-action-name.ts +15 -0
- package/src/heartbeat/heartbeat.ts +4 -3
- package/src/http/active-sessions.ts +6 -5
- package/src/http/agents.ts +10 -1
- package/src/http/approval-requests.ts +271 -35
- package/src/http/index.ts +1 -1
- package/src/http/mcp-servers.ts +74 -50
- package/src/http/memory.ts +275 -6
- package/src/http/repos.ts +58 -18
- package/src/http/request-principal.ts +19 -0
- package/src/http/session-cost-recompute.ts +64 -0
- package/src/http/session-data.ts +11 -0
- package/src/http/tasks.ts +9 -1
- package/src/http/webhooks.ts +17 -5
- package/src/prompts/base-prompt.ts +9 -4
- package/src/prompts/resolver.ts +1 -1
- package/src/prompts/session-templates.ts +28 -0
- package/src/providers/amp-adapter.ts +1232 -0
- package/src/providers/cursor-adapter.ts +638 -0
- package/src/providers/index.ts +9 -1
- package/src/providers/pricing-sources.md +39 -0
- package/src/providers/reasoning-effort.ts +15 -1
- package/src/providers/types.ts +11 -1
- package/src/rbac/legacy-policy.ts +23 -8
- package/src/rbac/permissions.ts +27 -1
- package/src/scripts-runtime/types/swarm-extension.d.ts +119 -0
- package/src/tests/amp-adapter.test.ts +822 -0
- package/src/tests/amp-budget-export-failed.test.ts +133 -0
- package/src/tests/amp-pricing-helpers.ts +16 -0
- package/src/tests/amp-pricing.test.ts +218 -0
- package/src/tests/api-drain-worker-e2e.test.ts +18 -7
- package/src/tests/approval-respond-auth.test.ts +371 -0
- package/src/tests/base-prompt.test.ts +13 -0
- package/src/tests/claude-adapter-binary.test.ts +24 -0
- package/src/tests/claude-adapter.test.ts +8 -0
- package/src/tests/cursor-adapter.test.ts +690 -0
- package/src/tests/db-task-read-contract.test.ts +5 -0
- package/src/tests/db-task-write-contract.test.ts +5 -0
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/extensions-post-bridge.test.ts +669 -0
- package/src/tests/extensions-run-context.test.ts +61 -0
- package/src/tests/fixtures/fake-amp.ts +304 -0
- package/src/tests/github-handlers-inline-comments.test.ts +147 -1
- package/src/tests/gitlab-workflow-event-names.test.ts +136 -0
- package/src/tests/mcp-input-ergonomics.test.ts +15 -10
- package/src/tests/mcp-server-stdio-gate.test.ts +438 -0
- package/src/tests/memory-http-access.test.ts +221 -0
- package/src/tests/memory-keys-endpoint.test.ts +406 -0
- package/src/tests/memory-store.test.ts +166 -0
- package/src/tests/model-tier-resolution.test.ts +3 -3
- package/src/tests/pricing-refresh.test.ts +5 -4
- package/src/tests/prompt-template-session.test.ts +5 -3
- package/src/tests/provider-process-group.test.ts +41 -0
- package/src/tests/provider-registration.test.ts +3 -1
- package/src/tests/rbac-charact-misc-tools.test.ts +18 -3
- package/src/tests/rbac-engine.test.ts +15 -11
- package/src/tests/rbac-wire-e2e.test.ts +4 -9
- package/src/tests/repo-allow-merge-gate.test.ts +382 -0
- package/src/tests/script-connections.test.ts +4 -0
- package/src/tests/send-task-requester-gate.test.ts +260 -0
- package/src/tests/session-activity-liveness.test.ts +248 -0
- package/src/tests/session-costs-golden.test.ts +28 -0
- package/src/tests/webhooks-task-blocked.test.ts +4 -4
- package/src/tests/write-gate.ts +68 -0
- package/src/tests/x402-client.test.ts +124 -0
- package/src/tests/x402-spending-tracker.test.ts +66 -0
- package/src/tools/mcp-servers/mcp-server-create.ts +23 -1
- package/src/tools/mcp-servers/mcp-server-update.ts +46 -28
- package/src/tools/memory-delete.ts +3 -3
- package/src/tools/repos/update-repo.ts +26 -5
- package/src/tools/send-task.ts +24 -1
- package/src/tools/steer-task.ts +1 -1
- package/src/types.ts +37 -2
- package/src/utils/amp-models.ts +114 -0
- package/src/utils/credentials.ts +8 -0
- package/src/utils/process-group.ts +79 -0
- package/src/workflows/event-bus.ts +28 -0
- package/src/x402/client.ts +36 -14
- package/src/x402/spending-tracker.ts +64 -3
- package/templates/skills/agent-browser/SKILL.md +5 -0
- package/templates/skills/agent-browser/content.md +5 -0
- package/templates/skills/heartbeat-runbook/content.md +1 -0
- package/templates/skills/swarm-extensions/content.md +4 -0
- package/dist/cli-y89t4nca.js +0 -67
|
@@ -7,11 +7,229 @@ import {
|
|
|
7
7
|
imageFallback,
|
|
8
8
|
resolvePath,
|
|
9
9
|
truncateToWidth
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-9s6fsg07.js";
|
|
11
|
+
|
|
12
|
+
// node_modules/@earendil-works/pi-coding-agent/dist/utils/output-files.js
|
|
13
|
+
import { randomBytes } from "node:crypto";
|
|
14
|
+
import { createWriteStream } from "node:fs";
|
|
15
|
+
import { writeFile } from "node:fs/promises";
|
|
16
|
+
import { tmpdir } from "node:os";
|
|
17
|
+
import { join } from "node:path";
|
|
18
|
+
var OUTPUT_FILE_MODE = 384;
|
|
19
|
+
function createOutputFilePath(prefix, extension) {
|
|
20
|
+
return join(tmpdir(), `${prefix}-${randomBytes(8).toString("hex")}${extension}`);
|
|
21
|
+
}
|
|
22
|
+
async function writeOutputFile(prefix, extension, data) {
|
|
23
|
+
const path = createOutputFilePath(prefix, extension);
|
|
24
|
+
await writeFile(path, data, { mode: OUTPUT_FILE_MODE, flag: "wx" });
|
|
25
|
+
return path;
|
|
26
|
+
}
|
|
27
|
+
function createOutputFileStream(prefix, extension) {
|
|
28
|
+
const path = createOutputFilePath(prefix, extension);
|
|
29
|
+
return { path, stream: createWriteStream(path, { mode: OUTPUT_FILE_MODE, flags: "wx" }) };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js
|
|
33
|
+
var DEFAULT_MAX_LINES = 2000;
|
|
34
|
+
var DEFAULT_MAX_BYTES = 50 * 1024;
|
|
35
|
+
var GREP_MAX_LINE_LENGTH = 500;
|
|
36
|
+
function splitLinesForCounting(content) {
|
|
37
|
+
if (content.length === 0) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const lines = content.split(`
|
|
41
|
+
`);
|
|
42
|
+
if (content.endsWith(`
|
|
43
|
+
`)) {
|
|
44
|
+
lines.pop();
|
|
45
|
+
}
|
|
46
|
+
return lines;
|
|
47
|
+
}
|
|
48
|
+
function formatSize(bytes) {
|
|
49
|
+
if (bytes < 1024) {
|
|
50
|
+
return `${bytes}B`;
|
|
51
|
+
} else if (bytes < 1024 * 1024) {
|
|
52
|
+
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
53
|
+
} else {
|
|
54
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function truncateHead(content, options = {}) {
|
|
58
|
+
const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
59
|
+
const maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
60
|
+
const totalBytes = Buffer.byteLength(content, "utf-8");
|
|
61
|
+
const lines = splitLinesForCounting(content);
|
|
62
|
+
const totalLines = lines.length;
|
|
63
|
+
if (totalLines <= maxLines && totalBytes <= maxBytes) {
|
|
64
|
+
return {
|
|
65
|
+
content,
|
|
66
|
+
truncated: false,
|
|
67
|
+
truncatedBy: null,
|
|
68
|
+
totalLines,
|
|
69
|
+
totalBytes,
|
|
70
|
+
outputLines: totalLines,
|
|
71
|
+
outputBytes: totalBytes,
|
|
72
|
+
lastLinePartial: false,
|
|
73
|
+
firstLineExceedsLimit: false,
|
|
74
|
+
maxLines,
|
|
75
|
+
maxBytes
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const firstLineBytes = Buffer.byteLength(lines[0], "utf-8");
|
|
79
|
+
if (firstLineBytes > maxBytes) {
|
|
80
|
+
return {
|
|
81
|
+
content: "",
|
|
82
|
+
truncated: true,
|
|
83
|
+
truncatedBy: "bytes",
|
|
84
|
+
totalLines,
|
|
85
|
+
totalBytes,
|
|
86
|
+
outputLines: 0,
|
|
87
|
+
outputBytes: 0,
|
|
88
|
+
lastLinePartial: false,
|
|
89
|
+
firstLineExceedsLimit: true,
|
|
90
|
+
maxLines,
|
|
91
|
+
maxBytes
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
const outputLinesArr = [];
|
|
95
|
+
let outputBytesCount = 0;
|
|
96
|
+
let truncatedBy = "lines";
|
|
97
|
+
for (let i = 0;i < lines.length && i < maxLines; i++) {
|
|
98
|
+
const line = lines[i];
|
|
99
|
+
const lineBytes = Buffer.byteLength(line, "utf-8") + (i > 0 ? 1 : 0);
|
|
100
|
+
if (outputBytesCount + lineBytes > maxBytes) {
|
|
101
|
+
truncatedBy = "bytes";
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
outputLinesArr.push(line);
|
|
105
|
+
outputBytesCount += lineBytes;
|
|
106
|
+
}
|
|
107
|
+
if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
|
|
108
|
+
truncatedBy = "lines";
|
|
109
|
+
}
|
|
110
|
+
const outputContent = outputLinesArr.join(`
|
|
111
|
+
`);
|
|
112
|
+
const finalOutputBytes = Buffer.byteLength(outputContent, "utf-8");
|
|
113
|
+
return {
|
|
114
|
+
content: outputContent,
|
|
115
|
+
truncated: true,
|
|
116
|
+
truncatedBy,
|
|
117
|
+
totalLines,
|
|
118
|
+
totalBytes,
|
|
119
|
+
outputLines: outputLinesArr.length,
|
|
120
|
+
outputBytes: finalOutputBytes,
|
|
121
|
+
lastLinePartial: false,
|
|
122
|
+
firstLineExceedsLimit: false,
|
|
123
|
+
maxLines,
|
|
124
|
+
maxBytes
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function truncateTail(content, options = {}) {
|
|
128
|
+
const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
129
|
+
const maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
130
|
+
const totalBytes = Buffer.byteLength(content, "utf-8");
|
|
131
|
+
const lines = splitLinesForCounting(content);
|
|
132
|
+
const totalLines = lines.length;
|
|
133
|
+
if (totalLines <= maxLines && totalBytes <= maxBytes) {
|
|
134
|
+
return {
|
|
135
|
+
content,
|
|
136
|
+
truncated: false,
|
|
137
|
+
truncatedBy: null,
|
|
138
|
+
totalLines,
|
|
139
|
+
totalBytes,
|
|
140
|
+
outputLines: totalLines,
|
|
141
|
+
outputBytes: totalBytes,
|
|
142
|
+
lastLinePartial: false,
|
|
143
|
+
firstLineExceedsLimit: false,
|
|
144
|
+
maxLines,
|
|
145
|
+
maxBytes
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const outputLinesArr = [];
|
|
149
|
+
let outputBytesCount = 0;
|
|
150
|
+
let truncatedBy = "lines";
|
|
151
|
+
let lastLinePartial = false;
|
|
152
|
+
for (let i = lines.length - 1;i >= 0 && outputLinesArr.length < maxLines; i--) {
|
|
153
|
+
const line = lines[i];
|
|
154
|
+
const lineBytes = Buffer.byteLength(line, "utf-8") + (outputLinesArr.length > 0 ? 1 : 0);
|
|
155
|
+
if (outputBytesCount + lineBytes > maxBytes) {
|
|
156
|
+
truncatedBy = "bytes";
|
|
157
|
+
if (outputLinesArr.length === 0) {
|
|
158
|
+
const truncatedLine = truncateStringToBytesFromEnd(line, maxBytes);
|
|
159
|
+
outputLinesArr.unshift(truncatedLine);
|
|
160
|
+
outputBytesCount = Buffer.byteLength(truncatedLine, "utf-8");
|
|
161
|
+
lastLinePartial = true;
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
outputLinesArr.unshift(line);
|
|
166
|
+
outputBytesCount += lineBytes;
|
|
167
|
+
}
|
|
168
|
+
if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
|
|
169
|
+
truncatedBy = "lines";
|
|
170
|
+
}
|
|
171
|
+
const outputContent = outputLinesArr.join(`
|
|
172
|
+
`);
|
|
173
|
+
const finalOutputBytes = Buffer.byteLength(outputContent, "utf-8");
|
|
174
|
+
return {
|
|
175
|
+
content: outputContent,
|
|
176
|
+
truncated: true,
|
|
177
|
+
truncatedBy,
|
|
178
|
+
totalLines,
|
|
179
|
+
totalBytes,
|
|
180
|
+
outputLines: outputLinesArr.length,
|
|
181
|
+
outputBytes: finalOutputBytes,
|
|
182
|
+
lastLinePartial,
|
|
183
|
+
firstLineExceedsLimit: false,
|
|
184
|
+
maxLines,
|
|
185
|
+
maxBytes
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function truncateStringToBytesFromEnd(str, maxBytes) {
|
|
189
|
+
const buf = Buffer.from(str, "utf-8");
|
|
190
|
+
if (buf.length <= maxBytes) {
|
|
191
|
+
return str;
|
|
192
|
+
}
|
|
193
|
+
let start = buf.length - maxBytes;
|
|
194
|
+
while (start < buf.length && (buf[start] & 192) === 128) {
|
|
195
|
+
start++;
|
|
196
|
+
}
|
|
197
|
+
return buf.slice(start).toString("utf-8");
|
|
198
|
+
}
|
|
199
|
+
function truncateLine(line, maxChars = GREP_MAX_LINE_LENGTH) {
|
|
200
|
+
if (line.length <= maxChars) {
|
|
201
|
+
return { text: line, wasTruncated: false };
|
|
202
|
+
}
|
|
203
|
+
return { text: `${line.slice(0, maxChars)}... [truncated]`, wasTruncated: true };
|
|
204
|
+
}
|
|
205
|
+
function truncateMiddle(content, maxBytes) {
|
|
206
|
+
const buf = Buffer.from(content, "utf-8");
|
|
207
|
+
const totalLines = splitLinesForCounting(content).length;
|
|
208
|
+
if (buf.length <= maxBytes) {
|
|
209
|
+
return { content, truncated: false, removedChars: 0, totalBytes: buf.length, totalLines };
|
|
210
|
+
}
|
|
211
|
+
const isBoundary = (index) => index >= buf.length || (buf[index] & 192) !== 128;
|
|
212
|
+
let headEnd = Math.floor(maxBytes / 2);
|
|
213
|
+
while (headEnd > 0 && !isBoundary(headEnd))
|
|
214
|
+
headEnd--;
|
|
215
|
+
let tailStart = buf.length - (maxBytes - Math.floor(maxBytes / 2));
|
|
216
|
+
while (tailStart < buf.length && !isBoundary(tailStart))
|
|
217
|
+
tailStart++;
|
|
218
|
+
const head = buf.subarray(0, headEnd).toString("utf-8");
|
|
219
|
+
const tail = buf.subarray(tailStart).toString("utf-8");
|
|
220
|
+
const removedChars = Array.from(buf.subarray(headEnd, tailStart).toString("utf-8")).length;
|
|
221
|
+
return {
|
|
222
|
+
content: `${head}…${removedChars} chars truncated…${tail}`,
|
|
223
|
+
truncated: true,
|
|
224
|
+
removedChars,
|
|
225
|
+
totalBytes: buf.length,
|
|
226
|
+
totalLines
|
|
227
|
+
};
|
|
228
|
+
}
|
|
11
229
|
|
|
12
230
|
// node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js
|
|
13
231
|
import { existsSync } from "node:fs";
|
|
14
|
-
import { delimiter, join } from "node:path";
|
|
232
|
+
import { delimiter, join as join2 } from "node:path";
|
|
15
233
|
import { spawn, spawnSync } from "child_process";
|
|
16
234
|
function isLegacyWslBashPath(path) {
|
|
17
235
|
const normalized = path.replace(/\//g, "\\").toLowerCase();
|
|
@@ -134,7 +352,7 @@ function killTrackedDetachedChildren() {
|
|
|
134
352
|
function killProcessTree(pid) {
|
|
135
353
|
if (process.platform === "win32") {
|
|
136
354
|
try {
|
|
137
|
-
const child = spawn(
|
|
355
|
+
const child = spawn(join2(process.env.SystemRoot ?? "C:\\Windows", "System32", "taskkill.exe"), ["/F", "/T", "/PID", String(pid)], {
|
|
138
356
|
stdio: "ignore",
|
|
139
357
|
detached: true,
|
|
140
358
|
windowsHide: true
|
|
@@ -300,4 +518,4 @@ function renderToolPath(rawPath, theme, cwd, options) {
|
|
|
300
518
|
return linkPath(theme.fg("accent", shortenPath(value)), value, cwd);
|
|
301
519
|
}
|
|
302
520
|
|
|
303
|
-
export { stripAnsi, getShellConfig, getPowerShellConfig, getShellEnv, sanitizeBinaryOutput, trackDetachedChildPid, untrackDetachedChildPid, killTrackedDetachedChildren, killProcessTree, truncateToVisualLines, VisualLinePreview, shortenPath, str, replaceTabs, normalizeDisplayText, getTextOutput, formatToolCallWithArgs, invalidArgText, renderToolPath };
|
|
521
|
+
export { stripAnsi, writeOutputFile, createOutputFileStream, getShellConfig, getPowerShellConfig, getShellEnv, sanitizeBinaryOutput, trackDetachedChildPid, untrackDetachedChildPid, killTrackedDetachedChildren, killProcessTree, DEFAULT_MAX_LINES, DEFAULT_MAX_BYTES, GREP_MAX_LINE_LENGTH, formatSize, truncateHead, truncateTail, truncateLine, truncateMiddle, truncateToVisualLines, VisualLinePreview, shortenPath, str, replaceTabs, normalizeDisplayText, getTextOutput, formatToolCallWithArgs, invalidArgText, renderToolPath };
|
|
@@ -5,24 +5,24 @@ import {
|
|
|
5
5
|
McpSignInCancelledError,
|
|
6
6
|
createDefaultTransport,
|
|
7
7
|
signInMcpServer
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-ngne1dng.js";
|
|
9
9
|
import {
|
|
10
10
|
ProjectTrustStore,
|
|
11
11
|
addMcpServerConfig,
|
|
12
12
|
loadMcpConfig,
|
|
13
13
|
openBrowser,
|
|
14
14
|
removeMcpServerConfig
|
|
15
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-812vt3ht.js";
|
|
16
16
|
import {
|
|
17
17
|
getMcpToolExposure,
|
|
18
18
|
validateMcpServerConfig
|
|
19
|
-
} from "./cli-
|
|
20
|
-
import"./cli-
|
|
19
|
+
} from "./cli-fajbc7sa.js";
|
|
20
|
+
import"./cli-crjazzsg.js";
|
|
21
21
|
import {
|
|
22
22
|
APP_NAME,
|
|
23
23
|
CONFIG_DIR_NAME,
|
|
24
24
|
source_default
|
|
25
|
-
} from "./cli-
|
|
25
|
+
} from "./cli-9s6fsg07.js";
|
|
26
26
|
import"./cli-5bfdm1ah.js";
|
|
27
27
|
import"./cli-0m7wct0d.js";
|
|
28
28
|
import"./cli-2x0e561b.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
seedPricingFromModelsDev
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-402m8btc.js";
|
|
4
4
|
import {
|
|
5
5
|
ensureRbacSeedsSynced,
|
|
6
6
|
init_rbac_roles
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-6891ft0y.js";
|
|
8
8
|
import {
|
|
9
9
|
getDb,
|
|
10
10
|
init_db
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-tsvj33y0.js";
|
|
12
12
|
|
|
13
13
|
// src/be/boot-seeds.ts
|
|
14
14
|
init_db();
|