@sunilp-org/jam-cli 0.1.0 → 0.1.2
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 +431 -63
- package/dist/commands/ask.d.ts +4 -0
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +202 -10
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/commit.d.ts +12 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +135 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts +12 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +52 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/review.d.ts +25 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +117 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +199 -197
- package/dist/commands/run.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +39 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/index.js +63 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/base.d.ts +26 -0
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/embedded.d.ts +20 -0
- package/dist/providers/embedded.d.ts.map +1 -0
- package/dist/providers/embedded.js +302 -0
- package/dist/providers/embedded.js.map +1 -0
- package/dist/providers/factory.d.ts.map +1 -1
- package/dist/providers/factory.js +25 -1
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/groq.d.ts +16 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +23 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/ollama.d.ts +6 -1
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +77 -4
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts +18 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +229 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/tools/all-tools.d.ts +18 -0
- package/dist/tools/all-tools.d.ts.map +1 -0
- package/dist/tools/all-tools.js +95 -0
- package/dist/tools/all-tools.js.map +1 -0
- package/dist/tools/apply_patch.js +1 -1
- package/dist/tools/apply_patch.js.map +1 -1
- package/dist/tools/context-tools.d.ts +14 -0
- package/dist/tools/context-tools.d.ts.map +1 -0
- package/dist/tools/context-tools.js +63 -0
- package/dist/tools/context-tools.js.map +1 -0
- package/dist/tools/git_diff.js +1 -1
- package/dist/tools/git_diff.js.map +1 -1
- package/dist/tools/git_status.js +1 -1
- package/dist/tools/git_status.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +2 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run_command.d.ts +8 -3
- package/dist/tools/run_command.d.ts.map +1 -1
- package/dist/tools/run_command.js +90 -3
- package/dist/tools/run_command.js.map +1 -1
- package/dist/ui/chat.d.ts.map +1 -1
- package/dist/ui/chat.js +173 -1
- package/dist/ui/chat.js.map +1 -1
- package/dist/ui/logo.d.ts.map +1 -1
- package/dist/ui/logo.js +5 -1
- package/dist/ui/logo.js.map +1 -1
- package/dist/utils/agent.d.ts +130 -0
- package/dist/utils/agent.d.ts.map +1 -0
- package/dist/utils/agent.js +449 -0
- package/dist/utils/agent.js.map +1 -0
- package/dist/utils/cache.d.ts +30 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +62 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/context.d.ts +38 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +383 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/critic.d.ts +31 -0
- package/dist/utils/critic.d.ts.map +1 -0
- package/dist/utils/critic.js +126 -0
- package/dist/utils/critic.js.map +1 -0
- package/dist/utils/index-builder.d.ts +53 -0
- package/dist/utils/index-builder.d.ts.map +1 -0
- package/dist/utils/index-builder.js +241 -0
- package/dist/utils/index-builder.js.map +1 -0
- package/dist/utils/memory.d.ts +104 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +215 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/past-sessions.d.ts +31 -0
- package/dist/utils/past-sessions.d.ts.map +1 -0
- package/dist/utils/past-sessions.js +126 -0
- package/dist/utils/past-sessions.js.map +1 -0
- package/dist/utils/tokens.d.ts +53 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +138 -0
- package/dist/utils/tokens.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
|
+
import { loadConfig, getActiveProfile } from '../config/loader.js';
|
|
4
|
+
import { createProvider } from '../providers/factory.js';
|
|
5
|
+
import { withRetry, collectStream } from '../utils/stream.js';
|
|
6
|
+
import { streamToStdout, printJsonResult, printError } from '../ui/renderer.js';
|
|
7
|
+
import { JamError } from '../utils/errors.js';
|
|
8
|
+
import { getWorkspaceRoot } from '../utils/workspace.js';
|
|
9
|
+
const execFileAsync = promisify(execFile);
|
|
10
|
+
// ── Git helpers ────────────────────────────────────────────────────────────────
|
|
11
|
+
/**
|
|
12
|
+
* Returns the diff between the current branch and the given base ref.
|
|
13
|
+
* Uses `git diff <base>...HEAD` (three-dot) to show only changes introduced
|
|
14
|
+
* on the current branch since it diverged from base.
|
|
15
|
+
*/
|
|
16
|
+
export async function getBranchDiff(cwd, base) {
|
|
17
|
+
const mergeBase = await getMergeBase(cwd, base);
|
|
18
|
+
try {
|
|
19
|
+
const { stdout } = await execFileAsync('git', ['diff', mergeBase, 'HEAD'], { cwd, maxBuffer: 4 * 1024 * 1024 });
|
|
20
|
+
return stdout.trim();
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
throw new JamError(`Failed to compute diff against "${base}". Is this a git repository with commits?`, 'TOOL_EXEC_ERROR', { cause: err });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export async function getMergeBase(cwd, base) {
|
|
27
|
+
try {
|
|
28
|
+
const { stdout } = await execFileAsync('git', ['merge-base', base, 'HEAD'], { cwd });
|
|
29
|
+
return stdout.trim();
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
throw new JamError(`Could not find merge-base with "${base}". Does the base branch exist?`, 'TOOL_EXEC_ERROR', { cause: err });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns the diff for a specific PR number using the GitHub CLI (`gh`).
|
|
37
|
+
* Requires `gh` to be installed and authenticated.
|
|
38
|
+
*/
|
|
39
|
+
export async function getPrDiff(cwd, pr) {
|
|
40
|
+
try {
|
|
41
|
+
const { stdout } = await execFileAsync('gh', ['pr', 'diff', String(pr)], { cwd, maxBuffer: 4 * 1024 * 1024 });
|
|
42
|
+
return stdout.trim();
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw new JamError(`Failed to fetch diff for PR #${pr}. Make sure the GitHub CLI (gh) is installed and authenticated.`, 'TOOL_EXEC_ERROR', { cause: err });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns the current branch name.
|
|
50
|
+
*/
|
|
51
|
+
export async function getCurrentBranch(cwd) {
|
|
52
|
+
try {
|
|
53
|
+
const { stdout } = await execFileAsync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { cwd });
|
|
54
|
+
return stdout.trim();
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
throw new JamError('Failed to determine the current branch.', 'TOOL_EXEC_ERROR', { cause: err });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// ── Prompt builder ─────────────────────────────────────────────────────────────
|
|
61
|
+
export function buildReviewPrompt(diff, context) {
|
|
62
|
+
return (`${context}\n\n` +
|
|
63
|
+
`Please provide a thorough code review covering:\n` +
|
|
64
|
+
`1. **Summary** — a concise overview of what changed\n` +
|
|
65
|
+
`2. **Potential Issues** — bugs, edge cases, security concerns, or performance problems\n` +
|
|
66
|
+
`3. **Suggestions** — improvements to readability, maintainability, or correctness\n\n` +
|
|
67
|
+
`\`\`\`diff\n${diff}\n\`\`\``);
|
|
68
|
+
}
|
|
69
|
+
// ── Main command ───────────────────────────────────────────────────────────────
|
|
70
|
+
export async function runReview(options = {}) {
|
|
71
|
+
try {
|
|
72
|
+
const workspaceRoot = await getWorkspaceRoot();
|
|
73
|
+
const base = options.base ?? 'main';
|
|
74
|
+
let diff;
|
|
75
|
+
let context;
|
|
76
|
+
if (options.pr !== undefined) {
|
|
77
|
+
diff = await getPrDiff(workspaceRoot, options.pr);
|
|
78
|
+
context = `Reviewing PR #${options.pr}.`;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const branch = await getCurrentBranch(workspaceRoot);
|
|
82
|
+
diff = await getBranchDiff(workspaceRoot, base);
|
|
83
|
+
context =
|
|
84
|
+
branch === base
|
|
85
|
+
? `Reviewing unstaged/uncommitted changes on "${base}".`
|
|
86
|
+
: `Reviewing changes on branch "${branch}" compared to "${base}".`;
|
|
87
|
+
}
|
|
88
|
+
if (!diff) {
|
|
89
|
+
process.stdout.write('No differences found. Nothing to review.\n');
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const config = await loadConfig(process.cwd(), options);
|
|
93
|
+
const profile = getActiveProfile(config);
|
|
94
|
+
const adapter = await createProvider(profile);
|
|
95
|
+
const prompt = buildReviewPrompt(diff, context);
|
|
96
|
+
const request = {
|
|
97
|
+
messages: [{ role: 'user', content: prompt }],
|
|
98
|
+
model: profile.model,
|
|
99
|
+
temperature: profile.temperature,
|
|
100
|
+
maxTokens: profile.maxTokens,
|
|
101
|
+
systemPrompt: profile.systemPrompt,
|
|
102
|
+
};
|
|
103
|
+
if (options.json) {
|
|
104
|
+
const { text, usage } = await collectStream(withRetry(() => adapter.streamCompletion(request)));
|
|
105
|
+
printJsonResult({ response: text, usage, model: profile.model });
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
await streamToStdout(withRetry(() => adapter.streamCompletion(request)));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
const jamErr = JamError.fromUnknown(err);
|
|
113
|
+
await printError(jamErr.message);
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAQ1C,kFAAkF;AAElF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY;IAC3D,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAC3B,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CACpC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAChB,mCAAmC,IAAI,2CAA2C,EAClF,iBAAiB,EACjB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAY;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,EAC5B,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAChB,mCAAmC,IAAI,gCAAgC,EACvE,iBAAiB,EACjB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,EAAU;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,IAAI,EACJ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAC1B,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CACpC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAChB,gCAAgC,EAAE,iEAAiE,EACnG,iBAAiB,EACjB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CACpC,KAAK,EACL,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EACrC,EAAE,GAAG,EAAE,CACR,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,QAAQ,CAChB,yCAAyC,EACzC,iBAAiB,EACjB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,kFAAkF;AAElF,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAe;IAC7D,OAAO,CACL,GAAG,OAAO,MAAM;QAChB,mDAAmD;QACnD,uDAAuD;QACvD,0FAA0F;QAC1F,uFAAuF;QACvF,eAAe,IAAI,UAAU,CAC9B,CAAC;AACJ,CAAC;AAED,kFAAkF;AAElF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAyB,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QAEpC,IAAI,IAAY,CAAC;QACjB,IAAI,OAAe,CAAC;QAEpB,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,GAAG,iBAAiB,OAAO,CAAC,EAAE,GAAG,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,GAAG,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO;gBACL,MAAM,KAAK,IAAI;oBACb,CAAC,CAAC,8CAA8C,IAAI,IAAI;oBACxD,CAAC,CAAC,gCAAgC,MAAM,kBAAkB,IAAI,IAAI,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACtD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CACzC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CACnD,CAAC;YACF,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { CliOverrides } from '../config/schema.js';
|
|
2
2
|
export interface RunOptions extends CliOverrides {
|
|
3
3
|
noColor?: boolean;
|
|
4
|
+
quiet?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export declare function runRun(instruction: string | undefined, options: RunOptions): Promise<void>;
|
|
6
7
|
//# sourceMappingURL=run.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAcD,wBAAsB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwPhG"}
|
package/dist/commands/run.js
CHANGED
|
@@ -1,107 +1,17 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline/promises';
|
|
2
2
|
import { loadConfig, getActiveProfile } from '../config/loader.js';
|
|
3
|
-
import {
|
|
3
|
+
import { createProvider } from '../providers/factory.js';
|
|
4
|
+
import { printError, printWarning, renderMarkdown } from '../ui/renderer.js';
|
|
4
5
|
import { JamError } from '../utils/errors.js';
|
|
5
6
|
import { getWorkspaceRoot } from '../utils/workspace.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type: 'object',
|
|
15
|
-
properties: {
|
|
16
|
-
path: { type: 'string', description: 'File path relative to workspace root' },
|
|
17
|
-
start_line: { type: 'number', description: 'Start line (optional)' },
|
|
18
|
-
end_line: { type: 'number', description: 'End line (optional)' },
|
|
19
|
-
},
|
|
20
|
-
required: ['path'],
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
type: 'function',
|
|
26
|
-
function: {
|
|
27
|
-
name: 'list_dir',
|
|
28
|
-
description: 'List files and directories in a path',
|
|
29
|
-
parameters: {
|
|
30
|
-
type: 'object',
|
|
31
|
-
properties: { path: { type: 'string', description: 'Directory path (default: ".")' } },
|
|
32
|
-
required: [],
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
type: 'function',
|
|
38
|
-
function: {
|
|
39
|
-
name: 'search_text',
|
|
40
|
-
description: 'Search for text in the codebase using ripgrep',
|
|
41
|
-
parameters: {
|
|
42
|
-
type: 'object',
|
|
43
|
-
properties: {
|
|
44
|
-
query: { type: 'string', description: 'Search query (regex supported)' },
|
|
45
|
-
glob: { type: 'string', description: 'File glob pattern (e.g. "*.ts")' },
|
|
46
|
-
max_results: { type: 'number', description: 'Max results (default 20)' },
|
|
47
|
-
},
|
|
48
|
-
required: ['query'],
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
type: 'function',
|
|
54
|
-
function: {
|
|
55
|
-
name: 'git_status',
|
|
56
|
-
description: 'Get current git status',
|
|
57
|
-
parameters: { type: 'object', properties: {}, required: [] },
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
type: 'function',
|
|
62
|
-
function: {
|
|
63
|
-
name: 'git_diff',
|
|
64
|
-
description: 'Get git diff',
|
|
65
|
-
parameters: {
|
|
66
|
-
type: 'object',
|
|
67
|
-
properties: {
|
|
68
|
-
staged: { type: 'boolean', description: 'Show staged changes' },
|
|
69
|
-
path: { type: 'string', description: 'Limit to a specific path' },
|
|
70
|
-
},
|
|
71
|
-
required: [],
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
type: 'function',
|
|
77
|
-
function: {
|
|
78
|
-
name: 'write_file',
|
|
79
|
-
description: 'Write content to a file (requires confirmation)',
|
|
80
|
-
parameters: {
|
|
81
|
-
type: 'object',
|
|
82
|
-
properties: {
|
|
83
|
-
path: { type: 'string', description: 'File path' },
|
|
84
|
-
content: { type: 'string', description: 'File content' },
|
|
85
|
-
mode: { type: 'string', description: '"overwrite" or "append" (default: overwrite)' },
|
|
86
|
-
},
|
|
87
|
-
required: ['path', 'content'],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: 'function',
|
|
93
|
-
function: {
|
|
94
|
-
name: 'apply_patch',
|
|
95
|
-
description: 'Apply a unified diff patch (requires confirmation)',
|
|
96
|
-
parameters: {
|
|
97
|
-
type: 'object',
|
|
98
|
-
properties: { patch: { type: 'string', description: 'Unified diff content' } },
|
|
99
|
-
required: ['patch'],
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
const READONLY_TOOLS = new Set(['read_file', 'list_dir', 'search_text', 'git_status', 'git_diff']);
|
|
7
|
+
import { ALL_TOOL_SCHEMAS, READONLY_TOOL_NAMES, executeTool } from '../tools/all-tools.js';
|
|
8
|
+
import { ToolCallTracker, loadProjectContext, buildSystemPrompt, enrichUserPrompt, generateSearchPlan, buildSynthesisReminder, formatToolCall, formatToolResult, formatSeparator, formatDuplicateSkip, formatHintInjection, formatUsage, formatPlanBlock, formatInternalStatus, } from '../utils/agent.js';
|
|
9
|
+
import { WorkingMemory } from '../utils/memory.js';
|
|
10
|
+
import { ToolResultCache } from '../utils/cache.js';
|
|
11
|
+
import { criticEvaluate, buildCriticCorrection } from '../utils/critic.js';
|
|
12
|
+
import { searchPastSessions, formatPastExchanges } from '../utils/past-sessions.js';
|
|
13
|
+
import { getOrBuildIndex, searchSymbols, formatSymbolResults } from '../utils/index-builder.js';
|
|
14
|
+
import { updateContextWithUsage } from '../utils/context.js';
|
|
105
15
|
async function confirmToolCall(toolName, args) {
|
|
106
16
|
process.stderr.write(`\n[Tool Request] ${toolName}\n`);
|
|
107
17
|
process.stderr.write(`Arguments: ${JSON.stringify(args, null, 2)}\n`);
|
|
@@ -110,127 +20,219 @@ async function confirmToolCall(toolName, args) {
|
|
|
110
20
|
rl.close();
|
|
111
21
|
return answer.toLowerCase() === 'y';
|
|
112
22
|
}
|
|
113
|
-
async function executeTool(toolName, args, workspaceRoot, policy) {
|
|
114
|
-
const isReadonly = READONLY_TOOLS.has(toolName);
|
|
115
|
-
if (!isReadonly) {
|
|
116
|
-
if (policy === 'never') {
|
|
117
|
-
throw new JamError(`Tool "${toolName}" is a write tool and policy is set to "never"`, 'TOOL_DENIED');
|
|
118
|
-
}
|
|
119
|
-
if (policy === 'ask_every_time') {
|
|
120
|
-
const allowed = await confirmToolCall(toolName, args);
|
|
121
|
-
if (!allowed) {
|
|
122
|
-
throw new JamError(`Tool "${toolName}" was denied by the user`, 'TOOL_DENIED');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
// Lazy import the tool implementation from the tools layer
|
|
127
|
-
const { createDefaultRegistry } = await import('../tools/registry.js');
|
|
128
|
-
const registry = createDefaultRegistry();
|
|
129
|
-
const result = await registry.get(toolName)?.execute(args, { workspaceRoot, cwd: process.cwd() });
|
|
130
|
-
if (!result) {
|
|
131
|
-
throw new JamError(`Unknown tool: ${toolName}`, 'TOOL_NOT_FOUND');
|
|
132
|
-
}
|
|
133
|
-
return result.error ? `Error: ${result.error}` : result.output;
|
|
134
|
-
}
|
|
135
23
|
export async function runRun(instruction, options) {
|
|
136
24
|
if (!instruction) {
|
|
137
25
|
await printError('Provide an instruction. Usage: jam run "<instruction>"');
|
|
138
26
|
process.exit(1);
|
|
139
27
|
}
|
|
140
28
|
try {
|
|
29
|
+
const noColor = options.noColor ?? false;
|
|
30
|
+
const stderrLog = options.quiet ? (_msg) => { } : (msg) => process.stderr.write(msg);
|
|
141
31
|
const workspaceRoot = await getWorkspaceRoot();
|
|
142
32
|
const config = await loadConfig(process.cwd(), options);
|
|
143
33
|
const profile = getActiveProfile(config);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
content: instruction,
|
|
150
|
-
},
|
|
151
|
-
];
|
|
34
|
+
const adapter = await createProvider(profile);
|
|
35
|
+
stderrLog(`Starting task: ${instruction}\n`);
|
|
36
|
+
stderrLog(`Provider: ${profile.provider}, Model: ${profile.model ?? 'default'}\n`);
|
|
37
|
+
// Load project context
|
|
38
|
+
const { jamContext, workspaceCtx } = await loadProjectContext(workspaceRoot);
|
|
152
39
|
const systemPrompt = profile.systemPrompt ??
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
//
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
40
|
+
buildSystemPrompt(jamContext, workspaceCtx, { mode: 'readwrite', workspaceRoot });
|
|
41
|
+
const memory = new WorkingMemory(adapter, profile.model, systemPrompt);
|
|
42
|
+
const cache = new ToolResultCache();
|
|
43
|
+
// ── Symbol index + past sessions ──────────────────────────────────────
|
|
44
|
+
let symbolHint = '';
|
|
45
|
+
try {
|
|
46
|
+
const index = await getOrBuildIndex(workspaceRoot);
|
|
47
|
+
const symbols = searchSymbols(index, instruction, 10);
|
|
48
|
+
symbolHint = formatSymbolResults(symbols);
|
|
49
|
+
}
|
|
50
|
+
catch { /* non-fatal */ }
|
|
51
|
+
let pastContext = '';
|
|
52
|
+
try {
|
|
53
|
+
const pastExchanges = await searchPastSessions(instruction, workspaceRoot, 2);
|
|
54
|
+
pastContext = formatPastExchanges(pastExchanges);
|
|
55
|
+
}
|
|
56
|
+
catch { /* non-fatal */ }
|
|
57
|
+
// ── Planning phase ────────────────────────────────────────────────────
|
|
58
|
+
stderrLog(formatSeparator('Planning', noColor));
|
|
59
|
+
const projectCtxForPlan = [jamContext ?? workspaceCtx, symbolHint, pastContext].filter(Boolean).join('\n\n');
|
|
60
|
+
const searchPlan = await generateSearchPlan(adapter, instruction, projectCtxForPlan, {
|
|
61
|
+
model: profile.model,
|
|
62
|
+
temperature: profile.temperature,
|
|
63
|
+
maxTokens: profile.maxTokens,
|
|
64
|
+
});
|
|
65
|
+
if (searchPlan) {
|
|
66
|
+
stderrLog(formatPlanBlock(searchPlan, noColor) + '\n');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
stderrLog(formatInternalStatus('planning skipped — using generic strategy', noColor) + '\n');
|
|
70
|
+
}
|
|
71
|
+
// Enrich the instruction with the search plan
|
|
72
|
+
const enrichedInstruction = enrichUserPrompt(instruction, searchPlan);
|
|
73
|
+
let messages = [
|
|
74
|
+
{ role: 'user', content: enrichedInstruction },
|
|
75
|
+
];
|
|
76
|
+
const tracker = new ToolCallTracker();
|
|
77
|
+
if (!adapter.chatWithTools) {
|
|
78
|
+
await printError('Provider does not support tool calling. Use a provider/model that supports tools.');
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
/** Render final markdown result + usage stats. */
|
|
82
|
+
const renderResult = async (text, usage) => {
|
|
83
|
+
stderrLog(formatSeparator('Result', noColor));
|
|
84
|
+
if (text) {
|
|
85
|
+
try {
|
|
86
|
+
const rendered = await renderMarkdown(text);
|
|
87
|
+
process.stdout.write(rendered);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
process.stdout.write(text + '\n');
|
|
91
|
+
}
|
|
178
92
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
cause: err,
|
|
182
|
-
retryable: true,
|
|
183
|
-
});
|
|
93
|
+
if (usage) {
|
|
94
|
+
stderrLog(`\n${formatUsage(usage.promptTokens, usage.completionTokens, usage.totalTokens, noColor)}\n`);
|
|
184
95
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
96
|
+
const log = memory.getAccessLog();
|
|
97
|
+
updateContextWithUsage(workspaceRoot, log.readFiles, log.searchQueries).catch(() => { });
|
|
98
|
+
};
|
|
99
|
+
// Agentic loop
|
|
100
|
+
const MAX_ITERATIONS = 15;
|
|
101
|
+
let synthesisInjected = false;
|
|
102
|
+
stderrLog(formatSeparator('Working', noColor));
|
|
103
|
+
for (let iteration = 0; iteration < MAX_ITERATIONS; iteration++) {
|
|
104
|
+
// Context window management
|
|
105
|
+
if (memory.shouldCompact(messages)) {
|
|
106
|
+
stderrLog(formatInternalStatus('Compacting context…', noColor) + '\n');
|
|
107
|
+
messages = await memory.compact(messages);
|
|
188
108
|
}
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
content: assistantMsg.content ?? '',
|
|
109
|
+
const response = await adapter.chatWithTools(messages, ALL_TOOL_SCHEMAS, {
|
|
110
|
+
model: profile.model,
|
|
111
|
+
temperature: profile.temperature,
|
|
112
|
+
maxTokens: profile.maxTokens,
|
|
113
|
+
systemPrompt,
|
|
195
114
|
});
|
|
196
|
-
//
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
115
|
+
// No tool calls → model is done
|
|
116
|
+
if (!response.toolCalls || response.toolCalls.length === 0) {
|
|
117
|
+
const finalText = response.content ?? '';
|
|
118
|
+
// Synthesis grounding with critic
|
|
119
|
+
if (tracker.totalCalls > 0 && !synthesisInjected && iteration < MAX_ITERATIONS - 2) {
|
|
120
|
+
synthesisInjected = true;
|
|
121
|
+
if (finalText.trim().length > 0) {
|
|
122
|
+
stderrLog(formatInternalStatus('Evaluating answer quality…', noColor) + '\n');
|
|
123
|
+
const verdict = await criticEvaluate(adapter, instruction, finalText, { model: profile.model });
|
|
124
|
+
if (verdict.pass) {
|
|
125
|
+
await renderResult(finalText, response.usage);
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
stderrLog(formatInternalStatus(`Critic: ${verdict.reason}`, noColor) + '\n');
|
|
129
|
+
messages.push({ role: 'assistant', content: finalText });
|
|
130
|
+
messages.push({ role: 'user', content: buildCriticCorrection(verdict, instruction) });
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
stderrLog(formatInternalStatus('Grounding answer to your question…', noColor) + '\n');
|
|
134
|
+
messages.push({ role: 'assistant', content: finalText });
|
|
135
|
+
messages.push({ role: 'user', content: buildSynthesisReminder(instruction) });
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
// Final critic check
|
|
139
|
+
if (tracker.totalCalls > 0 && finalText.trim().length > 30 && iteration < MAX_ITERATIONS - 2) {
|
|
140
|
+
const verdict = await criticEvaluate(adapter, instruction, finalText, { model: profile.model });
|
|
141
|
+
if (!verdict.pass) {
|
|
142
|
+
stderrLog(formatInternalStatus(`Critic: ${verdict.reason}`, noColor) + '\n');
|
|
143
|
+
messages.push({ role: 'assistant', content: finalText });
|
|
144
|
+
messages.push({ role: 'user', content: buildCriticCorrection(verdict, instruction) });
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
await renderResult(finalText, response.usage);
|
|
204
149
|
break;
|
|
205
150
|
}
|
|
206
|
-
//
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
151
|
+
// Add assistant message to conversation
|
|
152
|
+
messages.push({ role: 'assistant', content: response.content ?? '' });
|
|
153
|
+
// Print any intermediate text
|
|
154
|
+
if (response.content) {
|
|
155
|
+
stderrLog(`\n${response.content}\n`);
|
|
156
|
+
}
|
|
157
|
+
// Execute tool calls
|
|
158
|
+
for (const tc of response.toolCalls) {
|
|
159
|
+
// Duplicate detection
|
|
160
|
+
if (tracker.isDuplicate(tc.name, tc.arguments)) {
|
|
161
|
+
stderrLog(formatDuplicateSkip(tc.name, noColor) + '\n');
|
|
162
|
+
messages.push({
|
|
163
|
+
role: 'user',
|
|
164
|
+
content: `[Tool result: ${tc.name}]\nYou already made this exact call. Try a DIFFERENT approach.`,
|
|
165
|
+
});
|
|
166
|
+
tracker.record(tc.name, tc.arguments, true);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
const isReadonly = READONLY_TOOL_NAMES.has(tc.name);
|
|
170
|
+
// Check cache for read-only tools
|
|
171
|
+
if (isReadonly) {
|
|
172
|
+
const cached = cache.get(tc.name, tc.arguments);
|
|
173
|
+
if (cached !== null) {
|
|
174
|
+
stderrLog(formatToolCall(tc.name, tc.arguments, noColor) + ' (cached)\n');
|
|
175
|
+
const capped = memory.processToolResult(tc.name, tc.arguments, cached);
|
|
176
|
+
messages.push({ role: 'user', content: `[Tool result: ${tc.name}]\n${capped}` });
|
|
177
|
+
tracker.record(tc.name, tc.arguments, false);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
stderrLog(formatToolCall(tc.name, tc.arguments, noColor) + '\n');
|
|
182
|
+
// Confirm write tools based on policy
|
|
183
|
+
if (!isReadonly) {
|
|
184
|
+
if (config.toolPolicy === 'never') {
|
|
185
|
+
const msg = `Tool "${tc.name}" is a write tool and policy is set to "never"`;
|
|
186
|
+
await printWarning(msg);
|
|
187
|
+
messages.push({ role: 'user', content: `[Tool result: ${tc.name}]\nDenied: ${msg}` });
|
|
188
|
+
tracker.record(tc.name, tc.arguments, true);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
if (config.toolPolicy === 'ask_every_time') {
|
|
192
|
+
const allowed = await confirmToolCall(tc.name, tc.arguments);
|
|
193
|
+
if (!allowed) {
|
|
194
|
+
messages.push({ role: 'user', content: `[Tool result: ${tc.name}]\nDenied by user.` });
|
|
195
|
+
tracker.record(tc.name, tc.arguments, true);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
211
200
|
let toolOutput;
|
|
201
|
+
let wasError = false;
|
|
212
202
|
try {
|
|
213
|
-
toolOutput = await executeTool(
|
|
214
|
-
process.stderr.write(`[Result] ${toolOutput.slice(0, 200)}${toolOutput.length > 200 ? '...' : ''}\n`);
|
|
203
|
+
toolOutput = await executeTool(tc.name, tc.arguments, workspaceRoot);
|
|
215
204
|
}
|
|
216
205
|
catch (err) {
|
|
217
206
|
const jamErr = JamError.fromUnknown(err);
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
207
|
+
toolOutput = `Tool error: ${jamErr.message}`;
|
|
208
|
+
wasError = true;
|
|
209
|
+
}
|
|
210
|
+
// Cache read-only results
|
|
211
|
+
if (!wasError && isReadonly)
|
|
212
|
+
cache.set(tc.name, tc.arguments, toolOutput);
|
|
213
|
+
// Invalidate cache on write operations
|
|
214
|
+
if (!isReadonly && tc.arguments['path']) {
|
|
215
|
+
cache.invalidatePath(String(tc.arguments['path']));
|
|
225
216
|
}
|
|
226
|
-
//
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
});
|
|
217
|
+
// Cap tool output before injecting into messages
|
|
218
|
+
const cappedOutput = memory.processToolResult(tc.name, tc.arguments, toolOutput);
|
|
219
|
+
stderrLog(formatToolResult(cappedOutput, noColor) + '\n');
|
|
220
|
+
tracker.record(tc.name, tc.arguments, wasError);
|
|
221
|
+
messages.push({ role: 'user', content: `[Tool result: ${tc.name}]\n${cappedOutput}` });
|
|
222
|
+
}
|
|
223
|
+
// Scratchpad checkpoint
|
|
224
|
+
if (memory.shouldScratchpad(iteration)) {
|
|
225
|
+
stderrLog(formatInternalStatus('Working memory checkpoint…', noColor) + '\n');
|
|
226
|
+
messages.push(memory.scratchpadPrompt());
|
|
227
|
+
}
|
|
228
|
+
// Inject correction hints if stuck
|
|
229
|
+
const hint = tracker.getCorrectionHint();
|
|
230
|
+
if (hint) {
|
|
231
|
+
stderrLog(formatHintInjection(noColor) + '\n');
|
|
232
|
+
messages.push({ role: 'user', content: hint });
|
|
231
233
|
}
|
|
232
234
|
}
|
|
233
|
-
|
|
235
|
+
stderrLog('\nTask complete.\n');
|
|
234
236
|
}
|
|
235
237
|
catch (err) {
|
|
236
238
|
const jamErr = JamError.fromUnknown(err);
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAgHpE,wBAAsB,UAAU,CAC9B,GAAG,GAAE,MAAsB,EAC3B,YAAY,GAAE,YAAiB,GAC9B,OAAO,CAAC,SAAS,CAAC,CAsCpB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAS3D"}
|