@vantagesec/socc 0.1.14 → 0.1.15
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.mjs +42 -18
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -112869,7 +112869,7 @@ function printStartupScreen() {
|
|
|
112869
112869
|
const sLen = ` ● ${sL} Ready — type /help to begin`.length;
|
|
112870
112870
|
out.push(boxRow(sRow, W2, sLen));
|
|
112871
112871
|
out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
|
|
112872
|
-
out.push(` ${DIM}${rgb(...DIMCOL)}socc ${RESET}${rgb(...ACCENT)}v${"0.1.
|
|
112872
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}socc ${RESET}${rgb(...ACCENT)}v${"0.1.15"}${RESET}`);
|
|
112873
112873
|
out.push("");
|
|
112874
112874
|
process.stdout.write(out.join(`
|
|
112875
112875
|
`) + `
|
|
@@ -161388,7 +161388,7 @@ How to use the statusLine command:
|
|
|
161388
161388
|
"vim": { // Optional, only present when vim mode is enabled
|
|
161389
161389
|
"mode": "INSERT" | "NORMAL" // Current vim editor mode
|
|
161390
161390
|
},
|
|
161391
|
-
"agent": { // Optional, only present when
|
|
161391
|
+
"agent": { // Optional, only present when SOCC is started with --agent flag
|
|
161392
161392
|
"name": "string", // Agent name (e.g., "code-architect", "test-runner")
|
|
161393
161393
|
"type": "string" // Optional: Agent type identifier
|
|
161394
161394
|
},
|
|
@@ -161396,7 +161396,7 @@ How to use the statusLine command:
|
|
|
161396
161396
|
"name": "string", // Worktree name/slug (e.g., "my-feature")
|
|
161397
161397
|
"path": "string", // Full path to the worktree directory
|
|
161398
161398
|
"branch": "string", // Optional: Git branch name for the worktree
|
|
161399
|
-
"original_cwd": "string", // The directory
|
|
161399
|
+
"original_cwd": "string", // The directory SOCC was in before entering the worktree
|
|
161400
161400
|
"original_branch": "string" // Optional: Branch that was checked out before entering the worktree
|
|
161401
161401
|
}
|
|
161402
161402
|
}
|
|
@@ -373638,7 +373638,7 @@ function getAnthropicEnvMetadata() {
|
|
|
373638
373638
|
function getBuildAgeMinutes() {
|
|
373639
373639
|
if (false)
|
|
373640
373640
|
;
|
|
373641
|
-
const buildTime = new Date("2026-04-
|
|
373641
|
+
const buildTime = new Date("2026-04-13T17:17:55.615Z").getTime();
|
|
373642
373642
|
if (isNaN(buildTime))
|
|
373643
373643
|
return;
|
|
373644
373644
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -379428,6 +379428,7 @@ async function getAttachments(input, toolUseContext, ideSelection, queuedCommand
|
|
|
379428
379428
|
const isMainThread = !toolUseContext.agentId;
|
|
379429
379429
|
const userInputAttachments = input ? [
|
|
379430
379430
|
maybe("at_mentioned_files", () => processAtMentionedFiles(input, context5)),
|
|
379431
|
+
maybe("local_path_files", () => processStandaloneFilePaths(input, context5)),
|
|
379431
379432
|
maybe("mcp_resources", () => processMcpResourceAttachments(input, context5)),
|
|
379432
379433
|
maybe("agent_mentions", () => Promise.resolve(processAgentMentions(input, toolUseContext.options.agentDefinitions.activeAgents))),
|
|
379433
379434
|
...[]
|
|
@@ -379893,7 +379894,12 @@ async function getOpenedFileFromIDE(ideSelection, toolUseContext) {
|
|
|
379893
379894
|
];
|
|
379894
379895
|
}
|
|
379895
379896
|
async function processAtMentionedFiles(input, toolUseContext) {
|
|
379896
|
-
|
|
379897
|
+
return processReferencedFiles(extractAtMentionedFiles(input), toolUseContext, "tengu_at_mention_extracting_directory_success", "tengu_at_mention_extracting_filename_success", "tengu_at_mention_extracting_filename_error");
|
|
379898
|
+
}
|
|
379899
|
+
async function processStandaloneFilePaths(input, toolUseContext) {
|
|
379900
|
+
return processReferencedFiles(extractStandaloneFilePaths(input), toolUseContext, "tengu_local_path_extracting_directory_success", "tengu_local_path_extracting_filename_success", "tengu_local_path_extracting_filename_error");
|
|
379901
|
+
}
|
|
379902
|
+
async function processReferencedFiles(files, toolUseContext, directorySuccessEventName, fileSuccessEventName, fileErrorEventName) {
|
|
379897
379903
|
if (files.length === 0)
|
|
379898
379904
|
return [];
|
|
379899
379905
|
const appState = toolUseContext.getAppState();
|
|
@@ -379919,7 +379925,7 @@ async function processAtMentionedFiles(input, toolUseContext) {
|
|
|
379919
379925
|
}
|
|
379920
379926
|
const stdout = names.join(`
|
|
379921
379927
|
`);
|
|
379922
|
-
logEvent(
|
|
379928
|
+
logEvent(directorySuccessEventName, {});
|
|
379923
379929
|
return {
|
|
379924
379930
|
type: "directory",
|
|
379925
379931
|
path: absoluteFilename,
|
|
@@ -379931,12 +379937,12 @@ async function processAtMentionedFiles(input, toolUseContext) {
|
|
|
379931
379937
|
}
|
|
379932
379938
|
}
|
|
379933
379939
|
} catch {}
|
|
379934
|
-
return await generateFileAttachment(absoluteFilename, toolUseContext,
|
|
379940
|
+
return await generateFileAttachment(absoluteFilename, toolUseContext, fileSuccessEventName, fileErrorEventName, "at-mention", {
|
|
379935
379941
|
offset: lineStart,
|
|
379936
379942
|
limit: lineEnd && lineStart ? lineEnd - lineStart + 1 : undefined
|
|
379937
379943
|
});
|
|
379938
379944
|
} catch {
|
|
379939
|
-
logEvent(
|
|
379945
|
+
logEvent(fileErrorEventName, {});
|
|
379940
379946
|
}
|
|
379941
379947
|
}));
|
|
379942
379948
|
return results.filter(Boolean);
|
|
@@ -380348,6 +380354,24 @@ function extractAtMentionedFiles(content) {
|
|
|
380348
380354
|
});
|
|
380349
380355
|
return uniq([...quotedMatches, ...regularMatches]);
|
|
380350
380356
|
}
|
|
380357
|
+
function extractStandaloneFilePaths(content) {
|
|
380358
|
+
const quotedAbsolutePathRegex = /(^|[\s(])["']((?:[A-Za-z]:[\\/]|\/)[^"'\r\n]+)["']/g;
|
|
380359
|
+
const unquotedAbsolutePathRegex = /(^|[\s(])((?:[A-Za-z]:[\\/]|\/)[^\s'")\]}>,;|&]+)/g;
|
|
380360
|
+
const results = [];
|
|
380361
|
+
let match;
|
|
380362
|
+
while ((match = quotedAbsolutePathRegex.exec(content)) !== null) {
|
|
380363
|
+
if (match[2]) {
|
|
380364
|
+
results.push(match[2]);
|
|
380365
|
+
}
|
|
380366
|
+
}
|
|
380367
|
+
while ((match = unquotedAbsolutePathRegex.exec(content)) !== null) {
|
|
380368
|
+
if (match[2]) {
|
|
380369
|
+
results.push(match[2].replace(/[!?]+$/, ""));
|
|
380370
|
+
}
|
|
380371
|
+
}
|
|
380372
|
+
const atMentioned = new Set(extractAtMentionedFiles(content));
|
|
380373
|
+
return uniq(results).filter((path17) => !atMentioned.has(path17));
|
|
380374
|
+
}
|
|
380351
380375
|
function extractMcpResourceMentions(content) {
|
|
380352
380376
|
const atMentionRegex = /(^|\s)@(?!")([^\s"]+:[^\s"]+)\b/g;
|
|
380353
380377
|
const matches = content.match(atMentionRegex) || [];
|
|
@@ -400058,7 +400082,7 @@ function buildPrimarySection() {
|
|
|
400058
400082
|
}, undefined, false, undefined, this);
|
|
400059
400083
|
return [{
|
|
400060
400084
|
label: "Version",
|
|
400061
|
-
value: "0.1.
|
|
400085
|
+
value: "0.1.15"
|
|
400062
400086
|
}, {
|
|
400063
400087
|
label: "Session name",
|
|
400064
400088
|
value: nameValue
|
|
@@ -466405,7 +466429,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
466405
466429
|
var call58 = async () => {
|
|
466406
466430
|
return {
|
|
466407
466431
|
type: "text",
|
|
466408
|
-
value: `${"99.0.0"} (built ${"2026-04-
|
|
466432
|
+
value: `${"99.0.0"} (built ${"2026-04-13T17:17:55.615Z"})`
|
|
466409
466433
|
};
|
|
466410
466434
|
}, version2, version_default;
|
|
466411
466435
|
var init_version = __esm(() => {
|
|
@@ -482555,7 +482579,7 @@ async function execPromptHook(hook, hookName, hookEvent, jsonInput, signal, tool
|
|
|
482555
482579
|
const response = await queryModelWithoutStreaming({
|
|
482556
482580
|
messages: messagesToQuery,
|
|
482557
482581
|
systemPrompt: asSystemPrompt([
|
|
482558
|
-
`You are evaluating a hook in
|
|
482582
|
+
`You are evaluating a hook in SOCC.
|
|
482559
482583
|
|
|
482560
482584
|
Your response must be a JSON object matching one of the following schemas:
|
|
482561
482585
|
1. If the condition is met, return: {"ok": true}
|
|
@@ -541013,7 +541037,7 @@ function WelcomeV2() {
|
|
|
541013
541037
|
" ",
|
|
541014
541038
|
/* @__PURE__ */ jsx_dev_runtime468.jsxDEV(ThemedText, {
|
|
541015
541039
|
dimColor: true,
|
|
541016
|
-
children: `v${"0.1.
|
|
541040
|
+
children: `v${"0.1.15"}`
|
|
541017
541041
|
}, undefined, false, undefined, this)
|
|
541018
541042
|
]
|
|
541019
541043
|
}, undefined, true, undefined, this),
|
|
@@ -541250,13 +541274,13 @@ function Onboarding({
|
|
|
541250
541274
|
/* @__PURE__ */ jsx_dev_runtime471.jsxDEV(OrderedList.Item, {
|
|
541251
541275
|
children: [
|
|
541252
541276
|
/* @__PURE__ */ jsx_dev_runtime471.jsxDEV(ThemedText, {
|
|
541253
|
-
children: "
|
|
541277
|
+
children: "Models can make mistakes"
|
|
541254
541278
|
}, undefined, false, undefined, this),
|
|
541255
541279
|
/* @__PURE__ */ jsx_dev_runtime471.jsxDEV(ThemedText, {
|
|
541256
541280
|
dimColor: true,
|
|
541257
541281
|
wrap: "wrap",
|
|
541258
541282
|
children: [
|
|
541259
|
-
"You should always review
|
|
541283
|
+
"You should always review models' responses, especially when",
|
|
541260
541284
|
/* @__PURE__ */ jsx_dev_runtime471.jsxDEV(Newline, {}, undefined, false, undefined, this),
|
|
541261
541285
|
"running code.",
|
|
541262
541286
|
/* @__PURE__ */ jsx_dev_runtime471.jsxDEV(Newline, {}, undefined, false, undefined, this)
|
|
@@ -541840,7 +541864,7 @@ function TrustDialog(t0) {
|
|
|
541840
541864
|
}, undefined, true, undefined, this);
|
|
541841
541865
|
t18 = /* @__PURE__ */ jsx_dev_runtime472.jsxDEV(ThemedText, {
|
|
541842
541866
|
children: [
|
|
541843
|
-
"
|
|
541867
|
+
"Models",
|
|
541844
541868
|
"'",
|
|
541845
541869
|
"ll be able to read, edit, and execute files here."
|
|
541846
541870
|
]
|
|
@@ -560679,7 +560703,7 @@ Usage: socc --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
560679
560703
|
pendingHookMessages
|
|
560680
560704
|
}, renderAndRun);
|
|
560681
560705
|
}
|
|
560682
|
-
}).version("0.1.
|
|
560706
|
+
}).version("0.1.15 (SOCC)", "-v, --version", "Output the version number");
|
|
560683
560707
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
560684
560708
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
560685
560709
|
if (canUserConfigureAdvisor()) {
|
|
@@ -561310,7 +561334,7 @@ if (false) {}
|
|
|
561310
561334
|
async function main2() {
|
|
561311
561335
|
const args = process.argv.slice(2);
|
|
561312
561336
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
561313
|
-
console.log(`${"0.1.
|
|
561337
|
+
console.log(`${"0.1.15"} (SOCC)`);
|
|
561314
561338
|
return;
|
|
561315
561339
|
}
|
|
561316
561340
|
if (args.includes("--provider")) {
|
|
@@ -561434,4 +561458,4 @@ async function main2() {
|
|
|
561434
561458
|
}
|
|
561435
561459
|
main2();
|
|
561436
561460
|
|
|
561437
|
-
//# debugId=
|
|
561461
|
+
//# debugId=DE38E61A6917C2A564756E2164756E21
|