@trenchwork/erosolar 1.1.36 → 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.

Potentially problematic release.


This version of @trenchwork/erosolar might be problematic. Click here for more details.

Files changed (98) 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 +192 -85
  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/hitl.d.ts +4 -1
  35. package/dist/core/hitl.d.ts.map +1 -1
  36. package/dist/core/hitl.js +60 -171
  37. package/dist/core/hitl.js.map +1 -1
  38. package/dist/core/portalPresence.d.ts +74 -0
  39. package/dist/core/portalPresence.d.ts.map +1 -0
  40. package/dist/core/portalPresence.js +187 -0
  41. package/dist/core/portalPresence.js.map +1 -0
  42. package/dist/core/updateChecker.d.ts.map +1 -1
  43. package/dist/core/updateChecker.js +8 -6
  44. package/dist/core/updateChecker.js.map +1 -1
  45. package/dist/headless/interactiveShell.js +23 -0
  46. package/dist/headless/interactiveShell.js.map +1 -1
  47. package/dist/plugins/tools/mcp/mcpClient.js +1 -1
  48. package/dist/plugins/tools/mcp/mcpClient.js.map +1 -1
  49. package/dist/runtime/node.d.ts.map +1 -1
  50. package/dist/runtime/node.js +2 -2
  51. package/dist/runtime/node.js.map +1 -1
  52. package/dist/runtime/phaseEmitter.d.ts +6 -0
  53. package/dist/runtime/phaseEmitter.d.ts.map +1 -1
  54. package/dist/runtime/phaseEmitter.js +0 -0
  55. package/dist/runtime/phaseEmitter.js.map +1 -1
  56. package/dist/tools/engagementTools.d.ts.map +1 -1
  57. package/dist/tools/engagementTools.js +73 -1
  58. package/dist/tools/engagementTools.js.map +1 -1
  59. package/dist/tools/heliaControl.d.ts +17 -0
  60. package/dist/tools/heliaControl.d.ts.map +1 -1
  61. package/dist/tools/heliaControl.js +108 -2
  62. package/dist/tools/heliaControl.js.map +1 -1
  63. package/dist/tools/heliaTools.d.ts +22 -0
  64. package/dist/tools/heliaTools.d.ts.map +1 -0
  65. package/dist/tools/heliaTools.js +125 -0
  66. package/dist/tools/heliaTools.js.map +1 -0
  67. package/dist/tools/interactionTools.d.ts.map +1 -1
  68. package/dist/tools/interactionTools.js +31 -15
  69. package/dist/tools/interactionTools.js.map +1 -1
  70. package/dist/tools/scheduleTools.d.ts.map +1 -1
  71. package/dist/tools/scheduleTools.js +5 -2
  72. package/dist/tools/scheduleTools.js.map +1 -1
  73. package/dist/tools/webTools.js +1 -1
  74. package/dist/tools/webTools.js.map +1 -1
  75. package/dist/ui/ink/AskUserMenu.d.ts +16 -0
  76. package/dist/ui/ink/AskUserMenu.d.ts.map +1 -0
  77. package/dist/ui/ink/AskUserMenu.js +85 -0
  78. package/dist/ui/ink/AskUserMenu.js.map +1 -0
  79. package/dist/ui/ink/HitlDecisionMenu.d.ts +23 -0
  80. package/dist/ui/ink/HitlDecisionMenu.d.ts.map +1 -0
  81. package/dist/ui/ink/HitlDecisionMenu.js +124 -0
  82. package/dist/ui/ink/HitlDecisionMenu.js.map +1 -0
  83. package/dist/ui/ink/oneShot.d.ts +33 -0
  84. package/dist/ui/ink/oneShot.d.ts.map +1 -0
  85. package/dist/ui/ink/oneShot.js +70 -0
  86. package/dist/ui/ink/oneShot.js.map +1 -0
  87. package/dist/utils/heliaClient.d.ts +23 -0
  88. package/dist/utils/heliaClient.d.ts.map +1 -0
  89. package/dist/utils/heliaClient.js +79 -0
  90. package/dist/utils/heliaClient.js.map +1 -0
  91. package/dist/utils/lambdaClient.d.ts.map +1 -1
  92. package/dist/utils/lambdaClient.js +9 -0
  93. package/dist/utils/lambdaClient.js.map +1 -1
  94. package/dist/utils/statusReporter.d.ts +13 -0
  95. package/dist/utils/statusReporter.d.ts.map +1 -1
  96. package/dist/utils/statusReporter.js +26 -0
  97. package/dist/utils/statusReporter.js.map +1 -1
  98. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneShot.js","sourceRoot":"","sources":["../../../src/ui/ink/oneShot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
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
+ export interface HeliaCallResult<T> {
14
+ ok: boolean;
15
+ status?: number;
16
+ result?: T;
17
+ error?: string;
18
+ }
19
+ export declare function isHeliaRunning(): boolean;
20
+ export declare function callHelia<T = unknown>(endpoint: string, body?: Record<string, unknown>, options?: {
21
+ timeoutMs?: number;
22
+ }): Promise<HeliaCallResult<T>>;
23
+ //# sourceMappingURL=heliaClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heliaClient.d.ts","sourceRoot":"","sources":["../../src/utils/heliaClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAsB,SAAS,CAAC,CAAC,GAAG,OAAO,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAClC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAiC7B"}
@@ -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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"}
@@ -1,6 +1,19 @@
1
1
  type StatusSink = (message: string) => void;
