@trenchwork/erosolar 1.1.37 → 1.1.38

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 (75) hide show
  1. package/README.md +219 -170
  2. package/SECURITY.md +28 -6
  3. package/agents/engagement-delivery.rules.json +7 -0
  4. package/agents/variant-research.rules.json +7 -0
  5. package/dist/bin/erosolar.js +40 -0
  6. package/dist/bin/erosolar.js.map +1 -1
  7. package/dist/capabilities/_opsContext.d.ts +65 -1
  8. package/dist/capabilities/_opsContext.d.ts.map +1 -1
  9. package/dist/capabilities/_opsContext.js +43 -0
  10. package/dist/capabilities/_opsContext.js.map +1 -1
  11. package/dist/capabilities/heliaCapability.d.ts +15 -0
  12. package/dist/capabilities/heliaCapability.d.ts.map +1 -0
  13. package/dist/capabilities/heliaCapability.js +34 -0
  14. package/dist/capabilities/heliaCapability.js.map +1 -0
  15. package/dist/capabilities/index.d.ts +1 -0
  16. package/dist/capabilities/index.d.ts.map +1 -1
  17. package/dist/capabilities/index.js +1 -0
  18. package/dist/capabilities/index.js.map +1 -1
  19. package/dist/capabilities/llmRedteamCapability.d.ts.map +1 -1
  20. package/dist/capabilities/llmRedteamCapability.js +47 -0
  21. package/dist/capabilities/llmRedteamCapability.js.map +1 -1
  22. package/dist/core/artifactLog.d.ts +82 -0
  23. package/dist/core/artifactLog.d.ts.map +1 -0
  24. package/dist/core/artifactLog.js +224 -0
  25. package/dist/core/artifactLog.js.map +1 -0
  26. package/dist/core/artifactStore.d.ts +17 -0
  27. package/dist/core/artifactStore.d.ts.map +1 -1
  28. package/dist/core/artifactStore.js +22 -0
  29. package/dist/core/artifactStore.js.map +1 -1
  30. package/dist/core/cliTriggerHandlers.d.ts +15 -0
  31. package/dist/core/cliTriggerHandlers.d.ts.map +1 -0
  32. package/dist/core/cliTriggerHandlers.js +60 -0
  33. package/dist/core/cliTriggerHandlers.js.map +1 -0
  34. package/dist/core/portalPresence.d.ts +74 -0
  35. package/dist/core/portalPresence.d.ts.map +1 -0
  36. package/dist/core/portalPresence.js +187 -0
  37. package/dist/core/portalPresence.js.map +1 -0
  38. package/dist/core/updateChecker.d.ts.map +1 -1
  39. package/dist/core/updateChecker.js +8 -6
  40. package/dist/core/updateChecker.js.map +1 -1
  41. package/dist/headless/interactiveShell.js +23 -0
  42. package/dist/headless/interactiveShell.js.map +1 -1
  43. package/dist/plugins/tools/mcp/mcpClient.js +1 -1
  44. package/dist/plugins/tools/mcp/mcpClient.js.map +1 -1
  45. package/dist/runtime/node.d.ts.map +1 -1
  46. package/dist/runtime/node.js +2 -2
  47. package/dist/runtime/node.js.map +1 -1
  48. package/dist/runtime/phaseEmitter.d.ts +6 -0
  49. package/dist/runtime/phaseEmitter.d.ts.map +1 -1
  50. package/dist/runtime/phaseEmitter.js +0 -0
  51. package/dist/runtime/phaseEmitter.js.map +1 -1
  52. package/dist/tools/engagementTools.d.ts.map +1 -1
  53. package/dist/tools/engagementTools.js +73 -1
  54. package/dist/tools/engagementTools.js.map +1 -1
  55. package/dist/tools/heliaControl.d.ts +17 -0
  56. package/dist/tools/heliaControl.d.ts.map +1 -1
  57. package/dist/tools/heliaControl.js +108 -2
  58. package/dist/tools/heliaControl.js.map +1 -1
  59. package/dist/tools/heliaTools.d.ts +22 -0
  60. package/dist/tools/heliaTools.d.ts.map +1 -0
  61. package/dist/tools/heliaTools.js +125 -0
  62. package/dist/tools/heliaTools.js.map +1 -0
  63. package/dist/tools/scheduleTools.d.ts.map +1 -1
  64. package/dist/tools/scheduleTools.js +5 -2
  65. package/dist/tools/scheduleTools.js.map +1 -1
  66. package/dist/tools/webTools.js +1 -1
  67. package/dist/tools/webTools.js.map +1 -1
  68. package/dist/utils/heliaClient.d.ts +23 -0
  69. package/dist/utils/heliaClient.d.ts.map +1 -0
  70. package/dist/utils/heliaClient.js +79 -0
  71. package/dist/utils/heliaClient.js.map +1 -0
  72. package/dist/utils/lambdaClient.d.ts.map +1 -1
  73. package/dist/utils/lambdaClient.js +9 -0
  74. package/dist/utils/lambdaClient.js.map +1 -1
  75. package/package.json +2 -2
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Helia RPC client — reads ~/.erosolar/helia-rpc.json (dropped by the
3
+ * Erosolar_Browser/heliaRpcServer.js when Helia launches) and POSTs
4
+ * commands over localhost. Bearer-token authenticated.
5
+ *
6
+ * Used only by the gated `helia_*` tool family. If Helia isn't
7
+ * running, every call returns `{ ok: false, error: 'helia not running' }`
8
+ * — the caller (a tool handler) renders that as a clear "launch Helia
9
+ * first" message instead of throwing.
10
+ *
11
+ * v2.2 hardening 2026-05-10.
12
+ */
13
+ import { existsSync, readFileSync } from 'node:fs';
14
+ import { homedir } from 'node:os';
15
+ import { join } from 'node:path';
16
+ // Resolved at call time so EROSOLAR_HOME overrides + tests honour it.
17
+ function rpcFile() {
18
+ const root = (process.env.EROSOLAR_HOME || '').trim() || homedir();
19
+ return join(root, '.erosolar', 'helia-rpc.json');
20
+ }
21
+ function readConfig() {
22
+ try {
23
+ if (!existsSync(rpcFile()))
24
+ return null;
25
+ const raw = readFileSync(rpcFile(), 'utf-8');
26
+ const cfg = JSON.parse(raw);
27
+ if (typeof cfg.port !== 'number' || typeof cfg.token !== 'string')
28
+ return null;
29
+ return cfg;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ export function isHeliaRunning() {
36
+ return readConfig() !== null;
37
+ }
38
+ export async function callHelia(endpoint, body = {}, options = {}) {
39
+ const cfg = readConfig();
40
+ if (!cfg) {
41
+ return { ok: false, error: 'helia not running (no ~/.erosolar/helia-rpc.json)' };
42
+ }
43
+ const path = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
44
+ const controller = new AbortController();
45
+ const timer = setTimeout(() => controller.abort(), options.timeoutMs ?? 60_000);
46
+ try {
47
+ const res = await fetch(`http://${cfg.boundTo}:${cfg.port}${path}`, {
48
+ method: 'POST',
49
+ headers: {
50
+ 'content-type': 'application/json',
51
+ authorization: `Bearer ${cfg.token}`,
52
+ },
53
+ body: JSON.stringify(body ?? {}),
54
+ signal: controller.signal,
55
+ });
56
+ let parsed = null;
57
+ try {
58
+ parsed = await res.json();
59
+ }
60
+ catch {
61
+ parsed = null;
62
+ }
63
+ if (!res.ok) {
64
+ return {
65
+ ok: false,
66
+ status: res.status,
67
+ error: parsed?.error || `HTTP ${res.status}`,
68
+ };
69
+ }
70
+ return { ok: true, status: res.status, result: parsed };
71
+ }
72
+ catch (err) {
73
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
74
+ }
75
+ finally {
76
+ clearTimeout(timer);
77
+ }
78
+ }
79
+ //# sourceMappingURL=heliaClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heliaClient.js","sourceRoot":"","sources":["../../src/utils/heliaClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lambdaClient.d.ts","sourceRoot":"","sources":["../../src/utils/lambdaClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,eAAO,MAAM,eAAe,2DAA2D,CAAC;AAExF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,WAAW,IAAI,UAAU,GAAG,IAAI,CAO/C;AASD,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3E,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAqC9B"}
1
+ {"version":3,"file":"lambdaClient.d.ts","sourceRoot":"","sources":["../../src/utils/lambdaClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,eAAO,MAAM,eAAe,2DAA2D,CAAC;AAExF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,WAAW,IAAI,UAAU,GAAG,IAAI,CAO/C;AASD,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3E,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CA6C9B"}
@@ -41,6 +41,15 @@ export async function callLambda(name, data, options = {}) {
41
41
  if (tokenLooksFresh(auth)) {
42
42
  headers.authorization = `Bearer ${auth.token}`;
43
43
  }
44
+ else {
45
+ // Short-circuit: no fresh bearer means the Lambda's requireSignedIn
46
+ // gate will reject. Skip the network round-trip entirely so the
47
+ // caller's "best-effort mirror" path resolves immediately instead
48
+ // of holding a connection until timeoutMs. This makes offline /
49
+ // jest-suite runs (no auth.json) finish in microseconds rather
50
+ // than timing out at 3–15s. v1.5 hardening 2026-05-10.
51
+ return { ok: false, status: 401, error: 'unauthenticated (no fresh CLI token)' };
52
+ }
44
53
  const controller = new AbortController();
45
54
  const timeout = options.timeoutMs ?? 15_000;
46
55
  const timer = setTimeout(() => controller.abort(), timeout);
@@ -1 +1 @@
1
- {"version":3,"file":"lambdaClient.js","sourceRoot":"","sources":["../../src/utils/lambdaClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lambdaClient.js","sourceRoot":"","sources":["../../src/utils/lambdaClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@trenchwork/erosolar",
3
- "version": "1.1.37",
4
- "description": "DeepSeek AI-powered CLI agent for code assistance and automation",
3
+ "version": "1.1.38",
4
+ "description": "DeepSeek AI-powered CLI agent for code assistance and automation. Source: ECCN 4E001 / binary: 4D004 — see SECURITY.md for the export-classification matrix and BIS Note 1 carve-out for vulnerability disclosure output.",
5
5
  "deepseek": {
6
6
  "rulebookSchema": "src/contracts/schemas/agent-rules.schema.json"
7
7
  },