@visorcraft/idlehands 1.4.6 → 2.0.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/dist/agent/constants.js +12 -0
- package/dist/agent/constants.js.map +1 -0
- package/dist/agent/errors.js +8 -0
- package/dist/agent/errors.js.map +1 -0
- package/dist/agent/exec-helpers.js +105 -0
- package/dist/agent/exec-helpers.js.map +1 -0
- package/dist/agent/model-pick.js +21 -0
- package/dist/agent/model-pick.js.map +1 -0
- package/dist/agent/session-utils.js +63 -0
- package/dist/agent/session-utils.js.map +1 -0
- package/dist/agent/subagent-context.js +78 -0
- package/dist/agent/subagent-context.js.map +1 -0
- package/dist/agent/tool-loop-guard.js.map +1 -1
- package/dist/agent/tool-policy.js +54 -0
- package/dist/agent/tool-policy.js.map +1 -0
- package/dist/agent/tools-schema.js +281 -0
- package/dist/agent/tools-schema.js.map +1 -0
- package/dist/agent.js +136 -630
- package/dist/agent.js.map +1 -1
- package/dist/anton/controller.js +21 -136
- package/dist/anton/controller.js.map +1 -1
- package/dist/anton/lint-baseline.js +64 -0
- package/dist/anton/lint-baseline.js.map +1 -0
- package/dist/anton/preflight.js.map +1 -1
- package/dist/anton/prompt.js +71 -71
- package/dist/anton/reporter.js.map +1 -1
- package/dist/anton/runtime-ready.js +120 -0
- package/dist/anton/runtime-ready.js.map +1 -0
- package/dist/anton/session.js +1 -1
- package/dist/anton/session.js.map +1 -1
- package/dist/anton/verifier-utils.js +148 -0
- package/dist/anton/verifier-utils.js.map +1 -0
- package/dist/anton/verifier.js +26 -227
- package/dist/anton/verifier.js.map +1 -1
- package/dist/bot/anton-auto-pin.js +12 -0
- package/dist/bot/anton-auto-pin.js.map +1 -0
- package/dist/bot/anton-commands.js +137 -0
- package/dist/bot/anton-commands.js.map +1 -0
- package/dist/bot/anton-run.js +144 -0
- package/dist/bot/anton-run.js.map +1 -0
- package/dist/bot/anton-status-format.js +18 -0
- package/dist/bot/anton-status-format.js.map +1 -0
- package/dist/bot/basic-commands.js +114 -0
- package/dist/bot/basic-commands.js.map +1 -0
- package/dist/bot/command-format.js.map +1 -1
- package/dist/bot/command-logic.js +8 -728
- package/dist/bot/command-logic.js.map +1 -1
- package/dist/bot/commands.js +18 -1
- package/dist/bot/commands.js.map +1 -1
- package/dist/bot/discord-anton-autopin.js +29 -0
- package/dist/bot/discord-anton-autopin.js.map +1 -0
- package/dist/bot/discord-anton.js +45 -0
- package/dist/bot/discord-anton.js.map +1 -0
- package/dist/bot/discord-commands.js +20 -52
- package/dist/bot/discord-commands.js.map +1 -1
- package/dist/bot/discord-result.js +9 -0
- package/dist/bot/discord-result.js.map +1 -0
- package/dist/bot/discord-routing.js.map +1 -1
- package/dist/bot/discord.js +42 -12
- package/dist/bot/discord.js.map +1 -1
- package/dist/bot/escalation-commands.js +145 -0
- package/dist/bot/escalation-commands.js.map +1 -0
- package/dist/bot/escalation.js.map +1 -1
- package/dist/bot/git-status-command.js +28 -0
- package/dist/bot/git-status-command.js.map +1 -0
- package/dist/bot/model-endpoint.js +25 -0
- package/dist/bot/model-endpoint.js.map +1 -0
- package/dist/bot/session-history.js +61 -0
- package/dist/bot/session-history.js.map +1 -0
- package/dist/bot/session-settings.js +89 -0
- package/dist/bot/session-settings.js.map +1 -0
- package/dist/bot/telegram-commands.js +15 -7
- package/dist/bot/telegram-commands.js.map +1 -1
- package/dist/bot/telegram.js +13 -28
- package/dist/bot/telegram.js.map +1 -1
- package/dist/cli/agent-turn.js +8 -2
- package/dist/cli/agent-turn.js.map +1 -1
- package/dist/cli/commands/anton.js +6 -1
- package/dist/cli/commands/anton.js.map +1 -1
- package/dist/cli/commands/model.js +1 -3
- package/dist/cli/commands/model.js.map +1 -1
- package/dist/cli/commands/project.js +1 -1
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/secrets.js +1 -1
- package/dist/cli/commands/secrets.js.map +1 -1
- package/dist/cli/commands/session.js +22 -12
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/guided-onboarding.js +20 -0
- package/dist/cli/guided-onboarding.js.map +1 -0
- package/dist/cli/runtime-cmds.js +8 -133
- package/dist/cli/runtime-cmds.js.map +1 -1
- package/dist/cli/runtime-common.js +35 -0
- package/dist/cli/runtime-common.js.map +1 -0
- package/dist/cli/runtime-detect.js +12 -0
- package/dist/cli/runtime-detect.js.map +1 -0
- package/dist/cli/runtime-host-command.js +7 -0
- package/dist/cli/runtime-host-command.js.map +1 -0
- package/dist/cli/runtime-probe-defaults.js +63 -0
- package/dist/cli/runtime-probe-defaults.js.map +1 -0
- package/dist/cli/runtime-scan-ports.js +30 -0
- package/dist/cli/runtime-scan-ports.js.map +1 -0
- package/dist/cli/setup-bot-step.js +51 -0
- package/dist/cli/setup-bot-step.js.map +1 -0
- package/dist/cli/setup-runtime-forms.js +214 -0
- package/dist/cli/setup-runtime-forms.js.map +1 -0
- package/dist/cli/setup-style.js +8 -0
- package/dist/cli/setup-style.js.map +1 -0
- package/dist/cli/setup-ui.js +146 -0
- package/dist/cli/setup-ui.js.map +1 -0
- package/dist/cli/setup.js +11 -449
- package/dist/cli/setup.js.map +1 -1
- package/dist/client/error-utils.js +37 -0
- package/dist/client/error-utils.js.map +1 -0
- package/dist/client/pressure.js +77 -0
- package/dist/client/pressure.js.map +1 -0
- package/dist/client.js +24 -122
- package/dist/client.js.map +1 -1
- package/dist/config.js +31 -14
- package/dist/config.js.map +1 -1
- package/dist/git.js +8 -2
- package/dist/git.js.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/progress/message-edit-scheduler.js.map +1 -1
- package/dist/progress/turn-progress.js.map +1 -1
- package/dist/runtime/executor.js +4 -1
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/health.js.map +1 -1
- package/dist/runtime/host-runner.js.map +1 -1
- package/dist/safety.js +3 -2
- package/dist/safety.js.map +1 -1
- package/dist/shared/config-utils.js.map +1 -1
- package/dist/tools/exec-core.js +252 -0
- package/dist/tools/exec-core.js.map +1 -0
- package/dist/tools/exec-pty.js +89 -0
- package/dist/tools/exec-pty.js.map +1 -0
- package/dist/tools/exec-utils.js +94 -0
- package/dist/tools/exec-utils.js.map +1 -0
- package/dist/tools/file-discovery.js +144 -0
- package/dist/tools/file-discovery.js.map +1 -0
- package/dist/tools/file-mutations.js +326 -0
- package/dist/tools/file-mutations.js.map +1 -0
- package/dist/tools/file-read.js +133 -0
- package/dist/tools/file-read.js.map +1 -0
- package/dist/tools/patch-apply.js +168 -0
- package/dist/tools/patch-apply.js.map +1 -0
- package/dist/tools/path-safety.js.map +1 -1
- package/dist/tools/replay-utils.js +25 -0
- package/dist/tools/replay-utils.js.map +1 -0
- package/dist/tools/search-utils.js +55 -0
- package/dist/tools/search-utils.js.map +1 -0
- package/dist/tools/sys-notes.js +34 -0
- package/dist/tools/sys-notes.js.map +1 -0
- package/dist/tools/text-utils.js +164 -0
- package/dist/tools/text-utils.js.map +1 -0
- package/dist/tools/undo.js +1 -1
- package/dist/tools/undo.js.map +1 -1
- package/dist/tools/vault-tools.js +36 -0
- package/dist/tools/vault-tools.js.map +1 -0
- package/dist/tools.js +19 -1460
- package/dist/tools.js.map +1 -1
- package/dist/tui/controller.js +5 -2
- package/dist/tui/controller.js.map +1 -1
- package/dist/tui/render.js.map +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/dist/vault.js +1 -1
- package/dist/vault.js.map +1 -1
- package/dist/watchdog.js +1 -3
- package/dist/watchdog.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-read.js","sourceRoot":"","sources":["../../src/tools/file-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { checkPathSafety } from '../safety.js';
|
|
5
|
+
import { extractTouchedFilesFromPatch, normalizePatchPath } from './patch.js';
|
|
6
|
+
import { checkCwdWarning, enforceMutationWithinCwd, redactPath, resolvePath, } from './path-safety.js';
|
|
7
|
+
import { checkpointReplay } from './replay-utils.js';
|
|
8
|
+
import { snapshotBeforeEdit } from './sys-notes.js';
|
|
9
|
+
import { truncateBytes, stripAnsi } from './text-utils.js';
|
|
10
|
+
import { backupFile } from './undo.js';
|
|
11
|
+
async function runCommandWithStdin(cmd, cmdArgs, stdinText, cwd, maxOutBytes) {
|
|
12
|
+
return await new Promise((resolve, reject) => {
|
|
13
|
+
const child = spawn(cmd, cmdArgs, { cwd, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
14
|
+
const outChunks = [];
|
|
15
|
+
const errChunks = [];
|
|
16
|
+
let outSeen = 0;
|
|
17
|
+
let errSeen = 0;
|
|
18
|
+
let outCaptured = 0;
|
|
19
|
+
let errCaptured = 0;
|
|
20
|
+
const pushCapped = (chunks, buf, kind) => {
|
|
21
|
+
const n = buf.length;
|
|
22
|
+
if (kind === 'out')
|
|
23
|
+
outSeen += n;
|
|
24
|
+
else
|
|
25
|
+
errSeen += n;
|
|
26
|
+
const captured = kind === 'out' ? outCaptured : errCaptured;
|
|
27
|
+
const remaining = maxOutBytes - captured;
|
|
28
|
+
if (remaining <= 0)
|
|
29
|
+
return;
|
|
30
|
+
const take = n <= remaining ? buf : buf.subarray(0, remaining);
|
|
31
|
+
chunks.push(Buffer.from(take));
|
|
32
|
+
if (kind === 'out')
|
|
33
|
+
outCaptured += take.length;
|
|
34
|
+
else
|
|
35
|
+
errCaptured += take.length;
|
|
36
|
+
};
|
|
37
|
+
child.stdout.on('data', (d) => pushCapped(outChunks, Buffer.from(d), 'out'));
|
|
38
|
+
child.stderr.on('data', (d) => pushCapped(errChunks, Buffer.from(d), 'err'));
|
|
39
|
+
child.on('error', (e) => reject(new Error(`${cmd}: ${e?.message ?? String(e)}`)));
|
|
40
|
+
child.on('close', (code) => {
|
|
41
|
+
const outRaw = stripAnsi(Buffer.concat(outChunks).toString('utf8'));
|
|
42
|
+
const errRaw = stripAnsi(Buffer.concat(errChunks).toString('utf8'));
|
|
43
|
+
const outT = truncateBytes(outRaw, maxOutBytes, outSeen);
|
|
44
|
+
const errT = truncateBytes(errRaw, maxOutBytes, errSeen);
|
|
45
|
+
resolve({ rc: code ?? 0, out: outT.text, err: errT.text });
|
|
46
|
+
});
|
|
47
|
+
child.stdin.write(String(stdinText ?? ''), 'utf8');
|
|
48
|
+
child.stdin.end();
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export async function applyPatchTool(ctx, args) {
|
|
52
|
+
const rawPatch = args?.patch;
|
|
53
|
+
const patchText = typeof rawPatch === 'string'
|
|
54
|
+
? rawPatch
|
|
55
|
+
: rawPatch != null && typeof rawPatch === 'object'
|
|
56
|
+
? JSON.stringify(rawPatch, null, 2)
|
|
57
|
+
: undefined;
|
|
58
|
+
const rawFiles = Array.isArray(args?.files) ? args.files : [];
|
|
59
|
+
const files = rawFiles.map((f) => (typeof f === 'string' ? f.trim() : '')).filter(Boolean);
|
|
60
|
+
const stripRaw = Number(args?.strip);
|
|
61
|
+
const strip = Number.isFinite(stripRaw) ? Math.max(0, Math.min(5, Math.floor(stripRaw))) : 0;
|
|
62
|
+
if (!patchText)
|
|
63
|
+
throw new Error('apply_patch: missing patch');
|
|
64
|
+
if (!files.length)
|
|
65
|
+
throw new Error('apply_patch: missing files[]');
|
|
66
|
+
const touched = extractTouchedFilesFromPatch(patchText);
|
|
67
|
+
if (!touched.paths.length)
|
|
68
|
+
throw new Error('apply_patch: patch contains no recognizable file headers');
|
|
69
|
+
const declared = new Set(files.map(normalizePatchPath));
|
|
70
|
+
const unknown = touched.paths.filter((p) => !declared.has(p));
|
|
71
|
+
if (unknown.length)
|
|
72
|
+
throw new Error(`apply_patch: patch touches undeclared file(s): ${unknown.join(', ')}`);
|
|
73
|
+
const absPaths = touched.paths.map((rel) => resolvePath(ctx, rel));
|
|
74
|
+
for (const abs of absPaths)
|
|
75
|
+
enforceMutationWithinCwd('apply_patch', abs, ctx);
|
|
76
|
+
const verdicts = absPaths.map((p) => ({ p, v: checkPathSafety(p) }));
|
|
77
|
+
const forbidden = verdicts.filter(({ v }) => v.tier === 'forbidden');
|
|
78
|
+
if (forbidden.length)
|
|
79
|
+
throw new Error(`apply_patch: ${forbidden[0].v.reason} (${forbidden[0].p})`);
|
|
80
|
+
const cautious = verdicts.filter(({ v }) => v.tier === 'cautious');
|
|
81
|
+
if (cautious.length && !ctx.noConfirm) {
|
|
82
|
+
if (ctx.confirm) {
|
|
83
|
+
const preview = patchText.length > 4000 ? patchText.slice(0, 4000) + '\n[truncated]' : patchText;
|
|
84
|
+
const ok = await ctx.confirm(`Apply patch touching ${touched.paths.length} file(s)?\n- ${touched.paths.join('\n- ')}\n\nProceed? (y/N) `, { tool: 'apply_patch', args: { files: touched.paths, strip }, diff: preview });
|
|
85
|
+
if (!ok)
|
|
86
|
+
throw new Error('apply_patch: cancelled by user');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error('apply_patch: blocked (cautious paths) without --no-confirm/--yolo');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const maxToolBytes = ctx.maxExecBytes ?? 16384;
|
|
93
|
+
const stripArg = `-p${strip}`;
|
|
94
|
+
if (ctx.dryRun) {
|
|
95
|
+
const haveGit = !spawn('git', ['--version'], { stdio: 'ignore' }).pid ? false : true;
|
|
96
|
+
if (haveGit) {
|
|
97
|
+
const chk = await runCommandWithStdin('git', ['apply', stripArg, '--check', '--whitespace=nowarn'], patchText, ctx.cwd, maxToolBytes);
|
|
98
|
+
if (chk.rc !== 0)
|
|
99
|
+
throw new Error(`apply_patch: git apply --check failed:\n${chk.err || chk.out}`);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const chk = await runCommandWithStdin('patch', [stripArg, '--dry-run', '--batch'], patchText, ctx.cwd, maxToolBytes);
|
|
103
|
+
if (chk.rc !== 0)
|
|
104
|
+
throw new Error(`apply_patch: patch --dry-run failed:\n${chk.err || chk.out}`);
|
|
105
|
+
}
|
|
106
|
+
const redactedPaths = touched.paths.map((rel) => redactPath(resolvePath(ctx, rel), path.resolve(ctx.cwd)));
|
|
107
|
+
return `dry-run: patch would apply cleanly (${touched.paths.length} files): ${redactedPaths.join(', ')}`;
|
|
108
|
+
}
|
|
109
|
+
const beforeMap = new Map();
|
|
110
|
+
for (const abs of absPaths) {
|
|
111
|
+
if (ctx.mode === 'sys' && ctx.vault)
|
|
112
|
+
await snapshotBeforeEdit(ctx.vault, abs).catch(() => { });
|
|
113
|
+
const before = await fs.readFile(abs).catch(() => Buffer.from(''));
|
|
114
|
+
beforeMap.set(abs, before);
|
|
115
|
+
await backupFile(abs, ctx);
|
|
116
|
+
}
|
|
117
|
+
const gitProbe = await runCommandWithStdin('git', ['--version'], '', ctx.cwd, maxToolBytes).catch(() => ({ rc: 1, out: '', err: '' }));
|
|
118
|
+
const haveGit = gitProbe.rc === 0;
|
|
119
|
+
if (haveGit) {
|
|
120
|
+
const chk = await runCommandWithStdin('git', ['apply', stripArg, '--check', '--whitespace=nowarn'], patchText, ctx.cwd, maxToolBytes);
|
|
121
|
+
if (chk.rc !== 0)
|
|
122
|
+
throw new Error(`apply_patch: git apply --check failed:\n${chk.err || chk.out}`);
|
|
123
|
+
const app = await runCommandWithStdin('git', ['apply', stripArg, '--whitespace=nowarn'], patchText, ctx.cwd, maxToolBytes);
|
|
124
|
+
if (app.rc !== 0)
|
|
125
|
+
throw new Error(`apply_patch: git apply failed:\n${app.err || app.out}`);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const chk = await runCommandWithStdin('patch', [stripArg, '--dry-run', '--batch'], patchText, ctx.cwd, maxToolBytes);
|
|
129
|
+
if (chk.rc !== 0)
|
|
130
|
+
throw new Error(`apply_patch: patch --dry-run failed:\n${chk.err || chk.out}`);
|
|
131
|
+
const app = await runCommandWithStdin('patch', [stripArg, '--batch'], patchText, ctx.cwd, maxToolBytes);
|
|
132
|
+
if (app.rc !== 0)
|
|
133
|
+
throw new Error(`apply_patch: patch failed:\n${app.err || app.out}`);
|
|
134
|
+
}
|
|
135
|
+
let replayNotes = '';
|
|
136
|
+
let cwdWarnings = '';
|
|
137
|
+
for (const abs of absPaths) {
|
|
138
|
+
const after = await fs.readFile(abs).catch(() => Buffer.from(''));
|
|
139
|
+
ctx.onMutation?.(abs);
|
|
140
|
+
replayNotes += await checkpointReplay(ctx, {
|
|
141
|
+
op: 'apply_patch',
|
|
142
|
+
filePath: abs,
|
|
143
|
+
before: beforeMap.get(abs) ?? Buffer.from(''),
|
|
144
|
+
after,
|
|
145
|
+
});
|
|
146
|
+
cwdWarnings += checkCwdWarning('apply_patch', abs, ctx);
|
|
147
|
+
}
|
|
148
|
+
const redactedPaths = touched.paths.map((rel) => redactPath(resolvePath(ctx, rel), path.resolve(ctx.cwd)));
|
|
149
|
+
let patchReadback = '';
|
|
150
|
+
for (const abs of absPaths.slice(0, 2)) {
|
|
151
|
+
try {
|
|
152
|
+
const content = await fs.readFile(abs, 'utf8');
|
|
153
|
+
const totalLines = content.split(/\r?\n/).length;
|
|
154
|
+
const rp = redactPath(abs, path.resolve(ctx.cwd));
|
|
155
|
+
patchReadback += `\n--- ${rp} (${totalLines} lines) first 20 lines ---\n`;
|
|
156
|
+
patchReadback += content
|
|
157
|
+
.split(/\r?\n/)
|
|
158
|
+
.slice(0, 20)
|
|
159
|
+
.map((l, i) => `${i + 1}: ${l}`)
|
|
160
|
+
.join('\n');
|
|
161
|
+
}
|
|
162
|
+
catch { }
|
|
163
|
+
}
|
|
164
|
+
if (absPaths.length > 2)
|
|
165
|
+
patchReadback += `\n...(${absPaths.length - 2} more files)`;
|
|
166
|
+
return `applied patch (${touched.paths.length} files): ${redactedPaths.join(', ')}${replayNotes}${cwdWarnings}${patchReadback}`;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=patch-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-apply.js","sourceRoot":"","sources":["../../src/tools/patch-apply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyBvC,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,OAAiB,EACjB,SAAiB,EACjB,GAAW,EACX,WAAmB;IAEnB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,MAAM,UAAU,GAAG,CAAC,MAAgB,EAAE,GAAW,EAAE,IAAmB,EAAE,EAAE;YACxE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YACrB,IAAI,IAAI,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC,CAAC;;gBAC5B,OAAO,IAAI,CAAC,CAAC;YAElB,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;YAC5D,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;YACzC,IAAI,SAAS,IAAI,CAAC;gBAAE,OAAO;YAC3B,MAAM,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAI,KAAK,KAAK;gBAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;;gBAC1C,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAClC,CAAC,CAAC;QAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAE7E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAEpE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAEzD,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAsB,EAAE,IAAS;IACpE,MAAM,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC;IAC7B,MAAM,SAAS,GACb,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,SAAS,CAAC;IAElB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhG,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAEnE,MAAM,OAAO,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;QACvB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM;QAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1E,KAAK,MAAM,GAAG,IAAI,QAAQ;QAAE,wBAAwB,CAAC,aAAa,EAAE,GAAG,EAAE,GAAU,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,MAAM;QAClB,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE/E,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,OAAO,GACX,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAC1B,wBAAwB,OAAO,CAAC,KAAK,CAAC,MAAM,gBAAgB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAC3G,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAC9E,CAAC;YACF,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;IAC/C,MAAM,QAAQ,GAAG,KAAK,KAAK,EAAE,CAAC;IAE9B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,KAAK,EACL,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,EACrD,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;YACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,OAAO,EACP,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAClC,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;YACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,UAAU,CAAC,WAAW,CAAC,GAAU,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;QACF,OAAO,uCAAuC,OAAO,CAAC,KAAK,CAAC,MAAM,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3G,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK;YACjC,MAAM,kBAAkB,CAAC,GAAG,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,UAAU,CAAC,GAAG,EAAE,GAAU,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,CAC/F,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACpC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAElC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,KAAK,EACL,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,EACrD,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,KAAK,EACL,CAAC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,CAAC,EAC1C,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,OAAO,EACP,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAClC,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,OAAO,EACP,CAAC,QAAQ,EAAE,SAAS,CAAC,EACrB,SAAS,EACT,GAAG,CAAC,GAAG,EACP,YAAY,CACb,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;QACtB,WAAW,IAAI,MAAM,gBAAgB,CAAC,GAAU,EAAE;YAChD,EAAE,EAAE,aAAa;YACjB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,KAAK;SACN,CAAC,CAAC;QACH,WAAW,IAAI,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,GAAU,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,UAAU,CAAC,WAAW,CAAC,GAAU,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;IACF,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACjD,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,aAAa,IAAI,SAAS,EAAE,KAAK,UAAU,8BAA8B,CAAC;YAC1E,aAAa,IAAI,OAAO;iBACrB,KAAK,CAAC,OAAO,CAAC;iBACd,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,aAAa,IAAI,SAAS,QAAQ,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC;IAErF,OAAO,kBAAkB,OAAO,CAAC,KAAK,CAAC,MAAM,YAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC;AAClI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/tools/path-safety.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,GAAW;IACrD,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAgB,EAAE,CAAM;IAClD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,iBAAiB,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,YAAoB,EAAE,GAAgB;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,qBAAqB,YAAY,uCAAuC,MAAM,oHAAoH,CAAC;IACnN,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/tools/path-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort replay checkpoint with optional Lens-generated diff note.
|
|
3
|
+
* Returns empty string on success, or a short replay_skipped suffix on failure.
|
|
4
|
+
*/
|
|
5
|
+
export async function checkpointReplay(ctx, payload) {
|
|
6
|
+
if (!ctx.replay)
|
|
7
|
+
return '';
|
|
8
|
+
let note;
|
|
9
|
+
if (ctx.lens && payload.before && payload.after) {
|
|
10
|
+
try {
|
|
11
|
+
note = await ctx.lens.summarizeDiffToText(payload.before.toString('utf8'), payload.after.toString('utf8'), payload.filePath);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
// ignore and fallback to raw checkpoint
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
await ctx.replay.checkpoint({ ...payload, note });
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
return ` replay_skipped: ${e?.message ?? String(e)}`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=replay-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-utils.js","sourceRoot":"","sources":["../../src/tools/replay-utils.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4B,EAC5B,OAAiD;IAEjD,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAI,IAAwB,CAAC;IAC7B,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC9B,OAAO,CAAC,QAAQ,CACjB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,oBAAoB,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import { BASH_PATH } from '../utils.js';
|
|
4
|
+
/** Check if ripgrep is available either at /usr/bin/rg or in PATH. */
|
|
5
|
+
export async function hasRg() {
|
|
6
|
+
const isWin = process.platform === 'win32';
|
|
7
|
+
if (!isWin) {
|
|
8
|
+
try {
|
|
9
|
+
await fs.access('/usr/bin/rg');
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
/* skip */
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return await new Promise((resolve) => {
|
|
17
|
+
const selector = isWin ? 'where' : 'command -v';
|
|
18
|
+
const sub = isWin ? ['rg'] : ['-c', `${selector} rg >/dev/null 2>&1`];
|
|
19
|
+
const cmd = isWin ? selector : BASH_PATH;
|
|
20
|
+
const c = spawn(cmd, sub, { stdio: 'ignore' });
|
|
21
|
+
c.on('error', () => resolve(false));
|
|
22
|
+
c.on('close', (code) => resolve(code === 0));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/** Sørensen-Dice coefficient on character bigrams. Returns 0–1. */
|
|
26
|
+
export function bigramSimilarity(a, b) {
|
|
27
|
+
if (a.length < 2 && b.length < 2)
|
|
28
|
+
return a === b ? 1 : 0;
|
|
29
|
+
const bigrams = (s) => {
|
|
30
|
+
const m = new Map();
|
|
31
|
+
for (let i = 0; i < s.length - 1; i++) {
|
|
32
|
+
const bi = s.slice(i, i + 2);
|
|
33
|
+
m.set(bi, (m.get(bi) ?? 0) + 1);
|
|
34
|
+
}
|
|
35
|
+
return m;
|
|
36
|
+
};
|
|
37
|
+
const aB = bigrams(a);
|
|
38
|
+
const bB = bigrams(b);
|
|
39
|
+
let overlap = 0;
|
|
40
|
+
for (const [k, v] of aB) {
|
|
41
|
+
overlap += Math.min(v, bB.get(k) ?? 0);
|
|
42
|
+
}
|
|
43
|
+
const total = a.length - 1 + (b.length - 1);
|
|
44
|
+
return total > 0 ? (2 * overlap) / total : 0;
|
|
45
|
+
}
|
|
46
|
+
/** Very small glob matcher supporting exact and '*.ext'. */
|
|
47
|
+
export function globishMatch(name, glob) {
|
|
48
|
+
if (glob === name)
|
|
49
|
+
return true;
|
|
50
|
+
const m = /^\*\.(.+)$/.exec(glob);
|
|
51
|
+
if (m)
|
|
52
|
+
return name.endsWith('.' + m[1]);
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=search-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-utils.js","sourceRoot":"","sources":["../../src/tools/search-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
/** Patterns that indicate system-modifying commands worth auto-noting. */
|
|
3
|
+
const SYS_CHANGE_PATTERNS = [
|
|
4
|
+
/\b(apt|apt-get|dnf|yum|pacman|pip|npm)\s+(install|remove|purge|upgrade|update)\b/i,
|
|
5
|
+
/\bsystemctl\s+(start|stop|restart|enable|disable)\b/i,
|
|
6
|
+
/\bufw\s+(allow|deny|delete|enable|disable)\b/i,
|
|
7
|
+
/\biptables\s+(-A|-I|-D)\b/i,
|
|
8
|
+
/\buseradd\b/i,
|
|
9
|
+
/\buserdel\b/i,
|
|
10
|
+
/\bcrontab\b/i,
|
|
11
|
+
];
|
|
12
|
+
/** Auto-note significant system changes to Vault (sys mode only). */
|
|
13
|
+
export async function autoNoteSysChange(vault, command, output) {
|
|
14
|
+
const isSignificant = SYS_CHANGE_PATTERNS.some((p) => p.test(command));
|
|
15
|
+
if (!isSignificant)
|
|
16
|
+
return;
|
|
17
|
+
const summary = output.length > 200 ? output.slice(0, 197) + '...' : output;
|
|
18
|
+
const value = `Command: ${command}\nOutput: ${summary}`;
|
|
19
|
+
await vault.note(`sys:${command.slice(0, 80)}`, value);
|
|
20
|
+
}
|
|
21
|
+
/** Snapshot a file's contents to Vault before editing (for /etc/ config tracking). */
|
|
22
|
+
export async function snapshotBeforeEdit(vault, filePath) {
|
|
23
|
+
if (!filePath.startsWith('/etc/'))
|
|
24
|
+
return;
|
|
25
|
+
try {
|
|
26
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
27
|
+
const snippet = content.length > 500 ? content.slice(0, 497) + '...' : content;
|
|
28
|
+
await vault.note(`sys:pre-edit:${filePath}`, `Snapshot before edit:\n${snippet}`);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// File doesn't exist yet or not readable — skip
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=sys-notes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sys-notes.js","sourceRoot":"","sources":["../../src/tools/sys-notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIlC,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG;IAC1B,mFAAmF;IACnF,sDAAsD;IACtD,+CAA+C;IAC/C,4BAA4B;IAC5B,cAAc;IACd,cAAc;IACd,cAAc;CACf,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAiB,EACjB,OAAe,EACf,MAAc;IAEd,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,KAAK,GAAG,YAAY,OAAO,aAAa,OAAO,EAAE,CAAC;IACxD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAiB,EAAE,QAAgB;IAC1E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/E,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,EAAE,0BAA0B,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure text-processing helpers used by tool implementations.
|
|
3
|
+
* Extracted from tools.ts to reduce file size and improve reuse.
|
|
4
|
+
*/
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
/** Guess MIME type from magic bytes or file extension. */
|
|
7
|
+
export function guessMimeType(filePath, buf) {
|
|
8
|
+
if (buf.length >= 4) {
|
|
9
|
+
if (buf[0] === 0x89 && buf[1] === 0x50 && buf[2] === 0x4e && buf[3] === 0x47)
|
|
10
|
+
return 'image/png';
|
|
11
|
+
if (buf[0] === 0xff && buf[1] === 0xd8 && buf[2] === 0xff)
|
|
12
|
+
return 'image/jpeg';
|
|
13
|
+
if (buf[0] === 0x47 && buf[1] === 0x49 && buf[2] === 0x46)
|
|
14
|
+
return 'image/gif';
|
|
15
|
+
if (buf[0] === 0x52 &&
|
|
16
|
+
buf[1] === 0x49 &&
|
|
17
|
+
buf[2] === 0x46 &&
|
|
18
|
+
buf[3] === 0x46 &&
|
|
19
|
+
buf.length >= 12 &&
|
|
20
|
+
buf[8] === 0x57 &&
|
|
21
|
+
buf[9] === 0x45 &&
|
|
22
|
+
buf[10] === 0x42 &&
|
|
23
|
+
buf[11] === 0x50)
|
|
24
|
+
return 'image/webp';
|
|
25
|
+
if (buf[0] === 0x25 && buf[1] === 0x50 && buf[2] === 0x44 && buf[3] === 0x46)
|
|
26
|
+
return 'application/pdf';
|
|
27
|
+
if (buf[0] === 0x50 && buf[1] === 0x4b && buf[2] === 0x03 && buf[3] === 0x04)
|
|
28
|
+
return 'application/zip';
|
|
29
|
+
if (buf[0] === 0x7f && buf[1] === 0x45 && buf[2] === 0x4c && buf[3] === 0x46)
|
|
30
|
+
return 'application/x-elf';
|
|
31
|
+
if (buf[0] === 0x1f && buf[1] === 0x8b)
|
|
32
|
+
return 'application/gzip';
|
|
33
|
+
}
|
|
34
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
35
|
+
const extMap = {
|
|
36
|
+
'.png': 'image/png',
|
|
37
|
+
'.jpg': 'image/jpeg',
|
|
38
|
+
'.jpeg': 'image/jpeg',
|
|
39
|
+
'.gif': 'image/gif',
|
|
40
|
+
'.webp': 'image/webp',
|
|
41
|
+
'.svg': 'image/svg+xml',
|
|
42
|
+
'.pdf': 'application/pdf',
|
|
43
|
+
'.zip': 'application/zip',
|
|
44
|
+
'.gz': 'application/gzip',
|
|
45
|
+
'.tar': 'application/x-tar',
|
|
46
|
+
'.wasm': 'application/wasm',
|
|
47
|
+
'.so': 'application/x-sharedlib',
|
|
48
|
+
'.exe': 'application/x-executable',
|
|
49
|
+
'.o': 'application/x-object',
|
|
50
|
+
};
|
|
51
|
+
return extMap[ext] ?? 'application/octet-stream';
|
|
52
|
+
}
|
|
53
|
+
/** Strip ANSI escape sequences from a string. */
|
|
54
|
+
export function stripAnsi(s) {
|
|
55
|
+
return s
|
|
56
|
+
.replace(/\u001b\[[0-9;]*[A-Za-z]/g, '')
|
|
57
|
+
.replace(/\u001b\][^\u0007]*\u0007/g, '')
|
|
58
|
+
.replace(/\u001b[()][AB012]/g, '')
|
|
59
|
+
.replace(/\u001b[=>Nc7-9]/g, '');
|
|
60
|
+
}
|
|
61
|
+
/** Collapse consecutive duplicate lines into a single line + count. */
|
|
62
|
+
export function dedupeRepeats(lines, maxLineLen = 400) {
|
|
63
|
+
const out = [];
|
|
64
|
+
let prev = null;
|
|
65
|
+
let count = 0;
|
|
66
|
+
const flush = () => {
|
|
67
|
+
if (prev == null)
|
|
68
|
+
return;
|
|
69
|
+
if (count <= 1)
|
|
70
|
+
out.push(prev);
|
|
71
|
+
else
|
|
72
|
+
out.push(prev, `[repeated ${count - 1} more times]`);
|
|
73
|
+
};
|
|
74
|
+
for (const raw of lines) {
|
|
75
|
+
const line = raw.length > maxLineLen ? raw.slice(0, maxLineLen) + '…' : raw;
|
|
76
|
+
if (prev === line) {
|
|
77
|
+
count++;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
flush();
|
|
81
|
+
prev = line;
|
|
82
|
+
count = 1;
|
|
83
|
+
}
|
|
84
|
+
flush();
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
/** Collapse long stack traces, keeping first frame + count. */
|
|
88
|
+
export function collapseStackTraces(lines) {
|
|
89
|
+
const out = [];
|
|
90
|
+
let inStack = false;
|
|
91
|
+
let stackCount = 0;
|
|
92
|
+
let firstFrame = '';
|
|
93
|
+
let lastError = '';
|
|
94
|
+
const isStackFrame = (l) => /^\s+at\s/.test(l);
|
|
95
|
+
const flush = () => {
|
|
96
|
+
if (!inStack)
|
|
97
|
+
return;
|
|
98
|
+
if (firstFrame)
|
|
99
|
+
out.push(firstFrame);
|
|
100
|
+
if (stackCount > 1)
|
|
101
|
+
out.push(` [${stackCount - 1} more frames]`);
|
|
102
|
+
if (lastError)
|
|
103
|
+
out.push(lastError);
|
|
104
|
+
inStack = false;
|
|
105
|
+
stackCount = 0;
|
|
106
|
+
firstFrame = '';
|
|
107
|
+
lastError = '';
|
|
108
|
+
};
|
|
109
|
+
for (const line of lines) {
|
|
110
|
+
if (isStackFrame(line)) {
|
|
111
|
+
if (!inStack) {
|
|
112
|
+
inStack = true;
|
|
113
|
+
stackCount = 1;
|
|
114
|
+
firstFrame = line;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
stackCount++;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (inStack) {
|
|
122
|
+
if (/^\w*(Error|Exception|Caused by)/.test(line.trim())) {
|
|
123
|
+
lastError = line;
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
flush();
|
|
127
|
+
}
|
|
128
|
+
out.push(line);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
flush();
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
/** Truncate a string to maxBytes (UTF-8), appending a truncation notice. */
|
|
135
|
+
export function truncateBytes(s, maxBytes, totalBytesHint) {
|
|
136
|
+
const b = Buffer.from(s, 'utf8');
|
|
137
|
+
const total = typeof totalBytesHint === 'number' && Number.isFinite(totalBytesHint)
|
|
138
|
+
? totalBytesHint
|
|
139
|
+
: b.length;
|
|
140
|
+
if (b.length <= maxBytes)
|
|
141
|
+
return { text: s, truncated: false };
|
|
142
|
+
const cut = b.subarray(0, maxBytes);
|
|
143
|
+
return { text: cut.toString('utf8') + `\n[truncated, ${total} bytes total]`, truncated: true };
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Build a read-back snippet showing the region around a mutation.
|
|
147
|
+
* Returns numbered lines ±contextLines around the changed area, capped to avoid bloat.
|
|
148
|
+
*/
|
|
149
|
+
export function mutationReadback(fileContent, changedStartLine, changedEndLine, contextLines = 5, maxLines = 40) {
|
|
150
|
+
const lines = fileContent.split(/\r?\n/);
|
|
151
|
+
const totalLines = lines.length;
|
|
152
|
+
const from = Math.max(0, changedStartLine - contextLines);
|
|
153
|
+
const to = Math.min(totalLines, changedEndLine + contextLines);
|
|
154
|
+
let slice = lines.slice(from, to);
|
|
155
|
+
let truncated = false;
|
|
156
|
+
if (slice.length > maxLines) {
|
|
157
|
+
slice = slice.slice(0, maxLines);
|
|
158
|
+
truncated = true;
|
|
159
|
+
}
|
|
160
|
+
const numbered = slice.map((l, i) => `${from + i + 1}: ${l}`).join('\n');
|
|
161
|
+
const header = `\n--- current state of lines ${from + 1}-${from + slice.length} (of ${totalLines}) ---\n`;
|
|
162
|
+
return header + numbered + (truncated ? '\n...(truncated)' : '');
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=text-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../src/tools/text-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,GAAW;IACzD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAC1E,OAAO,WAAW,CAAC;QACrB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QAC/E,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QAC9E,IACE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,MAAM,IAAI,EAAE;YAChB,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YACf,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI;YAChB,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI;YAEhB,OAAO,YAAY,CAAC;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAC1E,OAAO,iBAAiB,CAAC;QAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAC1E,OAAO,iBAAiB,CAAC;QAC3B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAC1E,OAAO,mBAAmB,CAAC;QAC7B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,kBAAkB,CAAC;IACpE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,MAAM,GAA2B;QACrC,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;QACzB,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,0BAA0B;QAClC,IAAI,EAAE,sBAAsB;KAC7B,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AACnD,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC;SACL,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;SACxC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,aAAa,CAAC,KAAe,EAAE,UAAU,GAAG,GAAG;IAC7D,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO;QACzB,IAAI,KAAK,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,EAAE,CAAC;YACR,SAAS;QACX,CAAC;QACD,KAAK,EAAE,CAAC;QACR,IAAI,GAAG,IAAI,CAAC;QACZ,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,UAAU;YAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,UAAU,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,GAAG,KAAK,CAAC;QAChB,UAAU,GAAG,CAAC,CAAC;QACf,UAAU,GAAG,EAAE,CAAC;QAChB,SAAS,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,UAAU,GAAG,CAAC,CAAC;gBACf,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACxD,SAAS,GAAG,IAAI,CAAC;oBACjB,SAAS;gBACX,CAAC;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAC3B,CAAS,EACT,QAAgB,EAChB,cAAuB;IAEvB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnE,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACf,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,iBAAiB,KAAK,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACjG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,gBAAwB,EACxB,cAAsB,EACtB,YAAY,GAAG,CAAC,EAChB,QAAQ,GAAG,EAAE;IAEb,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACjC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,gCAAgC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,QAAQ,UAAU,SAAS,CAAC;IAC1G,OAAO,MAAM,GAAG,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC"}
|
package/dist/tools/undo.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Backup system and undo functionality for file tools.
|
|
3
3
|
* Manages file backups with FIFO rotation and provides undo support.
|
|
4
4
|
*/
|
|
5
|
+
import crypto from 'node:crypto';
|
|
5
6
|
import fs from 'node:fs/promises';
|
|
6
7
|
import path from 'node:path';
|
|
7
|
-
import crypto from 'node:crypto';
|
|
8
8
|
import { stateDir } from '../utils.js';
|
|
9
9
|
import { resolvePath, redactPath } from './path-safety.js';
|
|
10
10
|
const DEFAULT_MAX_BACKUPS_PER_FILE = 5;
|
package/dist/tools/undo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/tools/undo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"undo.js","sourceRoot":"","sources":["../../src/tools/undo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export async function vaultNoteTool(ctx, args) {
|
|
2
|
+
const key = typeof args?.key === 'string' ? args.key.trim() : '';
|
|
3
|
+
const value = typeof args?.value === 'string' ? args.value : undefined;
|
|
4
|
+
if (!key)
|
|
5
|
+
throw new Error('vault_note: missing key');
|
|
6
|
+
if (value == null)
|
|
7
|
+
throw new Error('vault_note: missing value');
|
|
8
|
+
if (ctx.dryRun)
|
|
9
|
+
return `dry-run: would add vault note ${JSON.stringify(key)}`;
|
|
10
|
+
if (!ctx.vault) {
|
|
11
|
+
throw new Error('vault_note: vault disabled');
|
|
12
|
+
}
|
|
13
|
+
const id = await ctx.vault.note(key, String(value));
|
|
14
|
+
return `vault_note: saved ${id}`;
|
|
15
|
+
}
|
|
16
|
+
export async function vaultSearchTool(ctx, args) {
|
|
17
|
+
const query = typeof args?.query === 'string' ? args.query.trim() : '';
|
|
18
|
+
const limit = Number(args?.limit);
|
|
19
|
+
if (!query)
|
|
20
|
+
return 'vault_search: missing query';
|
|
21
|
+
const n = Number.isFinite(limit) && limit > 0 ? Math.min(50, Math.max(1, Math.floor(limit))) : 8;
|
|
22
|
+
if (!ctx.vault)
|
|
23
|
+
return 'vault disabled';
|
|
24
|
+
const results = await ctx.vault.search(query, n);
|
|
25
|
+
if (!results.length) {
|
|
26
|
+
return `vault_search: no results for ${JSON.stringify(query)}`;
|
|
27
|
+
}
|
|
28
|
+
const lines = results.map((r) => {
|
|
29
|
+
const title = r.kind === 'note' ? `note:${r.key}` : `tool:${r.tool || r.key || 'unknown'}`;
|
|
30
|
+
const body = r.value ?? r.snippet ?? r.content ?? '';
|
|
31
|
+
const short = body.replace(/\s+/g, ' ').slice(0, 160);
|
|
32
|
+
return `${r.updatedAt} ${title} ${JSON.stringify(short)}`;
|
|
33
|
+
});
|
|
34
|
+
return lines.join('\n');
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=vault-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-tools.js","sourceRoot":"","sources":["../../src/tools/vault-tools.ts"],"names":[],"mappings":"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"}
|