2
2
  export declare function setStatusSink(sink: StatusSink | null): void;
3
3
  export declare function reportStatus(message: string): void;
4
+ /**
5
+ * Render a fatal error as an Ink card and exit. Used by every catch
6
+ * block in src/bin/erosolar.ts so the user sees a consistent red panel
7
+ * instead of a one-line console.error. Falls back to stderr if Ink
8
+ * fails to mount (degraded TTY, ENOTTY, etc.) so the user always sees
9
+ * the message somewhere.
10
+ */
11
+ export declare function reportFatal(error: unknown, prefix?: string): Promise<void>;
12
+ /**
13
+ * Legacy non-Ink error reporter. Prefer reportFatal() for new call
14
+ * sites; this stays for low-level paths that can't await an import
15
+ * (e.g. signal handlers).
16
+ */
4
17
  export declare function reportStatusError(error: unknown, prefix?: string): void;
5
18
  export {};
6
19
  //# sourceMappingURL=statusReporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statusReporter.d.ts","sourceRoot":"","sources":["../../src/utils/statusReporter.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAO5C,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAE3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAUlD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAgB,GAAG,IAAI,CAOhF"}
1
+ {"version":3,"file":"statusReporter.d.ts","sourceRoot":"","sources":["../../src/utils/statusReporter.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAO5C,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAE3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAYlD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAgB,GAAG,IAAI,CAOhF"}
@@ -13,8 +13,34 @@ export function reportStatus(message) {
13
13
  statusSink(normalized);
14
14
  return;
15
15
  }
16
+ // Plain stdout fallback — used early in boot (before Ink is ready)
17
+ // and as the fallback for non-fatal status pings.
16
18
  stdout.write(`${normalized}\n`);
17
19
  }
20
+ /**
21
+ * Render a fatal error as an Ink card and exit. Used by every catch
22
+ * block in src/bin/erosolar.ts so the user sees a consistent red panel
23
+ * instead of a one-line console.error. Falls back to stderr if Ink
24
+ * fails to mount (degraded TTY, ENOTTY, etc.) so the user always sees
25
+ * the message somewhere.
26
+ */
27
+ export async function reportFatal(error, prefix = 'Error') {
28
+ const message = error instanceof Error ? error.message : String(error);
29
+ const safePrefix = prefix.trim() || 'Error';
30
+ try {
31
+ const { showCard } = await import('../ui/ink/oneShot.js');
32
+ await showCard({ tone: 'error', title: safePrefix, body: message });
33
+ }
34
+ catch {
35
+ // Ink failed (no TTY, etc.). Still surface the message.
36
+ process.stderr.write(`${safePrefix}: ${message}\n`);
37
+ }
38
+ }
39
+ /**
40
+ * Legacy non-Ink error reporter. Prefer reportFatal() for new call
41
+ * sites; this stays for low-level paths that can't await an import
42
+ * (e.g. signal handlers).
43
+ */
18
44
  export function reportStatusError(error, prefix = 'Error') {
19
45
  const message = error instanceof Error ? error.message : String(error);
20
46
  const safePrefix = prefix.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"statusReporter.js","sourceRoot":"","sources":["../../src/utils/statusReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAU,EAAE,CACzD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAuB;IACnD,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,SAAiB,OAAO;IACxE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU;QACrB,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE;QAClE,CAAC,CAAC,OAAO,CAAC;IACZ,YAAY,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"statusReporter.js","sourceRoot":"","sources":["../../src/utils/statusReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,IAAI,UAAU,GAAsB,IAAI,CAAC;AAEzC,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAU,EAAE,CACzD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAuB;IACnD,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IACD,mEAAmE;IACnE,kDAAkD;IAClD,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAc,EAAE,SAAiB,OAAO;IACxE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC1D,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,SAAiB,OAAO;IACxE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU;QACrB,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,EAAE;QAClE,CAAC,CAAC,OAAO,CAAC;IACZ,YAAY,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@trenchwork/erosolar",
3
- "version": "1.1.36",
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
  },