@phosphor-dom/sentinel-ai 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cli/commands/agents.d.ts.map +1 -1
  2. package/dist/cli/commands/agents.js +10 -5
  3. package/dist/cli/commands/agents.js.map +1 -1
  4. package/dist/cli/commands/dashboard.js +43 -41
  5. package/dist/cli/commands/dashboard.js.map +1 -1
  6. package/dist/cli/commands/events.d.ts.map +1 -1
  7. package/dist/cli/commands/events.js +5 -7
  8. package/dist/cli/commands/events.js.map +1 -1
  9. package/dist/cli/commands/report.d.ts.map +1 -1
  10. package/dist/cli/commands/report.js +5 -4
  11. package/dist/cli/commands/report.js.map +1 -1
  12. package/dist/cli/commands/scan.d.ts +1 -1
  13. package/dist/cli/commands/scan.d.ts.map +1 -1
  14. package/dist/cli/commands/scan.js +16 -12
  15. package/dist/cli/commands/scan.js.map +1 -1
  16. package/dist/cli/index.js +25 -26
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli/utils/format.d.ts +13 -0
  19. package/dist/cli/utils/format.d.ts.map +1 -1
  20. package/dist/cli/utils/format.js +66 -16
  21. package/dist/cli/utils/format.js.map +1 -1
  22. package/dist/core/correlation-engine.js +1 -1
  23. package/dist/core/correlation-engine.js.map +1 -1
  24. package/dist/core/event-bus.d.ts +1 -1
  25. package/dist/core/event-bus.d.ts.map +1 -1
  26. package/dist/core/inter-agent-communication.d.ts +1 -1
  27. package/dist/core/inter-agent-communication.d.ts.map +1 -1
  28. package/dist/core/inter-agent-communication.js +1 -1
  29. package/dist/core/inter-agent-communication.js.map +1 -1
  30. package/dist/core/orchestrator.d.ts +9 -5
  31. package/dist/core/orchestrator.d.ts.map +1 -1
  32. package/dist/core/orchestrator.js +254 -13
  33. package/dist/core/orchestrator.js.map +1 -1
  34. package/dist/core/provider-abstraction.d.ts +7 -0
  35. package/dist/core/provider-abstraction.d.ts.map +1 -1
  36. package/dist/core/provider-abstraction.js +118 -5
  37. package/dist/core/provider-abstraction.js.map +1 -1
  38. package/dist/index.d.ts +25 -25
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +15 -15
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/client.d.ts +1 -1
  43. package/dist/mcp/client.d.ts.map +1 -1
  44. package/dist/mcp/index.d.ts +5 -5
  45. package/dist/mcp/index.d.ts.map +1 -1
  46. package/dist/mcp/index.js +5 -5
  47. package/dist/mcp/index.js.map +1 -1
  48. package/dist/mcp/server.d.ts +1 -1
  49. package/dist/mcp/server.d.ts.map +1 -1
  50. package/dist/mcp/tools.d.ts +1 -1
  51. package/dist/mcp/tools.d.ts.map +1 -1
  52. package/dist/mcp/tools.js +416 -57
  53. package/dist/mcp/tools.js.map +1 -1
  54. package/dist/skills/builtins.d.ts +1 -1
  55. package/dist/skills/builtins.d.ts.map +1 -1
  56. package/dist/skills/index.d.ts +3 -3
  57. package/dist/skills/index.d.ts.map +1 -1
  58. package/dist/skills/index.js +2 -2
  59. package/dist/skills/index.js.map +1 -1
  60. package/dist/skills/registry.d.ts +1 -1
  61. package/dist/skills/registry.d.ts.map +1 -1
  62. package/dist/skills/registry.js +1 -1
  63. package/dist/skills/registry.js.map +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAaA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,iBAS7D"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAaA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,iBAc7D"}
