@atlasharness/atlascode 0.1.39 → 0.1.41
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/cli.js +74 -709
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -169770,105 +169770,6 @@ var init_planAgent = __esm(() => {
|
|
|
169770
169770
|
};
|
|
169771
169771
|
});
|
|
169772
169772
|
|
|
169773
|
-
// src/tui/tools/AgentTool/built-in/statuslineSetup.ts
|
|
169774
|
-
var STATUSLINE_SYSTEM_PROMPT = `You are a status line setup agent for Atlas. Your job is to configure the user's status line by creating or updating ~/.atlas/statusline.json with segment-based configuration.
|
|
169775
|
-
|
|
169776
|
-
## Available Segments
|
|
169777
|
-
|
|
169778
|
-
The status line is composed of segments. Each segment type displays specific information:
|
|
169779
|
-
|
|
169780
|
-
| Type | Description | Example |
|
|
169781
|
-
|------|-------------|---------|
|
|
169782
|
-
| model | Current model name (⚡ icon) | ⚡ Qwen38-27B-TXT |
|
|
169783
|
-
| thinking-level | Effort/thinking level (\uD83E\uDDE0 icon) | \uD83E\uDDE0high |
|
|
169784
|
-
| git-branch | Git branch + clean/dirty status | ✔ master |
|
|
169785
|
-
| git-files | Changed file count (hidden when clean) | \uD83D\uDCC1+3 |
|
|
169786
|
-
| cwd | Current working directory basename | Atlas |
|
|
169787
|
-
| context-bar | Context window usage bar (8-char fixed) | ████░░░░ 78% |
|
|
169788
|
-
| context-absolute | Absolute token count | (78k/100k) |
|
|
169789
|
-
| tokens-in | Cumulative input tokens | in:12.3k |
|
|
169790
|
-
| tokens-out | Cumulative output tokens | out:8.1k |
|
|
169791
|
-
| tok-s | Decoding speed (tokens/sec) | 58 t/s |
|
|
169792
|
-
| tools-count | Tool call count this turn | \uD83D\uDD273 |
|
|
169793
|
-
|
|
169794
|
-
## Configuration Format
|
|
169795
|
-
|
|
169796
|
-
Write a JSON file at ~/.atlas/statusline.json with this structure:
|
|
169797
|
-
|
|
169798
|
-
\`\`\`json
|
|
169799
|
-
{
|
|
169800
|
-
"simple": {
|
|
169801
|
-
"line1": [
|
|
169802
|
-
{ "type": "model" },
|
|
169803
|
-
{ "type": "thinking-level" },
|
|
169804
|
-
{ "type": "git-branch" },
|
|
169805
|
-
{ "type": "cwd" },
|
|
169806
|
-
{ "type": "context-bar" },
|
|
169807
|
-
{ "type": "git-files" },
|
|
169808
|
-
{ "type": "tok-s" }
|
|
169809
|
-
]
|
|
169810
|
-
},
|
|
169811
|
-
"detailed": {
|
|
169812
|
-
"line1": [
|
|
169813
|
-
{ "type": "model" },
|
|
169814
|
-
{ "type": "thinking-level" },
|
|
169815
|
-
{ "type": "git-branch" },
|
|
169816
|
-
{ "type": "cwd" },
|
|
169817
|
-
{ "type": "git-files" },
|
|
169818
|
-
{ "type": "tools-count" }
|
|
169819
|
-
],
|
|
169820
|
-
"line2": [
|
|
169821
|
-
{ "type": "context-bar" },
|
|
169822
|
-
{ "type": "context-absolute" },
|
|
169823
|
-
{ "type": "tokens-in" },
|
|
169824
|
-
{ "type": "tokens-out" },
|
|
169825
|
-
{ "type": "tok-s" }
|
|
169826
|
-
]
|
|
169827
|
-
}
|
|
169828
|
-
}
|
|
169829
|
-
\`\`\`
|
|
169830
|
-
|
|
169831
|
-
## Rules
|
|
169832
|
-
|
|
169833
|
-
1. Only use segment types from the table above. Unknown types are silently ignored.
|
|
169834
|
-
2. simple.line1 is required. detailed is optional.
|
|
169835
|
-
3. Each line can have at most 10 segments.
|
|
169836
|
-
4. Optional fields per segment: "label" (custom text, max 50 chars) and "color" (max 20 chars).
|
|
169837
|
-
5. The file must be valid JSON. If the file is corrupted, the status line falls back to default segments.
|
|
169838
|
-
|
|
169839
|
-
## When User Asks to Customize
|
|
169840
|
-
|
|
169841
|
-
- If the user says "show me model and git only": configure simple.line1 with just model + git-branch.
|
|
169842
|
-
- If the user says "I want detailed info": add the detailed section with two lines.
|
|
169843
|
-
- If the user says "remove tok/s": remove the tok-s segment from all lines.
|
|
169844
|
-
- If the user asks to convert their PS1: map PS1 elements to the closest segment types (e.g., \\w → cwd, git branch → git-branch).
|
|
169845
|
-
|
|
169846
|
-
## Steps
|
|
169847
|
-
|
|
169848
|
-
1. Read the existing ~/.atlas/statusline.json if it exists.
|
|
169849
|
-
2. Determine which segments the user wants based on their request.
|
|
169850
|
-
3. Write the updated JSON to ~/.atlas/statusline.json using the Edit tool.
|
|
169851
|
-
4. Return a summary of what was configured.
|
|
169852
|
-
|
|
169853
|
-
## Important
|
|
169854
|
-
|
|
169855
|
-
- ALWAYS write to ~/.atlas/statusline.json, NOT to settings.json.
|
|
169856
|
-
- Preserve existing configuration when updating (merge, don't replace unless asked).
|
|
169857
|
-
- The file is user-level only; there is no project-level statusline.json.
|
|
169858
|
-
`, STATUSLINE_SETUP_AGENT;
|
|
169859
|
-
var init_statuslineSetup = __esm(() => {
|
|
169860
|
-
STATUSLINE_SETUP_AGENT = {
|
|
169861
|
-
agentType: "statusline-setup",
|
|
169862
|
-
whenToUse: "Use this agent to configure the user's Atlas status line segments.",
|
|
169863
|
-
tools: ["Read", "Edit"],
|
|
169864
|
-
source: "built-in",
|
|
169865
|
-
baseDir: "built-in",
|
|
169866
|
-
model: "small",
|
|
169867
|
-
color: "orange",
|
|
169868
|
-
getSystemPrompt: () => STATUSLINE_SYSTEM_PROMPT
|
|
169869
|
-
};
|
|
169870
|
-
});
|
|
169871
|
-
|
|
169872
169773
|
// src/tui/tools/AgentTool/built-in/verificationAgent.ts
|
|
169873
169774
|
var VERIFICATION_SYSTEM_PROMPT, VERIFICATION_WHEN_TO_USE = "Use this agent to verify that implementation work is correct before reporting completion. Invoke after non-trivial tasks (3+ file edits, backend/API changes, infrastructure changes). Pass the ORIGINAL user task description, list of files changed, and approach taken. The agent runs builds, tests, linters, and checks to produce a PASS/FAIL/PARTIAL verdict with evidence.", VERIFICATION_AGENT;
|
|
169874
169775
|
var init_verificationAgent = __esm(() => {
|
|
@@ -170099,8 +170000,7 @@ function getBuiltInAgents2() {
|
|
|
170099
170000
|
}
|
|
170100
170001
|
}
|
|
170101
170002
|
const agents = [
|
|
170102
|
-
GENERAL_PURPOSE_AGENT2
|
|
170103
|
-
STATUSLINE_SETUP_AGENT
|
|
170003
|
+
GENERAL_PURPOSE_AGENT2
|
|
170104
170004
|
];
|
|
170105
170005
|
if (areExplorePlanAgentsEnabled()) {
|
|
170106
170006
|
agents.push(EXPLORE_AGENT, PLAN_AGENT);
|
|
@@ -170123,7 +170023,6 @@ var init_builtInAgents2 = __esm(() => {
|
|
|
170123
170023
|
init_exploreAgent();
|
|
170124
170024
|
init_generalPurposeAgent();
|
|
170125
170025
|
init_planAgent();
|
|
170126
|
-
init_statuslineSetup();
|
|
170127
170026
|
init_verificationAgent();
|
|
170128
170027
|
});
|
|
170129
170028
|
|
|
@@ -343638,18 +343537,6 @@ var init_add_dir2 = __esm(() => {
|
|
|
343638
343537
|
add_dir_default = addDir;
|
|
343639
343538
|
});
|
|
343640
343539
|
|
|
343641
|
-
// src/tui/commands/autofix-pr/index.js
|
|
343642
|
-
var autofix_pr_default;
|
|
343643
|
-
var init_autofix_pr = __esm(() => {
|
|
343644
|
-
autofix_pr_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
343645
|
-
});
|
|
343646
|
-
|
|
343647
|
-
// src/tui/commands/backfill-sessions/index.js
|
|
343648
|
-
var backfill_sessions_default;
|
|
343649
|
-
var init_backfill_sessions = __esm(() => {
|
|
343650
|
-
backfill_sessions_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
343651
|
-
});
|
|
343652
|
-
|
|
343653
343540
|
// src/tui/components/Spinner/SpinnerGlyph.tsx
|
|
343654
343541
|
function SpinnerGlyph(t0) {
|
|
343655
343542
|
const $ = import_compiler_runtime111.c(8);
|
|
@@ -344285,18 +344172,6 @@ var init_btw2 = __esm(() => {
|
|
|
344285
344172
|
btw_default = btw;
|
|
344286
344173
|
});
|
|
344287
344174
|
|
|
344288
|
-
// src/tui/commands/good-atlas/index.js
|
|
344289
|
-
var good_atlas_default;
|
|
344290
|
-
var init_good_atlas = __esm(() => {
|
|
344291
|
-
good_atlas_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
344292
|
-
});
|
|
344293
|
-
|
|
344294
|
-
// src/tui/commands/issue/index.js
|
|
344295
|
-
var issue_default;
|
|
344296
|
-
var init_issue = __esm(() => {
|
|
344297
|
-
issue_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
344298
|
-
});
|
|
344299
|
-
|
|
344300
344175
|
// src/tui/components/Feedback.tsx
|
|
344301
344176
|
import { readFile as readFile44, stat as stat43 } from "fs/promises";
|
|
344302
344177
|
function redactSensitiveInfo(text) {
|
|
@@ -358139,12 +358014,6 @@ var init_diff4 = __esm(() => {
|
|
|
358139
358014
|
};
|
|
358140
358015
|
});
|
|
358141
358016
|
|
|
358142
|
-
// src/tui/commands/ctx_viz/index.js
|
|
358143
|
-
var ctx_viz_default;
|
|
358144
|
-
var init_ctx_viz = __esm(() => {
|
|
358145
|
-
ctx_viz_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
358146
|
-
});
|
|
358147
|
-
|
|
358148
358017
|
// src/tui/components/KeybindingWarnings.tsx
|
|
358149
358018
|
function KeybindingWarnings() {
|
|
358150
358019
|
const $ = import_compiler_runtime133.c(2);
|
|
@@ -364093,55 +363962,6 @@ var init_logout2 = __esm(() => {
|
|
|
364093
363962
|
};
|
|
364094
363963
|
});
|
|
364095
363964
|
|
|
364096
|
-
// src/tui/commands/install-slack-app/install-slack-app.ts
|
|
364097
|
-
var exports_install_slack_app = {};
|
|
364098
|
-
__export(exports_install_slack_app, {
|
|
364099
|
-
call: () => call22
|
|
364100
|
-
});
|
|
364101
|
-
async function call22() {
|
|
364102
|
-
saveGlobalConfig((current) => ({
|
|
364103
|
-
...current,
|
|
364104
|
-
slackAppInstallCount: (current.slackAppInstallCount ?? 0) + 1
|
|
364105
|
-
}));
|
|
364106
|
-
const success = await openBrowser(SLACK_APP_URL);
|
|
364107
|
-
if (success) {
|
|
364108
|
-
return {
|
|
364109
|
-
type: "text",
|
|
364110
|
-
value: "Opening Slack app installation page in browser…"
|
|
364111
|
-
};
|
|
364112
|
-
} else {
|
|
364113
|
-
return {
|
|
364114
|
-
type: "text",
|
|
364115
|
-
value: `Couldn't open browser. Visit: ${SLACK_APP_URL}`
|
|
364116
|
-
};
|
|
364117
|
-
}
|
|
364118
|
-
}
|
|
364119
|
-
var SLACK_APP_URL = "https://slack.com/marketplace/A08SF47R6P4-claude";
|
|
364120
|
-
var init_install_slack_app = __esm(() => {
|
|
364121
|
-
init_browser();
|
|
364122
|
-
init_config6();
|
|
364123
|
-
});
|
|
364124
|
-
|
|
364125
|
-
// src/tui/commands/install-slack-app/index.ts
|
|
364126
|
-
var installSlackApp, install_slack_app_default;
|
|
364127
|
-
var init_install_slack_app2 = __esm(() => {
|
|
364128
|
-
installSlackApp = {
|
|
364129
|
-
type: "local",
|
|
364130
|
-
name: "install-slack-app",
|
|
364131
|
-
description: "Install the Atlas Slack app",
|
|
364132
|
-
availability: ["claude-ai"],
|
|
364133
|
-
supportsNonInteractive: false,
|
|
364134
|
-
load: () => Promise.resolve().then(() => (init_install_slack_app(), exports_install_slack_app))
|
|
364135
|
-
};
|
|
364136
|
-
install_slack_app_default = installSlackApp;
|
|
364137
|
-
});
|
|
364138
|
-
|
|
364139
|
-
// src/tui/commands/break-cache/index.js
|
|
364140
|
-
var break_cache_default;
|
|
364141
|
-
var init_break_cache = __esm(() => {
|
|
364142
|
-
break_cache_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
364143
|
-
});
|
|
364144
|
-
|
|
364145
363965
|
// src/tui/utils/activityManager.ts
|
|
364146
363966
|
class ActivityManager {
|
|
364147
363967
|
activeOperations = new Set;
|
|
@@ -370275,7 +370095,7 @@ var init_mcp5 = __esm(() => {
|
|
|
370275
370095
|
// src/tui/commands/mcp/mcp.tsx
|
|
370276
370096
|
var exports_mcp = {};
|
|
370277
370097
|
__export(exports_mcp, {
|
|
370278
|
-
call: () =>
|
|
370098
|
+
call: () => call22
|
|
370279
370099
|
});
|
|
370280
370100
|
function MCPToggle(t0) {
|
|
370281
370101
|
const $ = import_compiler_runtime161.c(7);
|
|
@@ -370328,7 +370148,7 @@ function _temp235(c) {
|
|
|
370328
370148
|
function _temp89(s) {
|
|
370329
370149
|
return s.mcp.clients;
|
|
370330
370150
|
}
|
|
370331
|
-
async function
|
|
370151
|
+
async function call22(onDone, _context, args) {
|
|
370332
370152
|
if (args) {
|
|
370333
370153
|
const parts = args.trim().split(/\s+/);
|
|
370334
370154
|
if (parts[0] === "no-redirect") {
|
|
@@ -370379,90 +370199,6 @@ var init_mcp7 = __esm(() => {
|
|
|
370379
370199
|
mcp_default = mcp;
|
|
370380
370200
|
});
|
|
370381
370201
|
|
|
370382
|
-
// src/tui/commands/onboarding/index.js
|
|
370383
|
-
var onboarding_default;
|
|
370384
|
-
var init_onboarding = __esm(() => {
|
|
370385
|
-
onboarding_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
370386
|
-
});
|
|
370387
|
-
|
|
370388
|
-
// src/tui/commands/createMovedToPluginCommand.ts
|
|
370389
|
-
function createMovedToPluginCommand({
|
|
370390
|
-
name,
|
|
370391
|
-
description,
|
|
370392
|
-
progressMessage,
|
|
370393
|
-
pluginName,
|
|
370394
|
-
pluginCommand,
|
|
370395
|
-
getPromptWhileMarketplaceIsPrivate
|
|
370396
|
-
}) {
|
|
370397
|
-
return {
|
|
370398
|
-
type: "prompt",
|
|
370399
|
-
name,
|
|
370400
|
-
description,
|
|
370401
|
-
progressMessage,
|
|
370402
|
-
contentLength: 0,
|
|
370403
|
-
userFacingName() {
|
|
370404
|
-
return name;
|
|
370405
|
-
},
|
|
370406
|
-
source: "builtin",
|
|
370407
|
-
async getPromptForCommand(args, context) {
|
|
370408
|
-
return getPromptWhileMarketplaceIsPrivate(args, context);
|
|
370409
|
-
}
|
|
370410
|
-
};
|
|
370411
|
-
}
|
|
370412
|
-
|
|
370413
|
-
// src/tui/commands/pr_comments/index.ts
|
|
370414
|
-
var pr_comments_default;
|
|
370415
|
-
var init_pr_comments = __esm(() => {
|
|
370416
|
-
pr_comments_default = createMovedToPluginCommand({
|
|
370417
|
-
name: "pr-comments",
|
|
370418
|
-
description: "Get comments from a GitHub pull request",
|
|
370419
|
-
progressMessage: "fetching PR comments",
|
|
370420
|
-
pluginName: "pr-comments",
|
|
370421
|
-
pluginCommand: "pr-comments",
|
|
370422
|
-
async getPromptWhileMarketplaceIsPrivate(args) {
|
|
370423
|
-
return [
|
|
370424
|
-
{
|
|
370425
|
-
type: "text",
|
|
370426
|
-
text: `You are an AI assistant integrated into a git-based version control system. Your task is to fetch and display comments from a GitHub pull request.
|
|
370427
|
-
|
|
370428
|
-
Follow these steps:
|
|
370429
|
-
|
|
370430
|
-
1. Use \`gh pr view --json number,headRepository\` to get the PR number and repository info
|
|
370431
|
-
2. Use \`gh api /repos/{owner}/{repo}/issues/{number}/comments\` to get PR-level comments
|
|
370432
|
-
3. Use \`gh api /repos/{owner}/{repo}/pulls/{number}/comments\` to get review comments. Pay particular attention to the following fields: \`body\`, \`diff_hunk\`, \`path\`, \`line\`, etc. If the comment references some code, consider fetching it using eg \`gh api /repos/{owner}/{repo}/contents/{path}?ref={branch} | jq .content -r | base64 -d\`
|
|
370433
|
-
4. Parse and format all comments in a readable way
|
|
370434
|
-
5. Return ONLY the formatted comments, with no additional text
|
|
370435
|
-
|
|
370436
|
-
Format the comments as:
|
|
370437
|
-
|
|
370438
|
-
## Comments
|
|
370439
|
-
|
|
370440
|
-
[For each comment thread:]
|
|
370441
|
-
- @author file.ts#line:
|
|
370442
|
-
\`\`\`diff
|
|
370443
|
-
[diff_hunk from the API response]
|
|
370444
|
-
\`\`\`
|
|
370445
|
-
> quoted comment text
|
|
370446
|
-
|
|
370447
|
-
[any replies indented]
|
|
370448
|
-
|
|
370449
|
-
If there are no comments, return "No comments found."
|
|
370450
|
-
|
|
370451
|
-
Remember:
|
|
370452
|
-
1. Only show the actual comments, no explanatory text
|
|
370453
|
-
2. Include both PR-level and code review comments
|
|
370454
|
-
3. Preserve the threading/nesting of comment replies
|
|
370455
|
-
4. Show the file and line number context for code review comments
|
|
370456
|
-
5. Use jq to parse the JSON responses from the GitHub API
|
|
370457
|
-
|
|
370458
|
-
${args ? "Additional user input: " + args : ""}
|
|
370459
|
-
`
|
|
370460
|
-
}
|
|
370461
|
-
];
|
|
370462
|
-
}
|
|
370463
|
-
});
|
|
370464
|
-
});
|
|
370465
|
-
|
|
370466
370202
|
// src/tui/utils/releaseNotes.ts
|
|
370467
370203
|
import { mkdir as mkdir44, readFile as readFile48, writeFile as writeFile39 } from "fs/promises";
|
|
370468
370204
|
import { dirname as dirname71, join as join140 } from "path";
|
|
@@ -370618,7 +370354,7 @@ var init_releaseNotes = __esm(() => {
|
|
|
370618
370354
|
// src/tui/commands/release-notes/release-notes.ts
|
|
370619
370355
|
var exports_release_notes = {};
|
|
370620
370356
|
__export(exports_release_notes, {
|
|
370621
|
-
call: () =>
|
|
370357
|
+
call: () => call23
|
|
370622
370358
|
});
|
|
370623
370359
|
function formatReleaseNotes(notes) {
|
|
370624
370360
|
return notes.map(([version, notes]) => {
|
|
@@ -370631,7 +370367,7 @@ ${bulletPoints}`;
|
|
|
370631
370367
|
|
|
370632
370368
|
`);
|
|
370633
370369
|
}
|
|
370634
|
-
async function
|
|
370370
|
+
async function call23() {
|
|
370635
370371
|
let freshNotes = [];
|
|
370636
370372
|
try {
|
|
370637
370373
|
const timeoutPromise = new Promise((_, reject) => {
|
|
@@ -370822,9 +370558,9 @@ var init_generateSessionName = __esm(() => {
|
|
|
370822
370558
|
// src/tui/commands/rename/rename.ts
|
|
370823
370559
|
var exports_rename = {};
|
|
370824
370560
|
__export(exports_rename, {
|
|
370825
|
-
call: () =>
|
|
370561
|
+
call: () => call24
|
|
370826
370562
|
});
|
|
370827
|
-
async function
|
|
370563
|
+
async function call24(onDone, context, args) {
|
|
370828
370564
|
if (isTeammate2()) {
|
|
370829
370565
|
onDone("Cannot rename: This session is a swarm teammate. Teammate names are set by the team leader.", { display: "system" });
|
|
370830
370566
|
return null;
|
|
@@ -378791,7 +378527,7 @@ var init_crossProjectResume = __esm(() => {
|
|
|
378791
378527
|
// src/tui/commands/resume/resume.tsx
|
|
378792
378528
|
var exports_resume = {};
|
|
378793
378529
|
__export(exports_resume, {
|
|
378794
|
-
call: () =>
|
|
378530
|
+
call: () => call25,
|
|
378795
378531
|
filterResumableSessions: () => filterResumableSessions
|
|
378796
378532
|
});
|
|
378797
378533
|
function resumeHelpMessage(result) {
|
|
@@ -378977,7 +378713,7 @@ function ResumeCommand({
|
|
|
378977
378713
|
function filterResumableSessions(logs, currentSessionId) {
|
|
378978
378714
|
return logs.filter((l) => !l.isSidechain && getSessionIdFromLog(l) !== currentSessionId);
|
|
378979
378715
|
}
|
|
378980
|
-
var import_compiler_runtime179, React69, jsx_dev_runtime221,
|
|
378716
|
+
var import_compiler_runtime179, React69, jsx_dev_runtime221, call25 = async (onDone, context, args) => {
|
|
378981
378717
|
const onResume = async (sessionId, log, entrypoint) => {
|
|
378982
378718
|
try {
|
|
378983
378719
|
await context.resume?.(sessionId, log, entrypoint);
|
|
@@ -383375,7 +383111,7 @@ var init_server = __esm(() => {
|
|
|
383375
383111
|
// src/tui/commands/session/session.tsx
|
|
383376
383112
|
var exports_session = {};
|
|
383377
383113
|
__export(exports_session, {
|
|
383378
|
-
call: () =>
|
|
383114
|
+
call: () => call26
|
|
383379
383115
|
});
|
|
383380
383116
|
function SessionInfo(t0) {
|
|
383381
383117
|
const $ = import_compiler_runtime180.c(19);
|
|
@@ -383565,7 +383301,7 @@ function _temp241(e) {
|
|
|
383565
383301
|
function _temp105(s) {
|
|
383566
383302
|
return s.remoteSessionUrl;
|
|
383567
383303
|
}
|
|
383568
|
-
var import_compiler_runtime180, import_react131, jsx_dev_runtime222,
|
|
383304
|
+
var import_compiler_runtime180, import_react131, jsx_dev_runtime222, call26 = async (onDone) => {
|
|
383569
383305
|
return /* @__PURE__ */ jsx_dev_runtime222.jsxDEV(SessionInfo, {
|
|
383570
383306
|
onDone
|
|
383571
383307
|
}, undefined, false, undefined, this);
|
|
@@ -383596,12 +383332,6 @@ var init_session3 = __esm(() => {
|
|
|
383596
383332
|
session_default = session;
|
|
383597
383333
|
});
|
|
383598
383334
|
|
|
383599
|
-
// src/tui/commands/share/index.js
|
|
383600
|
-
var share_default;
|
|
383601
|
-
var init_share = __esm(() => {
|
|
383602
|
-
share_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
383603
|
-
});
|
|
383604
|
-
|
|
383605
383335
|
// src/tui/components/skills/SkillsMenu.tsx
|
|
383606
383336
|
function getSourceTitle(source) {
|
|
383607
383337
|
if (source === "plugin") {
|
|
@@ -383927,9 +383657,9 @@ var init_SkillsMenu = __esm(() => {
|
|
|
383927
383657
|
// src/tui/commands/skills/skills.tsx
|
|
383928
383658
|
var exports_skills = {};
|
|
383929
383659
|
__export(exports_skills, {
|
|
383930
|
-
call: () =>
|
|
383660
|
+
call: () => call27
|
|
383931
383661
|
});
|
|
383932
|
-
async function
|
|
383662
|
+
async function call27(onDone, context) {
|
|
383933
383663
|
return /* @__PURE__ */ jsx_dev_runtime224.jsxDEV(SkillsMenu, {
|
|
383934
383664
|
onExit: onDone,
|
|
383935
383665
|
commands: context.options.commands
|
|
@@ -383956,9 +383686,9 @@ var init_skills3 = __esm(() => {
|
|
|
383956
383686
|
// src/tui/commands/status/status.tsx
|
|
383957
383687
|
var exports_status = {};
|
|
383958
383688
|
__export(exports_status, {
|
|
383959
|
-
call: () =>
|
|
383689
|
+
call: () => call28
|
|
383960
383690
|
});
|
|
383961
|
-
async function
|
|
383691
|
+
async function call28(onDone, context) {
|
|
383962
383692
|
return /* @__PURE__ */ jsx_dev_runtime225.jsxDEV(Settings, {
|
|
383963
383693
|
onClose: onDone,
|
|
383964
383694
|
context,
|
|
@@ -387154,9 +386884,9 @@ var init_BackgroundTasksDialog = __esm(() => {
|
|
|
387154
386884
|
// src/tui/commands/tasks/tasks.tsx
|
|
387155
386885
|
var exports_tasks = {};
|
|
387156
386886
|
__export(exports_tasks, {
|
|
387157
|
-
call: () =>
|
|
386887
|
+
call: () => call29
|
|
387158
386888
|
});
|
|
387159
|
-
async function
|
|
386889
|
+
async function call29(onDone, context) {
|
|
387160
386890
|
return /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(BackgroundTasksDialog, {
|
|
387161
386891
|
toolUseContext: context,
|
|
387162
386892
|
onDone
|
|
@@ -387603,9 +387333,9 @@ var init_FileTaskDialog = __esm(() => {
|
|
|
387603
387333
|
// src/tui/commands/tasklist/tasklist.tsx
|
|
387604
387334
|
var exports_tasklist = {};
|
|
387605
387335
|
__export(exports_tasklist, {
|
|
387606
|
-
call: () =>
|
|
387336
|
+
call: () => call30
|
|
387607
387337
|
});
|
|
387608
|
-
async function
|
|
387338
|
+
async function call30(onDone, _context) {
|
|
387609
387339
|
return /* @__PURE__ */ jsx_dev_runtime236.jsxDEV(FileTaskDialog, {
|
|
387610
387340
|
onDone
|
|
387611
387341
|
}, undefined, false, undefined, this);
|
|
@@ -387629,243 +387359,6 @@ var init_tasklist2 = __esm(() => {
|
|
|
387629
387359
|
tasklist_default = tasklist;
|
|
387630
387360
|
});
|
|
387631
387361
|
|
|
387632
|
-
// src/tui/commands/security-review.ts
|
|
387633
|
-
var SECURITY_REVIEW_MARKDOWN = `---
|
|
387634
|
-
allowed-tools: Bash(git diff:*), Bash(git status:*), Bash(git log:*), Bash(git show:*), Bash(git remote show:*), Read, Glob, Grep, LS, Task
|
|
387635
|
-
description: Complete a security review of the pending changes on the current branch
|
|
387636
|
-
---
|
|
387637
|
-
|
|
387638
|
-
You are a senior security engineer conducting a focused security review of the changes on this branch.
|
|
387639
|
-
|
|
387640
|
-
GIT STATUS:
|
|
387641
|
-
|
|
387642
|
-
\`\`\`
|
|
387643
|
-
!\`git status\`
|
|
387644
|
-
\`\`\`
|
|
387645
|
-
|
|
387646
|
-
FILES MODIFIED:
|
|
387647
|
-
|
|
387648
|
-
\`\`\`
|
|
387649
|
-
!\`git diff --name-only origin/HEAD...\`
|
|
387650
|
-
\`\`\`
|
|
387651
|
-
|
|
387652
|
-
COMMITS:
|
|
387653
|
-
|
|
387654
|
-
\`\`\`
|
|
387655
|
-
!\`git log --no-decorate origin/HEAD...\`
|
|
387656
|
-
\`\`\`
|
|
387657
|
-
|
|
387658
|
-
DIFF CONTENT:
|
|
387659
|
-
|
|
387660
|
-
\`\`\`
|
|
387661
|
-
!\`git diff origin/HEAD...\`
|
|
387662
|
-
\`\`\`
|
|
387663
|
-
|
|
387664
|
-
Review the complete diff above. This contains all code changes in the PR.
|
|
387665
|
-
|
|
387666
|
-
|
|
387667
|
-
OBJECTIVE:
|
|
387668
|
-
Perform a security-focused code review to identify HIGH-CONFIDENCE security vulnerabilities that could have real exploitation potential. This is not a general code review - focus ONLY on security implications newly added by this PR. Do not comment on existing security concerns.
|
|
387669
|
-
|
|
387670
|
-
CRITICAL INSTRUCTIONS:
|
|
387671
|
-
1. MINIMIZE FALSE POSITIVES: Only flag issues where you're >80% confident of actual exploitability
|
|
387672
|
-
2. AVOID NOISE: Skip theoretical issues, style concerns, or low-impact findings
|
|
387673
|
-
3. FOCUS ON IMPACT: Prioritize vulnerabilities that could lead to unauthorized access, data breaches, or system compromise
|
|
387674
|
-
4. EXCLUSIONS: Do NOT report the following issue types:
|
|
387675
|
-
- Denial of Service (DOS) vulnerabilities, even if they allow service disruption
|
|
387676
|
-
- Secrets or sensitive data stored on disk (these are handled by other processes)
|
|
387677
|
-
- Rate limiting or resource exhaustion issues
|
|
387678
|
-
|
|
387679
|
-
SECURITY CATEGORIES TO EXAMINE:
|
|
387680
|
-
|
|
387681
|
-
**Input Validation Vulnerabilities:**
|
|
387682
|
-
- SQL injection via unsanitized user input
|
|
387683
|
-
- Command injection in system calls or subprocesses
|
|
387684
|
-
- XXE injection in XML parsing
|
|
387685
|
-
- Template injection in templating engines
|
|
387686
|
-
- NoSQL injection in database queries
|
|
387687
|
-
- Path traversal in file operations
|
|
387688
|
-
|
|
387689
|
-
**Authentication & Authorization Issues:**
|
|
387690
|
-
- Authentication bypass logic
|
|
387691
|
-
- Privilege escalation paths
|
|
387692
|
-
- Session management flaws
|
|
387693
|
-
- JWT token vulnerabilities
|
|
387694
|
-
- Authorization logic bypasses
|
|
387695
|
-
|
|
387696
|
-
**Crypto & Secrets Management:**
|
|
387697
|
-
- Hardcoded API keys, passwords, or tokens
|
|
387698
|
-
- Weak cryptographic algorithms or implementations
|
|
387699
|
-
- Improper key storage or management
|
|
387700
|
-
- Cryptographic randomness issues
|
|
387701
|
-
- Certificate validation bypasses
|
|
387702
|
-
|
|
387703
|
-
**Injection & Code Execution:**
|
|
387704
|
-
- Remote code execution via deseralization
|
|
387705
|
-
- Pickle injection in Python
|
|
387706
|
-
- YAML deserialization vulnerabilities
|
|
387707
|
-
- Eval injection in dynamic code execution
|
|
387708
|
-
- XSS vulnerabilities in web applications (reflected, stored, DOM-based)
|
|
387709
|
-
|
|
387710
|
-
**Data Exposure:**
|
|
387711
|
-
- Sensitive data logging or storage
|
|
387712
|
-
- PII handling violations
|
|
387713
|
-
- API endpoint data leakage
|
|
387714
|
-
- Debug information exposure
|
|
387715
|
-
|
|
387716
|
-
Additional notes:
|
|
387717
|
-
- Even if something is only exploitable from the local network, it can still be a HIGH severity issue
|
|
387718
|
-
|
|
387719
|
-
ANALYSIS METHODOLOGY:
|
|
387720
|
-
|
|
387721
|
-
Phase 1 - Repository Context Research (Use file search tools):
|
|
387722
|
-
- Identify existing security frameworks and libraries in use
|
|
387723
|
-
- Look for established secure coding patterns in the codebase
|
|
387724
|
-
- Examine existing sanitization and validation patterns
|
|
387725
|
-
- Understand the project's security model and threat model
|
|
387726
|
-
|
|
387727
|
-
Phase 2 - Comparative Analysis:
|
|
387728
|
-
- Compare new code changes against existing security patterns
|
|
387729
|
-
- Identify deviations from established secure practices
|
|
387730
|
-
- Look for inconsistent security implementations
|
|
387731
|
-
- Flag code that introduces new attack surfaces
|
|
387732
|
-
|
|
387733
|
-
Phase 3 - Vulnerability Assessment:
|
|
387734
|
-
- Examine each modified file for security implications
|
|
387735
|
-
- Trace data flow from user inputs to sensitive operations
|
|
387736
|
-
- Look for privilege boundaries being crossed unsafely
|
|
387737
|
-
- Identify injection points and unsafe deserialization
|
|
387738
|
-
|
|
387739
|
-
REQUIRED OUTPUT FORMAT:
|
|
387740
|
-
|
|
387741
|
-
You MUST output your findings in markdown. The markdown output should contain the file, line number, severity, category (e.g. \`sql_injection\` or \`xss\`), description, exploit scenario, and fix recommendation.
|
|
387742
|
-
|
|
387743
|
-
For example:
|
|
387744
|
-
|
|
387745
|
-
# Vuln 1: XSS: \`foo.py:42\`
|
|
387746
|
-
|
|
387747
|
-
* Severity: High
|
|
387748
|
-
* Description: User input from \`username\` parameter is directly interpolated into HTML without escaping, allowing reflected XSS attacks
|
|
387749
|
-
* Exploit Scenario: Attacker crafts URL like /bar?q=<script>alert(document.cookie)</script> to execute JavaScript in victim's browser, enabling session hijacking or data theft
|
|
387750
|
-
* Recommendation: Use Flask's escape() function or Jinja2 templates with auto-escaping enabled for all user inputs rendered in HTML
|
|
387751
|
-
|
|
387752
|
-
SEVERITY GUIDELINES:
|
|
387753
|
-
- **HIGH**: Directly exploitable vulnerabilities leading to RCE, data breach, or authentication bypass
|
|
387754
|
-
- **MEDIUM**: Vulnerabilities requiring specific conditions but with significant impact
|
|
387755
|
-
- **LOW**: Defense-in-depth issues or lower-impact vulnerabilities
|
|
387756
|
-
|
|
387757
|
-
CONFIDENCE SCORING:
|
|
387758
|
-
- 0.9-1.0: Certain exploit path identified, tested if possible
|
|
387759
|
-
- 0.8-0.9: Clear vulnerability pattern with known exploitation methods
|
|
387760
|
-
- 0.7-0.8: Suspicious pattern requiring specific conditions to exploit
|
|
387761
|
-
- Below 0.7: Don't report (too speculative)
|
|
387762
|
-
|
|
387763
|
-
FINAL REMINDER:
|
|
387764
|
-
Focus on HIGH and MEDIUM findings only. Better to miss some theoretical issues than flood the report with false positives. Each finding should be something a security engineer would confidently raise in a PR review.
|
|
387765
|
-
|
|
387766
|
-
FALSE POSITIVE FILTERING:
|
|
387767
|
-
|
|
387768
|
-
> You do not need to run commands to reproduce the vulnerability, just read the code to determine if it is a real vulnerability. Do not use the bash tool or write to any files.
|
|
387769
|
-
>
|
|
387770
|
-
> HARD EXCLUSIONS - Automatically exclude findings matching these patterns:
|
|
387771
|
-
> 1. Denial of Service (DOS) vulnerabilities or resource exhaustion attacks.
|
|
387772
|
-
> 2. Secrets or credentials stored on disk if they are otherwise secured.
|
|
387773
|
-
> 3. Rate limiting concerns or service overload scenarios.
|
|
387774
|
-
> 4. Memory consumption or CPU exhaustion issues.
|
|
387775
|
-
> 5. Lack of input validation on non-security-critical fields without proven security impact.
|
|
387776
|
-
> 6. Input sanitization concerns for GitHub Action workflows unless they are clearly triggerable via untrusted input.
|
|
387777
|
-
> 7. A lack of hardening measures. Code is not expected to implement all security best practices, only flag concrete vulnerabilities.
|
|
387778
|
-
> 8. Race conditions or timing attacks that are theoretical rather than practical issues. Only report a race condition if it is concretely problematic.
|
|
387779
|
-
> 9. Vulnerabilities related to outdated third-party libraries. These are managed separately and should not be reported here.
|
|
387780
|
-
> 10. Memory safety issues such as buffer overflows or use-after-free-vulnerabilities are impossible in rust. Do not report memory safety issues in rust or any other memory safe languages.
|
|
387781
|
-
> 11. Files that are only unit tests or only used as part of running tests.
|
|
387782
|
-
> 12. Log spoofing concerns. Outputting un-sanitized user input to logs is not a vulnerability.
|
|
387783
|
-
> 13. SSRF vulnerabilities that only control the path. SSRF is only a concern if it can control the host or protocol.
|
|
387784
|
-
> 14. Including user-controlled content in AI system prompts is not a vulnerability.
|
|
387785
|
-
> 15. Regex injection. Injecting untrusted content into a regex is not a vulnerability.
|
|
387786
|
-
> 16. Regex DOS concerns.
|
|
387787
|
-
> 16. Insecure documentation. Do not report any findings in documentation files such as markdown files.
|
|
387788
|
-
> 17. A lack of audit logs is not a vulnerability.
|
|
387789
|
-
>
|
|
387790
|
-
> PRECEDENTS -
|
|
387791
|
-
> 1. Logging high value secrets in plaintext is a vulnerability. Logging URLs is assumed to be safe.
|
|
387792
|
-
> 2. UUIDs can be assumed to be unguessable and do not need to be validated.
|
|
387793
|
-
> 3. Environment variables and CLI flags are trusted values. Attackers are generally not able to modify them in a secure environment. Any attack that relies on controlling an environment variable is invalid.
|
|
387794
|
-
> 4. Resource management issues such as memory or file descriptor leaks are not valid.
|
|
387795
|
-
> 5. Subtle or low impact web vulnerabilities such as tabnabbing, XS-Leaks, prototype pollution, and open redirects should not be reported unless they are extremely high confidence.
|
|
387796
|
-
> 6. React and Angular are generally secure against XSS. These frameworks do not need to sanitize or escape user input unless it is using dangerouslySetInnerHTML, bypassSecurityTrustHtml, or similar methods. Do not report XSS vulnerabilities in React or Angular components or tsx files unless they are using unsafe methods.
|
|
387797
|
-
> 7. Most vulnerabilities in github action workflows are not exploitable in practice. Before validating a github action workflow vulnerability ensure it is concrete and has a very specific attack path.
|
|
387798
|
-
> 8. A lack of permission checking or authentication in client-side JS/TS code is not a vulnerability. Client-side code is not trusted and does not need to implement these checks, they are handled on the server-side. The same applies to all flows that send untrusted data to the backend, the backend is responsible for validating and sanitizing all inputs.
|
|
387799
|
-
> 9. Only include MEDIUM findings if they are obvious and concrete issues.
|
|
387800
|
-
> 10. Most vulnerabilities in ipython notebooks (*.ipynb files) are not exploitable in practice. Before validating a notebook vulnerability ensure it is concrete and has a very specific attack path where untrusted input can trigger the vulnerability.
|
|
387801
|
-
> 11. Logging non-PII data is not a vulnerability even if the data may be sensitive. Only report logging vulnerabilities if they expose sensitive information such as secrets, passwords, or personally identifiable information (PII).
|
|
387802
|
-
> 12. Command injection vulnerabilities in shell scripts are generally not exploitable in practice since shell scripts generally do not run with untrusted user input. Only report command injection vulnerabilities in shell scripts if they are concrete and have a very specific attack path for untrusted input.
|
|
387803
|
-
>
|
|
387804
|
-
> SIGNAL QUALITY CRITERIA - For remaining findings, assess:
|
|
387805
|
-
> 1. Is there a concrete, exploitable vulnerability with a clear attack path?
|
|
387806
|
-
> 2. Does this represent a real security risk vs theoretical best practice?
|
|
387807
|
-
> 3. Are there specific code locations and reproduction steps?
|
|
387808
|
-
> 4. Would this finding be actionable for a security team?
|
|
387809
|
-
>
|
|
387810
|
-
> For each finding, assign a confidence score from 1-10:
|
|
387811
|
-
> - 1-3: Low confidence, likely false positive or noise
|
|
387812
|
-
> - 4-6: Medium confidence, needs investigation
|
|
387813
|
-
> - 7-10: High confidence, likely true vulnerability
|
|
387814
|
-
|
|
387815
|
-
START ANALYSIS:
|
|
387816
|
-
|
|
387817
|
-
Begin your analysis now. Do this in 3 steps:
|
|
387818
|
-
|
|
387819
|
-
1. Use a sub-task to identify vulnerabilities. Use the repository exploration tools to understand the codebase context, then analyze the PR changes for security implications. In the prompt for this sub-task, include all of the above.
|
|
387820
|
-
2. Then for each vulnerability identified by the above sub-task, create a new sub-task to filter out false-positives. Launch these sub-tasks as parallel sub-tasks. In the prompt for these sub-tasks, include everything in the "FALSE POSITIVE FILTERING" instructions.
|
|
387821
|
-
3. Filter out any vulnerabilities where the sub-task reported a confidence less than 8.
|
|
387822
|
-
|
|
387823
|
-
Your final reply must contain the markdown report and nothing else.`, security_review_default;
|
|
387824
|
-
var init_security_review = __esm(() => {
|
|
387825
|
-
init_frontmatterParser2();
|
|
387826
|
-
init_markdownConfigLoader();
|
|
387827
|
-
init_promptShellExecution2();
|
|
387828
|
-
security_review_default = createMovedToPluginCommand({
|
|
387829
|
-
name: "security-review",
|
|
387830
|
-
description: "Complete a security review of the pending changes on the current branch",
|
|
387831
|
-
progressMessage: "analyzing code changes for security risks",
|
|
387832
|
-
pluginName: "security-review",
|
|
387833
|
-
pluginCommand: "security-review",
|
|
387834
|
-
async getPromptWhileMarketplaceIsPrivate(_args, context) {
|
|
387835
|
-
const parsed = parseFrontmatter2(SECURITY_REVIEW_MARKDOWN);
|
|
387836
|
-
const allowedTools = parseSlashCommandToolsFromFrontmatter2(parsed.frontmatter["allowed-tools"]);
|
|
387837
|
-
const processedContent = await executeShellCommandsInPrompt2(parsed.content, {
|
|
387838
|
-
...context,
|
|
387839
|
-
getAppState() {
|
|
387840
|
-
const appState = context.getAppState();
|
|
387841
|
-
return {
|
|
387842
|
-
...appState,
|
|
387843
|
-
toolPermissionContext: {
|
|
387844
|
-
...appState.toolPermissionContext,
|
|
387845
|
-
alwaysAllowRules: {
|
|
387846
|
-
...appState.toolPermissionContext.alwaysAllowRules,
|
|
387847
|
-
command: allowedTools
|
|
387848
|
-
}
|
|
387849
|
-
}
|
|
387850
|
-
};
|
|
387851
|
-
}
|
|
387852
|
-
}, "security-review");
|
|
387853
|
-
return [
|
|
387854
|
-
{
|
|
387855
|
-
type: "text",
|
|
387856
|
-
text: processedContent
|
|
387857
|
-
}
|
|
387858
|
-
];
|
|
387859
|
-
}
|
|
387860
|
-
});
|
|
387861
|
-
});
|
|
387862
|
-
|
|
387863
|
-
// src/tui/commands/bughunter/index.js
|
|
387864
|
-
var bughunter_default;
|
|
387865
|
-
var init_bughunter = __esm(() => {
|
|
387866
|
-
bughunter_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
387867
|
-
});
|
|
387868
|
-
|
|
387869
387362
|
// src/tui/commands/terminalSetup/index.ts
|
|
387870
387363
|
var NATIVE_CSIU_TERMINALS2, terminalSetup, terminalSetup_default;
|
|
387871
387364
|
var init_terminalSetup2 = __esm(() => {
|
|
@@ -387889,9 +387382,9 @@ var init_terminalSetup2 = __esm(() => {
|
|
|
387889
387382
|
// src/tui/commands/usage/usage.tsx
|
|
387890
387383
|
var exports_usage2 = {};
|
|
387891
387384
|
__export(exports_usage2, {
|
|
387892
|
-
call: () =>
|
|
387385
|
+
call: () => call31
|
|
387893
387386
|
});
|
|
387894
|
-
var jsx_dev_runtime237,
|
|
387387
|
+
var jsx_dev_runtime237, call31 = async (onDone, context) => {
|
|
387895
387388
|
return /* @__PURE__ */ jsx_dev_runtime237.jsxDEV(Settings, {
|
|
387896
387389
|
onClose: onDone,
|
|
387897
387390
|
context,
|
|
@@ -387918,7 +387411,7 @@ var init_usage4 = __esm(() => {
|
|
|
387918
387411
|
// src/tui/commands/theme/theme.tsx
|
|
387919
387412
|
var exports_theme = {};
|
|
387920
387413
|
__export(exports_theme, {
|
|
387921
|
-
call: () =>
|
|
387414
|
+
call: () => call32
|
|
387922
387415
|
});
|
|
387923
387416
|
function ThemePickerCommand(t0) {
|
|
387924
387417
|
const $ = import_compiler_runtime189.c(8);
|
|
@@ -387968,7 +387461,7 @@ function ThemePickerCommand(t0) {
|
|
|
387968
387461
|
}
|
|
387969
387462
|
return t3;
|
|
387970
387463
|
}
|
|
387971
|
-
var import_compiler_runtime189, jsx_dev_runtime238,
|
|
387464
|
+
var import_compiler_runtime189, jsx_dev_runtime238, call32 = async (onDone, _context) => {
|
|
387972
387465
|
return /* @__PURE__ */ jsx_dev_runtime238.jsxDEV(ThemePickerCommand, {
|
|
387973
387466
|
onDone
|
|
387974
387467
|
}, undefined, false, undefined, this);
|
|
@@ -387996,9 +387489,9 @@ var init_theme3 = __esm(() => {
|
|
|
387996
387489
|
// src/tui/commands/vim/vim.ts
|
|
387997
387490
|
var exports_vim = {};
|
|
387998
387491
|
__export(exports_vim, {
|
|
387999
|
-
call: () =>
|
|
387492
|
+
call: () => call33
|
|
388000
387493
|
});
|
|
388001
|
-
var
|
|
387494
|
+
var call33 = async () => {
|
|
388002
387495
|
const config = getGlobalConfig();
|
|
388003
387496
|
let currentMode = config.editorMode || "normal";
|
|
388004
387497
|
if (currentMode === "emacs") {
|
|
@@ -388710,7 +388203,7 @@ var init_pluginOperations = __esm(() => {
|
|
|
388710
388203
|
// src/tui/commands/thinkback/thinkback.tsx
|
|
388711
388204
|
var exports_thinkback = {};
|
|
388712
388205
|
__export(exports_thinkback, {
|
|
388713
|
-
call: () =>
|
|
388206
|
+
call: () => call34,
|
|
388714
388207
|
playAnimation: () => playAnimation
|
|
388715
388208
|
});
|
|
388716
388209
|
import { readFile as readFile49 } from "fs/promises";
|
|
@@ -389248,7 +388741,7 @@ function ThinkbackFlow(t0) {
|
|
|
389248
388741
|
}
|
|
389249
388742
|
return t8;
|
|
389250
388743
|
}
|
|
389251
|
-
async function
|
|
388744
|
+
async function call34(onDone) {
|
|
389252
388745
|
return /* @__PURE__ */ jsx_dev_runtime239.jsxDEV(ThinkbackFlow, {
|
|
389253
388746
|
onDone
|
|
389254
388747
|
}, undefined, false, undefined, this);
|
|
@@ -389296,13 +388789,13 @@ var init_thinkback2 = __esm(() => {
|
|
|
389296
388789
|
// src/tui/commands/thinkback-play/thinkback-play.ts
|
|
389297
388790
|
var exports_thinkback_play = {};
|
|
389298
388791
|
__export(exports_thinkback_play, {
|
|
389299
|
-
call: () =>
|
|
388792
|
+
call: () => call35
|
|
389300
388793
|
});
|
|
389301
388794
|
import { join as join144 } from "path";
|
|
389302
388795
|
function getPluginId2() {
|
|
389303
388796
|
return `thinkback@${OFFICIAL_MARKETPLACE_NAME}`;
|
|
389304
388797
|
}
|
|
389305
|
-
async function
|
|
388798
|
+
async function call35() {
|
|
389306
388799
|
const v2Data = loadInstalledPluginsV2();
|
|
389307
388800
|
const pluginId = getPluginId2();
|
|
389308
388801
|
const installations = v2Data.plugins[pluginId];
|
|
@@ -391804,9 +391297,9 @@ var init_PermissionRuleList = __esm(() => {
|
|
|
391804
391297
|
// src/tui/commands/permissions/permissions.tsx
|
|
391805
391298
|
var exports_permissions2 = {};
|
|
391806
391299
|
__export(exports_permissions2, {
|
|
391807
|
-
call: () =>
|
|
391300
|
+
call: () => call36
|
|
391808
391301
|
});
|
|
391809
|
-
var jsx_dev_runtime247,
|
|
391302
|
+
var jsx_dev_runtime247, call36 = async (onDone, context) => {
|
|
391810
391303
|
return /* @__PURE__ */ jsx_dev_runtime247.jsxDEV(PermissionRuleList, {
|
|
391811
391304
|
onExit: onDone,
|
|
391812
391305
|
onRetryDenials: (commands) => {
|
|
@@ -391836,7 +391329,7 @@ var init_permissions8 = __esm(() => {
|
|
|
391836
391329
|
// src/tui/commands/plan/plan.tsx
|
|
391837
391330
|
var exports_plan = {};
|
|
391838
391331
|
__export(exports_plan, {
|
|
391839
|
-
call: () =>
|
|
391332
|
+
call: () => call37
|
|
391840
391333
|
});
|
|
391841
391334
|
function PlanDisplay(t0) {
|
|
391842
391335
|
const $ = import_compiler_runtime198.c(11);
|
|
@@ -391924,7 +391417,7 @@ function PlanDisplay(t0) {
|
|
|
391924
391417
|
}
|
|
391925
391418
|
return t5;
|
|
391926
391419
|
}
|
|
391927
|
-
async function
|
|
391420
|
+
async function call37(onDone, context, args) {
|
|
391928
391421
|
const {
|
|
391929
391422
|
getAppState,
|
|
391930
391423
|
setAppState
|
|
@@ -393762,9 +393255,9 @@ var init_HooksConfigMenu = __esm(() => {
|
|
|
393762
393255
|
// src/tui/commands/hooks/hooks.tsx
|
|
393763
393256
|
var exports_hooks = {};
|
|
393764
393257
|
__export(exports_hooks, {
|
|
393765
|
-
call: () =>
|
|
393258
|
+
call: () => call38
|
|
393766
393259
|
});
|
|
393767
|
-
var jsx_dev_runtime254,
|
|
393260
|
+
var jsx_dev_runtime254, call38 = async (onDone, context) => {
|
|
393768
393261
|
const appState = context.getAppState();
|
|
393769
393262
|
const permissionContext = appState.toolPermissionContext;
|
|
393770
393263
|
const toolNames = getTools2(permissionContext).map((tool) => tool.name);
|
|
@@ -393795,10 +393288,10 @@ var init_hooks5 = __esm(() => {
|
|
|
393795
393288
|
// src/tui/commands/files/files.ts
|
|
393796
393289
|
var exports_files4 = {};
|
|
393797
393290
|
__export(exports_files4, {
|
|
393798
|
-
call: () =>
|
|
393291
|
+
call: () => call39
|
|
393799
393292
|
});
|
|
393800
393293
|
import { relative as relative27 } from "path";
|
|
393801
|
-
async function
|
|
393294
|
+
async function call39(_args, context) {
|
|
393802
393295
|
const files = context.readFileState ? cacheKeys(context.readFileState) : [];
|
|
393803
393296
|
if (files.length === 0) {
|
|
393804
393297
|
return { type: "text", value: "No files in context" };
|
|
@@ -393820,7 +393313,7 @@ var init_files8 = __esm(() => {
|
|
|
393820
393313
|
type: "local",
|
|
393821
393314
|
name: "files",
|
|
393822
393315
|
description: "List all files currently in context",
|
|
393823
|
-
isEnabled: () =>
|
|
393316
|
+
isEnabled: () => true,
|
|
393824
393317
|
supportsNonInteractive: true,
|
|
393825
393318
|
load: () => Promise.resolve().then(() => (init_files7(), exports_files4))
|
|
393826
393319
|
};
|
|
@@ -393830,7 +393323,7 @@ var init_files8 = __esm(() => {
|
|
|
393830
393323
|
// src/tui/commands/branch/branch.ts
|
|
393831
393324
|
var exports_branch = {};
|
|
393832
393325
|
__export(exports_branch, {
|
|
393833
|
-
call: () =>
|
|
393326
|
+
call: () => call40,
|
|
393834
393327
|
createFork: () => createFork,
|
|
393835
393328
|
deriveFirstPrompt: () => deriveFirstPrompt,
|
|
393836
393329
|
getUniqueForkName: () => getUniqueForkName
|
|
@@ -393939,7 +393432,7 @@ async function getUniqueForkName(baseName) {
|
|
|
393939
393432
|
}
|
|
393940
393433
|
return `${baseName} (Branch ${nextNumber})`;
|
|
393941
393434
|
}
|
|
393942
|
-
async function
|
|
393435
|
+
async function call40(onDone, context, args) {
|
|
393943
393436
|
const customTitle = args?.trim() || undefined;
|
|
393944
393437
|
const originalSessionId = getSessionId();
|
|
393945
393438
|
try {
|
|
@@ -399983,9 +399476,9 @@ var init_AgentsMenu = __esm(() => {
|
|
|
399983
399476
|
// src/tui/commands/agents/agents.tsx
|
|
399984
399477
|
var exports_agents2 = {};
|
|
399985
399478
|
__export(exports_agents2, {
|
|
399986
|
-
call: () =>
|
|
399479
|
+
call: () => call41
|
|
399987
399480
|
});
|
|
399988
|
-
async function
|
|
399481
|
+
async function call41(onDone, context) {
|
|
399989
399482
|
const appState = context.getAppState();
|
|
399990
399483
|
const permissionContext = appState.toolPermissionContext;
|
|
399991
399484
|
const tools = getTools2(permissionContext);
|
|
@@ -410274,9 +409767,9 @@ var init_PluginSettings = __esm(() => {
|
|
|
410274
409767
|
// src/tui/commands/plugin/plugin.tsx
|
|
410275
409768
|
var exports_plugin = {};
|
|
410276
409769
|
__export(exports_plugin, {
|
|
410277
|
-
call: () =>
|
|
409770
|
+
call: () => call42
|
|
410278
409771
|
});
|
|
410279
|
-
async function
|
|
409772
|
+
async function call42(onDone, _context, args) {
|
|
410280
409773
|
return /* @__PURE__ */ jsx_dev_runtime294.jsxDEV(PluginSettings, {
|
|
410281
409774
|
onComplete: onDone,
|
|
410282
409775
|
args
|
|
@@ -410305,12 +409798,12 @@ var init_plugin3 = __esm(() => {
|
|
|
410305
409798
|
// src/tui/commands/reload-plugins/reload-plugins.ts
|
|
410306
409799
|
var exports_reload_plugins = {};
|
|
410307
409800
|
__export(exports_reload_plugins, {
|
|
410308
|
-
call: () =>
|
|
409801
|
+
call: () => call43
|
|
410309
409802
|
});
|
|
410310
409803
|
function n2(count, noun) {
|
|
410311
409804
|
return `${count} ${plural2(count, noun)}`;
|
|
410312
409805
|
}
|
|
410313
|
-
var
|
|
409806
|
+
var call43 = async (_args, context) => {
|
|
410314
409807
|
const r = await refreshActivePlugins(context.setAppState);
|
|
410315
409808
|
const parts = [
|
|
410316
409809
|
n2(r.enabled_count, "plugin"),
|
|
@@ -410348,9 +409841,9 @@ var init_reload_plugins2 = __esm(() => {
|
|
|
410348
409841
|
// src/tui/commands/rewind/rewind.ts
|
|
410349
409842
|
var exports_rewind = {};
|
|
410350
409843
|
__export(exports_rewind, {
|
|
410351
|
-
call: () =>
|
|
409844
|
+
call: () => call44
|
|
410352
409845
|
});
|
|
410353
|
-
async function
|
|
409846
|
+
async function call44(_args, context) {
|
|
410354
409847
|
if (context.openMessageSelector) {
|
|
410355
409848
|
context.openMessageSelector();
|
|
410356
409849
|
}
|
|
@@ -410523,9 +410016,9 @@ var init_heapDumpService = __esm(() => {
|
|
|
410523
410016
|
// src/tui/commands/heapdump/heapdump.ts
|
|
410524
410017
|
var exports_heapdump = {};
|
|
410525
410018
|
__export(exports_heapdump, {
|
|
410526
|
-
call: () =>
|
|
410019
|
+
call: () => call45
|
|
410527
410020
|
});
|
|
410528
|
-
async function
|
|
410021
|
+
async function call45() {
|
|
410529
410022
|
const result = await performHeapDump();
|
|
410530
410023
|
if (!result.success) {
|
|
410531
410024
|
return {
|
|
@@ -410558,7 +410051,7 @@ var init_heapdump2 = __esm(() => {
|
|
|
410558
410051
|
});
|
|
410559
410052
|
|
|
410560
410053
|
// src/tui/commands/version.ts
|
|
410561
|
-
var
|
|
410054
|
+
var call46 = async () => {
|
|
410562
410055
|
return {
|
|
410563
410056
|
type: "text",
|
|
410564
410057
|
value: MACRO.BUILD_TIME ? `${MACRO.VERSION} (built ${MACRO.BUILD_TIME})` : MACRO.VERSION
|
|
@@ -410569,25 +410062,13 @@ var init_version = __esm(() => {
|
|
|
410569
410062
|
type: "local",
|
|
410570
410063
|
name: "version",
|
|
410571
410064
|
description: "Print the version this session is running (not what autoupdate downloaded)",
|
|
410572
|
-
isEnabled: () =>
|
|
410065
|
+
isEnabled: () => true,
|
|
410573
410066
|
supportsNonInteractive: true,
|
|
410574
|
-
load: () => Promise.resolve({ call:
|
|
410067
|
+
load: () => Promise.resolve({ call: call46 })
|
|
410575
410068
|
};
|
|
410576
410069
|
version_default = version2;
|
|
410577
410070
|
});
|
|
410578
410071
|
|
|
410579
|
-
// src/tui/commands/summary/index.js
|
|
410580
|
-
var summary_default;
|
|
410581
|
-
var init_summary = __esm(() => {
|
|
410582
|
-
summary_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
410583
|
-
});
|
|
410584
|
-
|
|
410585
|
-
// src/tui/commands/perf-issue/index.js
|
|
410586
|
-
var perf_issue_default;
|
|
410587
|
-
var init_perf_issue = __esm(() => {
|
|
410588
|
-
perf_issue_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
410589
|
-
});
|
|
410590
|
-
|
|
410591
410072
|
// src/tui/components/sandbox/SandboxConfigTab.tsx
|
|
410592
410073
|
function SandboxConfigTab() {
|
|
410593
410074
|
const $ = import_compiler_runtime232.c(3);
|
|
@@ -411689,10 +411170,10 @@ var init_SandboxSettings = __esm(() => {
|
|
|
411689
411170
|
// src/tui/commands/sandbox-toggle/sandbox-toggle.tsx
|
|
411690
411171
|
var exports_sandbox_toggle = {};
|
|
411691
411172
|
__export(exports_sandbox_toggle, {
|
|
411692
|
-
call: () =>
|
|
411173
|
+
call: () => call47
|
|
411693
411174
|
});
|
|
411694
411175
|
import { relative as relative28 } from "path";
|
|
411695
|
-
async function
|
|
411176
|
+
async function call47(onDone, _context, args) {
|
|
411696
411177
|
const settings = getSettings_DEPRECATED();
|
|
411697
411178
|
const themeName = settings.theme || "light";
|
|
411698
411179
|
const platform = getPlatform3();
|
|
@@ -411799,9 +411280,9 @@ var init_sandbox_toggle2 = __esm(() => {
|
|
|
411799
411280
|
// src/tui/commands/stickers/stickers.ts
|
|
411800
411281
|
var exports_stickers = {};
|
|
411801
411282
|
__export(exports_stickers, {
|
|
411802
|
-
call: () =>
|
|
411283
|
+
call: () => call48
|
|
411803
411284
|
});
|
|
411804
|
-
async function
|
|
411285
|
+
async function call48() {
|
|
411805
411286
|
const url = "https://www.stickermule.com/claudecode";
|
|
411806
411287
|
const success = await openBrowser(url);
|
|
411807
411288
|
if (success) {
|
|
@@ -411946,12 +411427,6 @@ var init_bundledSkills2 = __esm(() => {
|
|
|
411946
411427
|
SAFE_WRITE_FLAGS2 = process.platform === "win32" ? "wx" : fsConstants8.O_WRONLY | fsConstants8.O_CREAT | fsConstants8.O_EXCL | O_NOFOLLOW3;
|
|
411947
411428
|
});
|
|
411948
411429
|
|
|
411949
|
-
// src/tui/commands/env/index.js
|
|
411950
|
-
var env_default;
|
|
411951
|
-
var init_env3 = __esm(() => {
|
|
411952
|
-
env_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
411953
|
-
});
|
|
411954
|
-
|
|
411955
411430
|
// src/tui/components/WorktreeExitDialog.tsx
|
|
411956
411431
|
function recordWorktreeExit() {
|
|
411957
411432
|
(init_sessionStorage(), __toCommonJS(exports_sessionStorage)).saveWorktreeState(null);
|
|
@@ -412341,13 +411816,13 @@ var init_concurrentSessions2 = __esm(() => {
|
|
|
412341
411816
|
// src/tui/commands/exit/exit.tsx
|
|
412342
411817
|
var exports_exit = {};
|
|
412343
411818
|
__export(exports_exit, {
|
|
412344
|
-
call: () =>
|
|
411819
|
+
call: () => call49
|
|
412345
411820
|
});
|
|
412346
411821
|
import { spawnSync as spawnSync5 } from "child_process";
|
|
412347
411822
|
function getRandomGoodbyeMessage2() {
|
|
412348
411823
|
return sample_default(GOODBYE_MESSAGES2) ?? "Goodbye!";
|
|
412349
411824
|
}
|
|
412350
|
-
async function
|
|
411825
|
+
async function call49(onDone) {
|
|
412351
411826
|
if (feature("BG_SESSIONS") && isBgSession2()) {
|
|
412352
411827
|
onDone();
|
|
412353
411828
|
spawnSync5("tmux", ["detach-client"], {
|
|
@@ -412646,7 +412121,7 @@ var init_exportRenderer = __esm(() => {
|
|
|
412646
412121
|
// src/tui/commands/export/export.tsx
|
|
412647
412122
|
var exports_export = {};
|
|
412648
412123
|
__export(exports_export, {
|
|
412649
|
-
call: () =>
|
|
412124
|
+
call: () => call50,
|
|
412650
412125
|
extractFirstPrompt: () => extractFirstPrompt2,
|
|
412651
412126
|
sanitizeFilename: () => sanitizeFilename
|
|
412652
412127
|
});
|
|
@@ -412689,7 +412164,7 @@ async function exportWithReactRenderer(context) {
|
|
|
412689
412164
|
const tools = context.options.tools || [];
|
|
412690
412165
|
return renderMessagesToPlainText(context.messages, tools);
|
|
412691
412166
|
}
|
|
412692
|
-
async function
|
|
412167
|
+
async function call50(onDone, context, args) {
|
|
412693
412168
|
const content = await exportWithReactRenderer(context);
|
|
412694
412169
|
const filename = args.trim();
|
|
412695
412170
|
if (filename) {
|
|
@@ -412754,7 +412229,7 @@ function shouldInferenceConfigCommandBeImmediate() {
|
|
|
412754
412229
|
// src/tui/commands/model/model.tsx
|
|
412755
412230
|
var exports_model = {};
|
|
412756
412231
|
__export(exports_model, {
|
|
412757
|
-
call: () =>
|
|
412232
|
+
call: () => call51
|
|
412758
412233
|
});
|
|
412759
412234
|
function ModelPickerWrapper(t0) {
|
|
412760
412235
|
const $ = import_compiler_runtime237.c(17);
|
|
@@ -412930,7 +412405,7 @@ function renderModelLabel(model) {
|
|
|
412930
412405
|
const rendered = renderDefaultModelSetting(model ?? getDefaultMainLoopModelSetting());
|
|
412931
412406
|
return model === null ? `${rendered} (default)` : rendered;
|
|
412932
412407
|
}
|
|
412933
|
-
var import_compiler_runtime237, React90, jsx_dev_runtime306,
|
|
412408
|
+
var import_compiler_runtime237, React90, jsx_dev_runtime306, call51 = async (onDone, _context, args) => {
|
|
412934
412409
|
args = args?.trim() || "";
|
|
412935
412410
|
if (COMMON_INFO_ARGS.includes(args)) {
|
|
412936
412411
|
return /* @__PURE__ */ jsx_dev_runtime306.jsxDEV(ShowModelAndClose, {
|
|
@@ -412989,7 +412464,7 @@ var init_model3 = __esm(() => {
|
|
|
412989
412464
|
// src/tui/commands/tag/tag.tsx
|
|
412990
412465
|
var exports_tag = {};
|
|
412991
412466
|
__export(exports_tag, {
|
|
412992
|
-
call: () =>
|
|
412467
|
+
call: () => call52
|
|
412993
412468
|
});
|
|
412994
412469
|
function ConfirmRemoveTag(t0) {
|
|
412995
412470
|
const $ = import_compiler_runtime238.c(11);
|
|
@@ -413207,7 +412682,7 @@ Examples:
|
|
|
413207
412682
|
React91.useEffect(t1, t2);
|
|
413208
412683
|
return null;
|
|
413209
412684
|
}
|
|
413210
|
-
async function
|
|
412685
|
+
async function call52(onDone, _context, args) {
|
|
413211
412686
|
args = args?.trim() || "";
|
|
413212
412687
|
if (COMMON_INFO_ARGS.includes(args) || COMMON_HELP_ARGS.includes(args)) {
|
|
413213
412688
|
return /* @__PURE__ */ jsx_dev_runtime307.jsxDEV(ShowHelp, {
|
|
@@ -413245,62 +412720,13 @@ var init_tag2 = __esm(() => {
|
|
|
413245
412720
|
type: "local-jsx",
|
|
413246
412721
|
name: "tag",
|
|
413247
412722
|
description: "Toggle a searchable tag on the current session",
|
|
413248
|
-
isEnabled: () =>
|
|
412723
|
+
isEnabled: () => true,
|
|
413249
412724
|
argumentHint: "<tag-name>",
|
|
413250
412725
|
load: () => Promise.resolve().then(() => (init_tag(), exports_tag))
|
|
413251
412726
|
};
|
|
413252
412727
|
tag_default = tag;
|
|
413253
412728
|
});
|
|
413254
412729
|
|
|
413255
|
-
// src/tui/commands/output-style/output-style.tsx
|
|
413256
|
-
var exports_output_style = {};
|
|
413257
|
-
__export(exports_output_style, {
|
|
413258
|
-
call: () => call54
|
|
413259
|
-
});
|
|
413260
|
-
async function call54(onDone) {
|
|
413261
|
-
onDone("/output-style has been deprecated. Use /config to change your output style, or set it in your settings file. Changes take effect on the next session.", {
|
|
413262
|
-
display: "system"
|
|
413263
|
-
});
|
|
413264
|
-
}
|
|
413265
|
-
|
|
413266
|
-
// src/tui/commands/output-style/index.ts
|
|
413267
|
-
var outputStyle, output_style_default;
|
|
413268
|
-
var init_output_style = __esm(() => {
|
|
413269
|
-
outputStyle = {
|
|
413270
|
-
type: "local-jsx",
|
|
413271
|
-
name: "output-style",
|
|
413272
|
-
description: "Deprecated: use /config to change output style",
|
|
413273
|
-
isHidden: true,
|
|
413274
|
-
load: () => Promise.resolve().then(() => exports_output_style)
|
|
413275
|
-
};
|
|
413276
|
-
output_style_default = outputStyle;
|
|
413277
|
-
});
|
|
413278
|
-
|
|
413279
|
-
// src/tui/commands/statusline.tsx
|
|
413280
|
-
var statusline, statusline_default;
|
|
413281
|
-
var init_statusline = __esm(() => {
|
|
413282
|
-
init_constants6();
|
|
413283
|
-
statusline = {
|
|
413284
|
-
type: "prompt",
|
|
413285
|
-
description: "Set up Atlas's status line UI with segment-based configuration",
|
|
413286
|
-
contentLength: 0,
|
|
413287
|
-
aliases: [],
|
|
413288
|
-
name: "statusline",
|
|
413289
|
-
progressMessage: "setting up statusLine",
|
|
413290
|
-
allowedTools: [AGENT_TOOL_NAME2, "Read(~/**)", "Edit(~/.atlas/statusline.json)"],
|
|
413291
|
-
source: "builtin",
|
|
413292
|
-
disableNonInteractive: true,
|
|
413293
|
-
async getPromptForCommand(args) {
|
|
413294
|
-
const prompt = args.trim() || "Configure my status line with model, thinking level, git branch, cwd, context bar, git files, and tok/s";
|
|
413295
|
-
return [{
|
|
413296
|
-
type: "text",
|
|
413297
|
-
text: `Create an ${AGENT_TOOL_NAME2} with subagent_type "statusline-setup" and the prompt "${prompt}"`
|
|
413298
|
-
}];
|
|
413299
|
-
}
|
|
413300
|
-
};
|
|
413301
|
-
statusline_default = statusline;
|
|
413302
|
-
});
|
|
413303
|
-
|
|
413304
412730
|
// src/tui/commands/sessionlist.tsx
|
|
413305
412731
|
var sessionlist;
|
|
413306
412732
|
var init_sessionlist = __esm(() => {
|
|
@@ -413328,7 +412754,7 @@ var init_sessionlist = __esm(() => {
|
|
|
413328
412754
|
// src/tui/commands/effort/effort.tsx
|
|
413329
412755
|
var exports_effort = {};
|
|
413330
412756
|
__export(exports_effort, {
|
|
413331
|
-
call: () =>
|
|
412757
|
+
call: () => call53,
|
|
413332
412758
|
executeEffort: () => executeEffort,
|
|
413333
412759
|
showCurrentEffort: () => showCurrentEffort
|
|
413334
412760
|
});
|
|
@@ -413477,7 +412903,7 @@ function ApplyEffortAndClose(t0) {
|
|
|
413477
412903
|
React92.useEffect(t1, t2);
|
|
413478
412904
|
return null;
|
|
413479
412905
|
}
|
|
413480
|
-
async function
|
|
412906
|
+
async function call53(onDone, _context, args) {
|
|
413481
412907
|
args = args?.trim() || "";
|
|
413482
412908
|
if (COMMON_HELP_ARGS2.includes(args)) {
|
|
413483
412909
|
onDone(`Usage: /effort [low|medium|high|xhigh|max|auto]
|
|
@@ -416501,9 +415927,9 @@ var init_Stats = __esm(() => {
|
|
|
416501
415927
|
// src/tui/commands/stats/stats.tsx
|
|
416502
415928
|
var exports_stats = {};
|
|
416503
415929
|
__export(exports_stats, {
|
|
416504
|
-
call: () =>
|
|
415930
|
+
call: () => call54
|
|
416505
415931
|
});
|
|
416506
|
-
var jsx_dev_runtime310,
|
|
415932
|
+
var jsx_dev_runtime310, call54 = async (onDone) => {
|
|
416507
415933
|
return /* @__PURE__ */ jsx_dev_runtime310.jsxDEV(Stats2, {
|
|
416508
415934
|
onClose: onDone
|
|
416509
415935
|
}, undefined, false, undefined, this);
|
|
@@ -416525,18 +415951,6 @@ var init_stats3 = __esm(() => {
|
|
|
416525
415951
|
stats_default = stats;
|
|
416526
415952
|
});
|
|
416527
415953
|
|
|
416528
|
-
// src/tui/commands/oauth-refresh/index.js
|
|
416529
|
-
var oauth_refresh_default;
|
|
416530
|
-
var init_oauth_refresh = __esm(() => {
|
|
416531
|
-
oauth_refresh_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
416532
|
-
});
|
|
416533
|
-
|
|
416534
|
-
// src/tui/commands/debug-tool-call/index.js
|
|
416535
|
-
var debug_tool_call_default;
|
|
416536
|
-
var init_debug_tool_call = __esm(() => {
|
|
416537
|
-
debug_tool_call_default = { isEnabled: () => false, isHidden: true, name: "stub" };
|
|
416538
|
-
});
|
|
416539
|
-
|
|
416540
415954
|
// src/tui/types/command.ts
|
|
416541
415955
|
function getCommandName2(cmd) {
|
|
416542
415956
|
return cmd.userFacingName?.() ?? cmd.name;
|
|
@@ -417267,9 +416681,9 @@ var init_useVoice = __esm(() => {
|
|
|
417267
416681
|
// src/tui/commands/voice/voice.ts
|
|
417268
416682
|
var exports_voice3 = {};
|
|
417269
416683
|
__export(exports_voice3, {
|
|
417270
|
-
call: () =>
|
|
416684
|
+
call: () => call55
|
|
417271
416685
|
});
|
|
417272
|
-
var LANG_HINT_MAX_SHOWS = 2,
|
|
416686
|
+
var LANG_HINT_MAX_SHOWS = 2, call55 = async () => {
|
|
417273
416687
|
if (!isVoiceModeEnabled()) {
|
|
417274
416688
|
return {
|
|
417275
416689
|
type: "text",
|
|
@@ -417436,13 +416850,6 @@ var init_workflows = __esm(() => {
|
|
|
417436
416850
|
workflows_default = _default2;
|
|
417437
416851
|
});
|
|
417438
416852
|
|
|
417439
|
-
// src/tui/commands/torch.ts
|
|
417440
|
-
var exports_torch = {};
|
|
417441
|
-
__export(exports_torch, {
|
|
417442
|
-
default: () => torch_default
|
|
417443
|
-
});
|
|
417444
|
-
var torch_default = null;
|
|
417445
|
-
|
|
417446
416853
|
// src/tui/commands/peers/index.ts
|
|
417447
416854
|
var exports_peers = {};
|
|
417448
416855
|
__export(exports_peers, {
|
|
@@ -419606,14 +419013,10 @@ function formatDescriptionWithSource2(cmd) {
|
|
|
419606
419013
|
}
|
|
419607
419014
|
return `${cmd.description} (${getSettingSourceName(cmd.source)})`;
|
|
419608
419015
|
}
|
|
419609
|
-
var IS_ATLAS_DEV2, agentsPlatform, voiceCommand, forceSnip, workflowsCmd,
|
|
419016
|
+
var IS_ATLAS_DEV2, agentsPlatform, voiceCommand, forceSnip, workflowsCmd, peersCmd, forkCmd, usageReport2, INTERNAL_ONLY_COMMANDS2, COMMANDS, builtInCommandNames3, loadAllCommands2, getSkillToolCommands2, getSlashCommandToolSkills2, REMOTE_SAFE_COMMANDS, BRIDGE_SAFE_COMMANDS;
|
|
419610
419017
|
var init_commands5 = __esm(() => {
|
|
419611
419018
|
init_add_dir2();
|
|
419612
|
-
init_autofix_pr();
|
|
419613
|
-
init_backfill_sessions();
|
|
419614
419019
|
init_btw2();
|
|
419615
|
-
init_good_atlas();
|
|
419616
|
-
init_issue();
|
|
419617
419020
|
init_feedback2();
|
|
419618
419021
|
init_clear2();
|
|
419619
419022
|
init_color3();
|
|
@@ -419626,7 +419029,6 @@ var init_commands5 = __esm(() => {
|
|
|
419626
419029
|
init_context4();
|
|
419627
419030
|
init_cost2();
|
|
419628
419031
|
init_diff4();
|
|
419629
|
-
init_ctx_viz();
|
|
419630
419032
|
init_doctor2();
|
|
419631
419033
|
init_memory3();
|
|
419632
419034
|
init_help3();
|
|
@@ -419636,23 +419038,16 @@ var init_commands5 = __esm(() => {
|
|
|
419636
419038
|
init_keybindings2();
|
|
419637
419039
|
init_login2();
|
|
419638
419040
|
init_logout2();
|
|
419639
|
-
init_install_slack_app2();
|
|
419640
|
-
init_break_cache();
|
|
419641
419041
|
init_mcp7();
|
|
419642
|
-
init_onboarding();
|
|
419643
|
-
init_pr_comments();
|
|
419644
419042
|
init_release_notes2();
|
|
419645
419043
|
init_rename2();
|
|
419646
419044
|
init_resume2();
|
|
419647
419045
|
init_review();
|
|
419648
419046
|
init_session3();
|
|
419649
|
-
init_share();
|
|
419650
419047
|
init_skills3();
|
|
419651
419048
|
init_status3();
|
|
419652
419049
|
init_tasks8();
|
|
419653
419050
|
init_tasklist2();
|
|
419654
|
-
init_security_review();
|
|
419655
|
-
init_bughunter();
|
|
419656
419051
|
init_terminalSetup2();
|
|
419657
419052
|
init_usage4();
|
|
419658
419053
|
init_theme3();
|
|
@@ -419671,8 +419066,6 @@ var init_commands5 = __esm(() => {
|
|
|
419671
419066
|
init_rewind();
|
|
419672
419067
|
init_heapdump2();
|
|
419673
419068
|
init_version();
|
|
419674
|
-
init_summary();
|
|
419675
|
-
init_perf_issue();
|
|
419676
419069
|
init_sandbox_toggle2();
|
|
419677
419070
|
init_stickers2();
|
|
419678
419071
|
init_log5();
|
|
@@ -419683,25 +419076,19 @@ var init_commands5 = __esm(() => {
|
|
|
419683
419076
|
init_builtinPlugins();
|
|
419684
419077
|
init_loadPluginCommands();
|
|
419685
419078
|
init_memoize();
|
|
419686
|
-
init_env3();
|
|
419687
419079
|
init_exit2();
|
|
419688
419080
|
init_export2();
|
|
419689
419081
|
init_model3();
|
|
419690
419082
|
init_tag2();
|
|
419691
|
-
init_output_style();
|
|
419692
|
-
init_statusline();
|
|
419693
419083
|
init_sessionlist();
|
|
419694
419084
|
init_effort4();
|
|
419695
419085
|
init_stats3();
|
|
419696
|
-
init_oauth_refresh();
|
|
419697
|
-
init_debug_tool_call();
|
|
419698
419086
|
init_constants5();
|
|
419699
419087
|
IS_ATLAS_DEV2 = process.env.ATLAS_DEV === "1" || process.env.ATLAS_DEV === "true";
|
|
419700
419088
|
agentsPlatform = IS_ATLAS_DEV2 ? __toCommonJS(exports_agents_platform).default : null;
|
|
419701
419089
|
voiceCommand = feature("VOICE_MODE") ? (init_voice4(), __toCommonJS(exports_voice4)).default : null;
|
|
419702
419090
|
forceSnip = feature("HISTORY_SNIP") ? (init_force_snip(), __toCommonJS(exports_force_snip)).default : null;
|
|
419703
419091
|
workflowsCmd = feature("WORKFLOW_SCRIPTS") ? (init_workflows(), __toCommonJS(exports_workflows)).default : null;
|
|
419704
|
-
torch = feature("TORCH") ? __toCommonJS(exports_torch).default : null;
|
|
419705
419092
|
peersCmd = feature("UDS_INBOX") ? (init_peers(), __toCommonJS(exports_peers)).default : null;
|
|
419706
419093
|
forkCmd = feature("FORK_SUBAGENT") ? (init_fork(), __toCommonJS(exports_fork)).default : null;
|
|
419707
419094
|
usageReport2 = {
|
|
@@ -419719,26 +419106,12 @@ var init_commands5 = __esm(() => {
|
|
|
419719
419106
|
}
|
|
419720
419107
|
};
|
|
419721
419108
|
INTERNAL_ONLY_COMMANDS2 = [
|
|
419722
|
-
backfill_sessions_default,
|
|
419723
|
-
break_cache_default,
|
|
419724
|
-
bughunter_default,
|
|
419725
419109
|
commit_default,
|
|
419726
419110
|
commit_push_pr_default,
|
|
419727
|
-
ctx_viz_default,
|
|
419728
|
-
good_atlas_default,
|
|
419729
|
-
issue_default,
|
|
419730
419111
|
init_verifiers_default,
|
|
419731
419112
|
...forceSnip ? [forceSnip] : [],
|
|
419732
419113
|
version_default,
|
|
419733
|
-
|
|
419734
|
-
share_default,
|
|
419735
|
-
summary_default,
|
|
419736
|
-
perf_issue_default,
|
|
419737
|
-
env_default,
|
|
419738
|
-
oauth_refresh_default,
|
|
419739
|
-
debug_tool_call_default,
|
|
419740
|
-
agentsPlatform,
|
|
419741
|
-
autofix_pr_default
|
|
419114
|
+
agentsPlatform
|
|
419742
419115
|
].filter(Boolean);
|
|
419743
419116
|
COMMANDS = memoize_default(() => [
|
|
419744
419117
|
add_dir_default,
|
|
@@ -419764,13 +419137,10 @@ var init_commands5 = __esm(() => {
|
|
|
419764
419137
|
ide_default,
|
|
419765
419138
|
init_default3,
|
|
419766
419139
|
keybindings_default,
|
|
419767
|
-
install_slack_app_default,
|
|
419768
419140
|
mcp_default,
|
|
419769
419141
|
memory_default,
|
|
419770
419142
|
model_default,
|
|
419771
|
-
output_style_default,
|
|
419772
419143
|
plugin_default,
|
|
419773
|
-
pr_comments_default,
|
|
419774
419144
|
release_notes_default,
|
|
419775
419145
|
reload_plugins_default,
|
|
419776
419146
|
rename_default,
|
|
@@ -419779,7 +419149,6 @@ var init_commands5 = __esm(() => {
|
|
|
419779
419149
|
skills_default,
|
|
419780
419150
|
stats_default,
|
|
419781
419151
|
status_default,
|
|
419782
|
-
statusline_default,
|
|
419783
419152
|
sessionlist,
|
|
419784
419153
|
stickers_default,
|
|
419785
419154
|
tag_default,
|
|
@@ -419787,7 +419156,6 @@ var init_commands5 = __esm(() => {
|
|
|
419787
419156
|
feedback_default,
|
|
419788
419157
|
review_default,
|
|
419789
419158
|
rewind_default,
|
|
419790
|
-
security_review_default,
|
|
419791
419159
|
terminalSetup_default,
|
|
419792
419160
|
usage_default,
|
|
419793
419161
|
usageReport2,
|
|
@@ -419806,7 +419174,6 @@ var init_commands5 = __esm(() => {
|
|
|
419806
419174
|
tasks_default,
|
|
419807
419175
|
tasklist_default,
|
|
419808
419176
|
...workflowsCmd ? [workflowsCmd] : [],
|
|
419809
|
-
...torch ? [torch] : [],
|
|
419810
419177
|
...IS_ATLAS_DEV2 && !process.env.IS_DEMO ? INTERNAL_ONLY_COMMANDS2 : []
|
|
419811
419178
|
]);
|
|
419812
419179
|
builtInCommandNames3 = memoize_default(() => new Set(COMMANDS().flatMap((_) => [_.name, ..._.aliases ?? []])));
|
|
@@ -419859,7 +419226,6 @@ var init_commands5 = __esm(() => {
|
|
|
419859
419226
|
feedback_default,
|
|
419860
419227
|
plan_default,
|
|
419861
419228
|
keybindings_default,
|
|
419862
|
-
statusline_default,
|
|
419863
419229
|
sessionlist,
|
|
419864
419230
|
stickers_default
|
|
419865
419231
|
]);
|
|
@@ -419867,7 +419233,6 @@ var init_commands5 = __esm(() => {
|
|
|
419867
419233
|
compact_default,
|
|
419868
419234
|
clear_default,
|
|
419869
419235
|
cost_default,
|
|
419870
|
-
summary_default,
|
|
419871
419236
|
release_notes_default,
|
|
419872
419237
|
files_default
|
|
419873
419238
|
].filter((c) => c !== null));
|
package/package.json
CHANGED