@@ -1,4 +1,4 @@
1
- import { statusIcon } from "../utils/format";
1
+ import { statusIcon, muted, bold, primary, info, borderLine } from "../utils/format.js";
2
2
  const AGENTS = [
3
3
  { name: "orchestrator", capability: "Orchestration & planning", status: "idle" },
4
4
  { name: "sentinel-recon", capability: "DNS, WHOIS, subdomains, fingerprinting", status: "idle" },
@@ -11,12 +11,17 @@ const AGENTS = [
11
11
  ];
12
12
  export async function agentsCommand(action) {
13
13
  if (action === "list" || !action) {
14
- process.stdout.write(`\n ${"Agent".padEnd(28)} ${"Status".padEnd(10)} Capability\n`);
15
- process.stdout.write(` ${"\u2500".repeat(72)}\n`);
14
+ process.stdout.write(`\n ${borderLine()}\n`);
15
+ process.stdout.write(` ${info(bold("\u25CF"))} ${bold("Agents")}\n`);
16
+ process.stdout.write(` ${borderLine()}\n`);
17
+ process.stdout.write(` ${muted("Agent".padEnd(26))} ${muted("Status".padEnd(10))} ${muted("Capability")}\n`);
18
+ process.stdout.write(` ${muted("\u2500".repeat(72))}\n`);
16
19
  for (const agent of AGENTS) {
17
- process.stdout.write(` ${statusIcon(agent.status)} ${agent.name.padEnd(25)} ${agent.status.padEnd(10)} ${agent.capability}\n`);
20
+ const icon = statusIcon(agent.status);
21
+ const name = agent.name.replace("sentinel-", "").padEnd(23);
22
+ process.stdout.write(` ${icon} ${primary(name)} ${muted(agent.status.padEnd(10))} ${agent.capability}\n`);
18
23
  }
19
- process.stdout.write("\n");
24
+ process.stdout.write(` ${borderLine()}\n\n`);
20
25
  }
21
26
  }
22
27
  //# sourceMappingURL=agents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,MAAM,GAAG;IACb,EAAE,IAAI,EAAE,cAAc,EAAS,UAAU,EAAE,0BAA0B,EAAmB,MAAM,EAAE,MAAM,EAAE;IACxG,EAAE,IAAI,EAAE,gBAAgB,EAAa,UAAU,EAAE,wCAAwC,EAAG,MAAM,EAAE,MAAM,EAAE;IAC5G,EAAE,IAAI,EAAE,yBAAyB,EAAI,UAAU,EAAE,sCAAsC,EAAI,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,uBAAuB,EAAM,UAAU,EAAE,+BAA+B,EAAW,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,qBAAqB,EAAQ,UAAU,EAAE,kCAAkC,EAAQ,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,+BAA+B,EAAW,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,0BAA0B,EAAG,UAAU,EAAE,oCAAoC,EAAM,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,iBAAiB,EAAY,UAAU,EAAE,qCAAqC,EAAK,MAAM,EAAE,MAAM,EAAE;CAC5G,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA0B;IAC5D,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAA;QACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAA;QACjI,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEvF,MAAM,MAAM,GAAG;IACb,EAAE,IAAI,EAAE,cAAc,EAAS,UAAU,EAAE,0BAA0B,EAAmB,MAAM,EAAE,MAAM,EAAE;IACxG,EAAE,IAAI,EAAE,gBAAgB,EAAa,UAAU,EAAE,wCAAwC,EAAG,MAAM,EAAE,MAAM,EAAE;IAC5G,EAAE,IAAI,EAAE,yBAAyB,EAAI,UAAU,EAAE,sCAAsC,EAAI,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,uBAAuB,EAAM,UAAU,EAAE,+BAA+B,EAAW,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,qBAAqB,EAAQ,UAAU,EAAE,kCAAkC,EAAQ,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,+BAA+B,EAAW,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,0BAA0B,EAAG,UAAU,EAAE,oCAAoC,EAAM,MAAM,EAAE,MAAM,EAAE;IAC3G,EAAE,IAAI,EAAE,iBAAiB,EAAY,UAAU,EAAE,qCAAqC,EAAK,MAAM,EAAE,MAAM,EAAE;CAC5G,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA0B;IAC5D,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,EAAE,IAAI,CAAC,CAAA;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE,IAAI,CAAC,CAAA;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC7G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QACxD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
- import { EventBus } from "../../core/event-bus";
2
- import { SentinelOrchestrator } from "../../core/orchestrator";
3
- import { severityColor, statusIcon, bar, timestamp } from "../utils/format";
1
+ import { EventBus } from "../../core/event-bus.js";
2
+ import { SentinelOrchestrator } from "../../core/orchestrator.js";
3
+ import { statusIcon, bar, muted, bold, primary, severityColor } from "../utils/format.js";
4
4
  import * as readline from "node:readline";
5
5
  let running = true;
6
6
  export async function dashboardCommand() {
@@ -10,7 +10,7 @@ export async function dashboardCommand() {
10
10
  agents: new Map(),
11
11
  events: [],
12
12
  findings: [],
13
- target: "not started",
13
+ target: "localhost",
14
14
  phase: "idle",
15
15
  phaseCount: 0,
16
16
  phaseComplete: 0,
@@ -28,15 +28,15 @@ export async function dashboardCommand() {
28
28
  draw(state);
29
29
  });
30
30
  bus.subscribe("*", (event) => {
31
- const line = `[${timestamp()}] ${event.source} \u2192 ${event.type}`;
32
- state.events.unshift(line);
33
- if (state.events.length > 50)
31
+ const label = `${event.source.slice(0, 12).padEnd(12)} ${event.type}`;
32
+ state.events.unshift(label);
33
+ if (state.events.length > 100)
34
34
  state.events.pop();
35
35
  draw(state);
36
36
  });
37
37
  bus.subscribe("VulnerabilityDetected", (event) => {
38
38
  const p = event.payload;
39
- state.findings.unshift({ severity: p.severity, title: p.title });
39
+ state.findings.unshift({ severity: p.severity, title: p.title, cvss: p.cvss });
40
40
  draw(state);
41
41
  });
42
42
  bus.subscribe("PlanUpdated", (event) => {
@@ -59,21 +59,21 @@ export async function dashboardCommand() {
59
59
  }
60
60
  if (key.name === "q") {
61
61
  const plan = orchestrator.getPlan();
62
- if (plan) {
62
+ if (plan && plan.findings.length > 0) {
63
63
  process.stdout.write("\n");
64
+ process.stdout.write(` ${bold("Findings")}\n`);
64
65
  for (const f of plan.findings) {
65
66
  process.stdout.write(` ${severityColor(f.severity)} ${f.title}\n`);
66
67
  }
67
- process.stdout.write("\n Press any key to return to dashboard...\n");
68
+ process.stdout.write(`\n ${muted("Press any key to return to dashboard...")}`);
68
69
  process.stdin.once("keypress", () => draw(state));
69
70
  }
70
71
  }
71
72
  });
72
73
  process.stdout.write("\x1b[2J");
73
74
  draw(state);
74
- // Start scan in background
75
75
  orchestrator.runAudit({
76
- target: "localhost",
76
+ target: state.target,
77
77
  targetType: "domain",
78
78
  }).then((plan) => {
79
79
  state.phase = "completed";
@@ -83,50 +83,52 @@ export async function dashboardCommand() {
83
83
  function draw(state) {
84
84
  if (!running)
85
85
  return;
86
- const w = process.stdout.columns || 80;
86
+ const w = Math.min(process.stdout.columns || 80, 100);
87
87
  const h = process.stdout.rows || 24;
88
- const sep = "\u2500".repeat(Math.min(w, 80));
88
+ const sep = muted("\u2500".repeat(w));
89
+ const divider = muted("\u2502");
89
90
  const out = [];
90
- // Draw header
91
- if (w >= 40) {
92
- out.push(sep);
93
- out.push(" \uD83D\uDD0D SENTINEL SECURITY PLATFORM \u2014 Interactive Dashboard ");
94
- out.push(sep);
95
- }
91
+ // Title bar
92
+ out.push(` ${primary(bold("\u25CF"))} ${bold("Sentinel Security Platform")} ${muted("v0.3.0")}`);
93
+ out.push(sep);
94
+ // Split: left=agents, right=events
95
+ const colW = Math.floor((w - 4) / 2) - 2;
96
96
  // Agents panel
97
- out.push(" AGENTS:");
98
- const cols = Math.max(1, Math.floor((w - 4) / 20));
99
- let i = 0;
97
+ const agentLines = [];
100
98
  for (const [name, status] of state.agents) {
99
+ const shortName = name.replace("sentinel-", "").slice(0, 14).padEnd(14);
101
100
  const icon = statusIcon(status);
102
- const label = `${icon} ${name.replace("sentinel-", "").slice(0, 12).padEnd(12)} ${status}`;
103
- if (i > 0 && i % cols === 0)
104
- out.push("");
105
- else if (i % cols === 0)
106
- out.push(` ${label}`);
107
- else
108
- out[out.length - 1] += ` ${label}`;
109
- i++;
101
+ agentLines.push(` ${icon} ${muted(shortName)} ${status}`);
110
102
  }
111
103
  // Events panel
112
- out.push("");
113
- out.push(` EVENTS (${state.events.length}):`);
114
- const maxEvents = Math.max(0, h - out.length - 12);
115
- for (let i = 0; i < Math.min(state.events.length, maxEvents); i++) {
116
- out.push(` ${state.events[i].slice(0, w - 4)}`);
104
+ const eventLines = state.events.slice(0, Math.max(0, h - 18)).map((e) => ` ${muted(e.slice(0, colW - 2))}`);
105
+ while (eventLines.length < agentLines.length)
106
+ eventLines.push("");
107
+ // Combine panels side by side
108
+ out.push(` ${primary(bold("Agents"))}${" ".repeat(colW - 4)}${primary(bold("Events"))}`);
109
+ for (let i = 0; i < Math.min(agentLines.length, eventLines.length); i++) {
110
+ const a = agentLines[i] || " ".repeat(colW);
111
+ const e = eventLines[i] || " ".repeat(colW);
112
+ out.push(` ${a}${divider}${e}`);
117
113
  }
118
114
  // Findings panel
119
- out.push("");
120
- out.push(` FINDINGS (${state.findings.length}):`);
115
+ out.push(sep);
116
+ const findingHeader = ` ${primary(bold("Findings"))} ${muted(`(${state.findings.length})`)}`;
117
+ out.push(findingHeader);
121
118
  const maxFindings = Math.max(0, h - out.length - 5);
122
119
  for (let i = 0; i < Math.min(state.findings.length, maxFindings); i++) {
123
120
  const f = state.findings[i];
124
- out.push(` ${severityColor(f.severity)} ${f.title.slice(0, w - 16)}`);
121
+ const cvssStr = f.cvss ? `${f.cvss.toFixed(1)}` : "";
122
+ out.push(` ${severityColor(f.severity)} ${f.title.slice(0, w - 24)}${cvssStr ? ` ${muted(cvssStr)}` : ""}`);
125
123
  }
126
124
  // Status bar
125
+ out.push(sep);
127
126
  const pct = state.phaseCount > 0 ? Math.round((state.phaseComplete / state.phaseCount) * 100) : 0;
128
- out.push("");
129
- out.push(` Phase: ${state.phase} | Progress: ${bar(pct, 100, 20)} ${pct}% | Ctrl+Q: findings | Ctrl+C: quit`);
127
+ const targetStr = `${primary(bold(state.target))}`;
128
+ const phaseStr = `${state.phase}`;
129
+ const progressStr = `${bar(pct, 100, 15)} ${muted(`${pct}%`)}`;
130
+ const keybindStr = muted("Q:findings Ctrl+C:quit");
131
+ out.push(` ${targetStr} ${phaseStr} ${progressStr} ${keybindStr}`);
130
132
  out.push(sep);
131
133
  process.stdout.write("\x1b[H" + out.slice(0, h - 1).join("\n") + "\n");
132
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/events.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBA2B9E"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/events.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAyB9E"}
@@ -1,16 +1,15 @@
1
- import { EventBus } from "../../core/event-bus";
2
- import { timestamp } from "../utils/format";
1
+ import { EventBus } from "../../core/event-bus.js";
2
+ import { timestamp, muted, primary, info, bold } from "../utils/format.js";
3
3
  export async function eventsCommand(options) {
4
4
  const bus = new EventBus();
5
5
  bus.subscribe("*", (event) => {
6
6
  const ts = timestamp();
7
7
  const line = options.raw
8
- ? `[${ts}] ${event.source} -> ${event.target} | ${event.type} | ${JSON.stringify(event.payload)}`
9
- : ` [${ts}] ${event.source.padEnd(20)} \u2192 ${event.target.padEnd(15)} ${event.type}`;
8
+ ? JSON.stringify({ t: ts, src: event.source, dst: event.target, type: event.type, payload: event.payload })
9
+ : ` ${muted(`[${ts}]`)} ${primary(event.source.slice(0, 14).padEnd(14))} ${muted("\u2192")} ${info(event.target.padEnd(14))} ${event.type}`;
10
10
  process.stdout.write(line + "\n");
11
11
  });
12
- process.stdout.write(" Listening for events... (Ctrl+C to stop)\n\n");
13
- // Publish a test event to show it works
12
+ process.stdout.write(` ${bold("Listening for events...")} ${muted("(Ctrl+C to stop)")}\n\n`);
14
13
  bus.publish({
15
14
  id: "evt-init",
16
15
  timestamp: new Date().toISOString(),
@@ -20,7 +19,6 @@ export async function eventsCommand(options) {
20
19
  priority: "low",
21
20
  payload: { agent: "cli", status: "listening" },
22
21
  });
23
- // Keep alive
24
22
  await new Promise(() => { });
25
23
  }
26
24
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/cli/commands/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA2C;IAC7E,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAA;IAE1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;YACtB,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACjG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;QAE1F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAEtE,wCAAwC;IACxC,GAAG,CAAC,OAAO,CAAC;QACV,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE;KAC/C,CAAC,CAAA;IAEF,aAAa;IACb,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/cli/commands/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAE1E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA2C;IAC7E,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAA;IAE1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;YACtB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3G,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;QAE9I,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAE7F,GAAG,CAAC,OAAO,CAAC;QACV,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE;KAC/C,CAAC,CAAA;IAEF,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,iBAiChF"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,iBAiChF"}
@@ -1,11 +1,12 @@
1
1
  import { writeFile } from "node:fs/promises";
2
- import { SentinelOrchestrator } from "../../core/orchestrator";
3
- import { ReportGenerator } from "../../core/report-generator";
2
+ import { SentinelOrchestrator } from "../../core/orchestrator.js";
3
+ import { ReportGenerator } from "../../core/report-generator.js";
4
+ import { success, error, info } from "../utils/format.js";
4
5
  export async function reportCommand(options) {
5
6
  const orchestrator = new SentinelOrchestrator();
6
7
  const plan = orchestrator.getPlan();
7
8
  if (!plan || plan.findings.length === 0) {
8
- process.stdout.write(" No audit data available. Run `sentinel scan` first.\n");
9
+ process.stdout.write(` ${error("No audit data available.")} Run ${info("sentinel scan")} first.\n`);
9
10
  return;
10
11
  }
11
12
  const reportGen = new ReportGenerator();
@@ -25,7 +26,7 @@ export async function reportCommand(options) {
25
26
  const md = reports["md"];
26
27
  if (options.output) {
27
28
  await writeFile(options.output, md, "utf-8");
28
- process.stdout.write(` Report written to ${options.output}\n`);
29
+ process.stdout.write(` ${success("Report written to")} ${options.output}\n`);
29
30
  }
30
31
  else {
31
32
  process.stdout.write(`\n${md}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6C;IAC/E,MAAM,YAAY,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;IAEnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAC/E,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAA;IACvC,MAAM,IAAI,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IACzF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE;KACT,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAS,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEhE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6C;IAC/E,MAAM,YAAY,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;IAEnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,0BAA0B,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACpG,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAA;IACvC,MAAM,IAAI,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;IACzF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC;QAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE;KACT,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;AACH,CAAC"}
@@ -3,5 +3,5 @@ export declare function scanCommand(target: string, options: {
3
3
  description?: string;
4
4
  agents?: string[];
5
5
  verbose?: boolean;
6
- }): Promise<import("../../core/orchestrator").AuditPlan>;
6
+ }): Promise<import("../../core/orchestrator.js").AuditPlan>;
7
7
  //# sourceMappingURL=scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,wDAiDvI"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2DAqDvI"}
@@ -1,5 +1,5 @@
1
- import { SentinelOrchestrator } from "../../core/orchestrator";
2
- import { severityColor, statusIcon } from "../utils/format";
1
+ import { SentinelOrchestrator } from "../../core/orchestrator.js";
2
+ import { severityColor, statusIcon, primary, muted, bold, success, error, info, borderLine } from "../utils/format.js";
3
3
  export async function scanCommand(target, options) {
4
4
  const scope = {
5
5
  target,
@@ -13,32 +13,36 @@ export async function scanCommand(target, options) {
13
13
  orchestrator.bus.subscribe("PlanUpdated", (event) => {
14
14
  const plan = event.payload;
15
15
  const activePhase = plan.phases.find((p) => p.status === "active");
16
- if (activePhase) {
17
- process.stdout.write(`\r ${statusIcon("active")} Phase: ${activePhase.name.padEnd(20)}`);
16
+ if (activePhase && !reported.has(`active:${activePhase.name}`)) {
17
+ reported.add(`active:${activePhase.name}`);
18
+ process.stdout.write(` ${statusIcon("active")} ${primary(activePhase.name)}${muted("...")}\n`);
18
19
  }
19
20
  for (const phase of plan.phases) {
20
21
  if ((phase.status === "completed" || phase.status === "failed") && !reported.has(phase.name)) {
21
22
  reported.add(phase.name);
22
- process.stdout.write(`\n ${statusIcon(phase.status)} ${phase.name}`);
23
+ const icon = statusIcon(phase.status);
24
+ const name = phase.status === "completed" ? success(phase.name) : error(phase.name);
25
+ process.stdout.write(` ${icon} ${name}\n`);
23
26
  }
24
27
  }
25
28
  });
26
29
  orchestrator.bus.subscribe("VulnerabilityDetected", () => {
27
30
  findingsCount++;
28
31
  });
29
- process.stdout.write(`\n ${statusIcon("active")} Starting audit of ${target}...\n\n`);
32
+ process.stdout.write(`\n ${info(bold("\u25CF"))} ${bold("Scanning")} ${primary(target)}${muted("...")}\n\n`);
30
33
  const plan = await orchestrator.runAudit(scope);
31
- process.stdout.write(`\n\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n`);
32
- process.stdout.write(` Plan: ${plan.id.slice(0, 8)}...\n`);
33
- process.stdout.write(` Status: ${statusIcon(plan.status)} ${plan.status}\n`);
34
- process.stdout.write(` Phases: ${plan.phases.length}\n`);
35
- process.stdout.write(` Findings: ${findingsCount}\n`);
34
+ process.stdout.write(`\n ${borderLine()}\n`);
35
+ process.stdout.write(` ${muted("Target:")} ${primary(target)}\n`);
36
+ process.stdout.write(` ${muted("Status:")} ${plan.status === "completed" ? success(plan.status) : error(plan.status)}\n`);
37
+ process.stdout.write(` ${muted("Phases:")} ${plan.phases.length}\n`);
38
+ process.stdout.write(` ${muted("Findings:")} ${findingsCount > 0 ? bold(String(findingsCount)) : muted("0")}\n`);
36
39
  if (plan.findings.length > 0) {
37
- process.stdout.write(`\n Findings:\n`);
40
+ process.stdout.write(`\n`);
38
41
  for (const finding of plan.findings) {
39
42
  process.stdout.write(` ${severityColor(finding.severity)} ${finding.title}\n`);
40
43
  }
41
44
  }
45
+ process.stdout.write(`\n`);
42
46
  return plan;
43
47
  }
44
48
  function detectTargetType(target) {
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,28 +1,28 @@
1
- import { scanCommand } from "./commands/scan";
2
- import { reportCommand } from "./commands/report";
3
- import { dashboardCommand } from "./commands/dashboard";
4
- import { agentsCommand } from "./commands/agents";
5
- import { eventsCommand } from "./commands/events";
6
- const HELP = ` Sentinel Security Platform CLI v0.3.0
1
+ import { scanCommand } from "./commands/scan.js";
2
+ import { reportCommand } from "./commands/report.js";
3
+ import { dashboardCommand } from "./commands/dashboard.js";
4
+ import { agentsCommand } from "./commands/agents.js";
5
+ import { eventsCommand } from "./commands/events.js";
6
+ import { text, muted, bold, primary, error } from "./utils/format.js";
7
+ const HELP = ` ${primary(bold("\u25CF Sentinel Security Platform"))} ${muted("v0.3.0")}
7
8
 
8
- USAGE
9
- sentinel <command> [options]
9
+ ${muted("USAGE")}
10
+ ${bold("sentinel")} ${muted("<command> [options]")}
10
11
 
11
- COMMANDS
12
- scan <target> Run a security audit
13
- report Generate report from last scan
14
- dashboard Interactive TUI dashboard
15
- agents List available agents
16
- events Watch live event stream
17
- help Show this help
12
+ ${muted("COMMANDS")}
13
+ ${bold("scan")} ${muted("<target>")} ${text("Run a security audit")}
14
+ ${bold("report")} ${text("Generate report from last scan")}
15
+ ${bold("dashboard")} ${text("Interactive TUI dashboard")}
16
+ ${bold("agents")} ${text("List available agents")}
17
+ ${bold("events")} ${text("Watch live event stream")}
18
+ ${bold("help")} ${text("Show this help")}
18
19
 
19
- OPTIONS
20
- --type <type> Target type: domain | ip | url | repository
21
- --agents <list> Comma-separated agent names to run
22
- --output <file> Write output to file
23
- --format <fmt> Output format: markdown | json
24
- --verbose Show detailed event output
25
- --raw Raw event output (for piping)
20
+ ${muted("OPTIONS")}
21
+ ${muted("--type")} ${muted("<type>")} ${text("Target type: domain | ip | url | repository")}
22
+ ${muted("--agents")} ${muted("<list>")} ${text("Comma-separated agent names to run")}
23
+ ${muted("--output")} ${muted("<file>")} ${text("Write output to file")}
24
+ ${muted("--verbose")} ${text("Show detailed event output")}
25
+ ${muted("--raw")} ${text("Raw event output (for piping)")}
26
26
  `;
27
27
  async function main() {
28
28
  const args = process.argv.slice(2);
@@ -54,7 +54,7 @@ async function main() {
54
54
  case "scan": {
55
55
  const target = rest[0];
56
56
  if (!target) {
57
- process.stdout.write(" Error: target required. Usage: sentinel scan <target>\n");
57
+ process.stdout.write(` ${error("Error:")} target required. Usage: ${bold("sentinel scan <target>")}\n`);
58
58
  return;
59
59
  }
60
60
  const opts = parseOptions(rest.slice(1));
@@ -79,7 +79,6 @@ async function main() {
79
79
  break;
80
80
  }
81
81
  case "agents": {
82
- const opts = parseOptions(rest);
83
82
  await agentsCommand(rest[0]);
84
83
  break;
85
84
  }
@@ -92,11 +91,11 @@ async function main() {
92
91
  break;
93
92
  }
94
93
  default:
95
- process.stdout.write(` Unknown command: ${cmd}\n${HELP}`);
94
+ process.stdout.write(` ${error("Unknown command:")} ${cmd}\n${HELP}`);
96
95
  }
97
96
  }
98
97
  main().catch((err) => {
99
- process.stderr.write(` Error: ${err.message}\n`);
98
+ process.stderr.write(` ${error("Error:")} ${err.message}\n`);
100
99
  process.exit(1);
101
100
  });
102
101
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
+ export declare function text(s: string): string;
2
+ export declare function muted(s: string): string;
3
+ export declare function bold(s: string): string;
4
+ export declare function dim(s: string): string;
5
+ export declare function primary(s: string): string;
6
+ export declare function secondary(s: string): string;
7
+ export declare function success(s: string): string;
8
+ export declare function error(s: string): string;
9
+ export declare function warning(s: string): string;
10
+ export declare function info(s: string): string;
11
+ export declare function white(s: string): string;
1
12
  export declare function severityColor(severity: string): string;
2
13
  export declare function statusIcon(status: string): string;
3
14
  export declare function bar(value: number, max: number, width?: number): string;
4
15
  export declare function timestamp(): string;
5
16
  export declare function truncate(s: string, max?: number): string;
17
+ export declare function header(): string;
18
+ export declare function borderLine(): string;
6
19
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAMlE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAGpD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/format.ts"],"names":[],"mappings":"AA8BA,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAA+B;AAC7D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAAgC;AAC/D,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAA4B;AAC1D,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,UAA2B;AAExD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAAkC;AACnE,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,UAAoC;AACvE,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAAkC;AACnE,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAAgC;AAC/D,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAAkC;AACnE,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAA+B;AAC7D,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAAgC;AAE/D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAUlE;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAGpD;AAED,wBAAgB,MAAM,WAOrB;AAED,wBAAgB,UAAU,WAEzB"}