@develler/remediation-agent 1.0.7 → 1.0.9

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/auto.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Auto-instrumentation entry point.
3
+ * Activated by NODE_OPTIONS=--require @develler/remediation-agent/auto
4
+ * (written to .env automatically by the setup command).
5
+ *
6
+ * Patches express() so every new app instance gets the remediation
7
+ * middleware attached before any user routes — no code changes needed.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=auto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
package/dist/auto.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Auto-instrumentation entry point.
4
+ * Activated by NODE_OPTIONS=--require @develler/remediation-agent/auto
5
+ * (written to .env automatically by the setup command).
6
+ *
7
+ * Patches express() so every new app instance gets the remediation
8
+ * middleware attached before any user routes — no code changes needed.
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const module_1 = __importDefault(require("module"));
15
+ const index_js_1 = require("./index.js");
16
+ // ── Agent initialisation ─────────────────────────────────────────────────────
17
+ let resolvedHandler = null;
18
+ (0, index_js_1.createRemediationMiddleware)()
19
+ .then(agent => { resolvedHandler = agent.handler(); })
20
+ .catch((err) => {
21
+ process.stderr.write(`[develler] auto-init failed: ${err instanceof Error ? err.message : String(err)}\n`);
22
+ });
23
+ // ── Express patch ────────────────────────────────────────────────────────────
24
+ const _load = module_1.default._load;
25
+ let patched = false;
26
+ module_1.default._load = function load(id, ...rest) {
27
+ const mod = _load.apply(this, [id, ...rest]);
28
+ if (!patched && id === 'express') {
29
+ patched = true;
30
+ return wrapExpress(mod);
31
+ }
32
+ return mod;
33
+ };
34
+ function wrapExpress(express) {
35
+ function patchedExpress(...args) {
36
+ const app = express(...args);
37
+ app.use((req, res, next) => {
38
+ if (resolvedHandler)
39
+ return resolvedHandler(req, res, next);
40
+ return next();
41
+ });
42
+ return app;
43
+ }
44
+ Object.setPrototypeOf(patchedExpress, Object.getPrototypeOf(express));
45
+ Object.defineProperties(patchedExpress, Object.getOwnPropertyDescriptors(express));
46
+ return patchedExpress;
47
+ }
48
+ //# sourceMappingURL=auto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AAEH,oDAA4B;AAE5B,yCAAyD;AAEzD,gFAAgF;AAEhF,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,IAAA,sCAA2B,GAAE;KAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;KACrD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACrF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,gFAAgF;AAEhF,MAAM,KAAK,GAAI,gBAAc,CAAC,KAAoD,CAAC;AACnF,IAAI,OAAO,GAAG,KAAK,CAAC;AAEnB,gBAAc,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,EAAU,EAAE,GAAG,IAAe;IAClE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,SAAS,WAAW,CAAC,OAAY;IAC/B,SAAS,cAAc,CAAC,GAAG,IAAe;QACxC,MAAM,GAAG,GAAI,OAAoC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB,EAAE,EAAE;YAC/C,IAAI,eAAe;gBAAE,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAW,CAAC,CAAC;YACnE,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnF,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -74,7 +74,7 @@ function loadDotEnv() {
74
74
  async function main() {
75
75
  loadDotEnv();
76
76
  const saasUrl = (process.env['REMEDIATION_SAAS_URL'] ?? '').replace(/\/+$/, '');
77
- const connectionKey = process.env['REMEDIATION_CONNECTION_KEY'] ?? '';
77
+ const connectionKey = process.argv[2] || process.env['REMEDIATION_CONNECTION_KEY'] || '';
78
78
  const webhookUrl = process.env['REMEDIATION_WEBHOOK_URL'] ?? null;
79
79
  if (!saasUrl || !connectionKey) {
80
80
  console.error('ERROR: REMEDIATION_SAAS_URL and REMEDIATION_CONNECTION_KEY must both be set.');
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kDAA0B;AAC1B,2BAA6D;AAC7D,+BAA4B;AAG5B,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC;AAE5E,SAAS,UAAU;IACjB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC;QAAE,OAAO;IACjC,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAY,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,MAAM,GAAG,GAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,UAAU,EAAE,CAAC;IACb,MAAM,OAAO,GAAS,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAU,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5F,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;IACzF,MAAM,UAAU,GAAM,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAS,IAAI,CAAC;IAE1E,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAqB;QAChC,cAAc,EAAK,aAAa;QAChC,QAAQ,EAAW,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,oBAAoB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;QAC9F,SAAS,EAAU,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI;QAClD,gBAAgB,EAAG,MAAM;QACzB,eAAe,EAAI,OAAO,CAAC,OAAO;QAClC,SAAS,EAAU,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,SAAS;QACpE,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,IAAI;QACvE,aAAa,EAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI;QAC7D,WAAW,EAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,YAAY,CAAuC;QAClG,YAAY,EAAE;YACZ,UAAU,EAAU,KAAK;YACzB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAK,MAAM,UAAU,EAAE;YACtC,UAAU,EAAU,KAAK;SAC1B;QACD,WAAW,EAAE,UAAU;KACxB,CAAC;IAEF,IAAI,QAA2B,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,IAAI,CAC7B,GAAG,OAAO,+BAA+B,EACzC,OAAO,EACP,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QACF,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,eAAK,CAAC,YAAY,CAAC,GAAG,CAAC;YACrC,CAAC,CAAC,QAAQ,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACpF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAqB;QAC/B,SAAS,EAAa,QAAQ,CAAC,SAAS;QACxC,KAAK,EAAiB,QAAQ,CAAC,KAAK;QACpC,QAAQ,EAAc,OAAO;QAC7B,YAAY,EAAU,QAAQ,CAAC,mBAAmB,CAAC,IAAI;QACvD,QAAQ,EAAc,QAAQ,CAAC,mBAAmB,CAAC,QAAQ;QAC3D,qBAAqB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,qBAAqB;QACzE,YAAY,EAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC/C,CAAC;IAEF,IAAA,kBAAa,EAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjF,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAe,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC;IAC1F,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * npx @develler/remediation-agent <connection-key>
4
+ *
5
+ * One-command setup for the Develler Remediation Agent.
6
+ * Installs the package, performs the initial handshake, and
7
+ * writes .remediation-connection.json at the project root.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * npx @develler/remediation-agent <connection-key>
5
+ *
6
+ * One-command setup for the Develler Remediation Agent.
7
+ * Installs the package, performs the initial handshake, and
8
+ * writes .remediation-connection.json at the project root.
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ const child_process_1 = require("child_process");
15
+ const fs_1 = require("fs");
16
+ const path_1 = require("path");
17
+ const axios_1 = __importDefault(require("axios"));
18
+ const CONNECTION_FILE = (0, path_1.join)(process.cwd(), '.remediation-connection.json');
19
+ function loadDotEnv() {
20
+ const envPath = (0, path_1.join)(process.cwd(), '.env');
21
+ if (!(0, fs_1.existsSync)(envPath))
22
+ return;
23
+ for (const line of (0, fs_1.readFileSync)(envPath, 'utf8').split('\n')) {
24
+ const trimmed = line.trim();
25
+ if (!trimmed || trimmed.startsWith('#'))
26
+ continue;
27
+ const eq = trimmed.indexOf('=');
28
+ if (eq === -1)
29
+ continue;
30
+ const key = trimmed.slice(0, eq).trim();
31
+ const value = trimmed.slice(eq + 1).trim().replace(/^["']|["']$/g, '');
32
+ if (key && !(key in process.env))
33
+ process.env[key] = value;
34
+ }
35
+ }
36
+ async function main() {
37
+ loadDotEnv();
38
+ const connectionKey = process.argv[2] || process.env['REMEDIATION_CONNECTION_KEY'] || '';
39
+ const saasUrl = (process.env['REMEDIATION_SAAS_URL'] ?? 'https://app.develler.io').replace(/\/+$/, '');
40
+ if (!connectionKey) {
41
+ console.error('');
42
+ console.error(' Usage: npx @develler/remediation-agent <connection-key>');
43
+ console.error('');
44
+ console.error(' Your connection key is on the Develler dashboard under Setup.');
45
+ console.error('');
46
+ process.exit(1);
47
+ }
48
+ console.log('');
49
+ console.log(' [1/3] Installing @develler/remediation-agent...');
50
+ try {
51
+ (0, child_process_1.execSync)('npm install @develler/remediation-agent', { stdio: 'inherit', cwd: process.cwd() });
52
+ }
53
+ catch {
54
+ console.error(' Failed to run npm install. Make sure npm is available and you are in your project root.');
55
+ process.exit(1);
56
+ }
57
+ console.log('');
58
+ console.log(` [2/3] Connecting to ${saasUrl}...`);
59
+ const payload = {
60
+ connection_key: connectionKey,
61
+ site_url: process.env['APP_URL'] ?? `http://localhost:${process.env['PORT'] ?? '3000'}`,
62
+ site_name: process.env['APP_NAME'] ?? null,
63
+ language_runtime: 'node',
64
+ runtime_version: process.version,
65
+ framework: process.env['REMEDIATION_FRAMEWORK'] ?? 'express',
66
+ framework_version: process.env['REMEDIATION_FRAMEWORK_VERSION'] ?? null,
67
+ agent_version: null,
68
+ environment: (process.env['NODE_ENV'] ?? 'production'),
69
+ capabilities: {
70
+ mode_a_ast: false,
71
+ mode_b_interceptor: true,
72
+ redis_available: false,
73
+ git_access: false,
74
+ },
75
+ webhook_url: null,
76
+ };
77
+ let response;
78
+ try {
79
+ const result = await axios_1.default.post(`${saasUrl}/api/remediation/v1/handshake`, payload, { timeout: 15000 });
80
+ response = result.data;
81
+ }
82
+ catch (err) {
83
+ const message = axios_1.default.isAxiosError(err)
84
+ ? `HTTP ${err.response?.status ?? 'timeout'}: ${JSON.stringify(err.response?.data)}`
85
+ : String(err);
86
+ console.error(` Connection failed: ${message}`);
87
+ process.exit(1);
88
+ }
89
+ if (response.status !== 'accepted') {
90
+ console.error(' Connection rejected. Check your connection key and try again.');
91
+ process.exit(1);
92
+ }
93
+ const config = {
94
+ client_id: response.client_id,
95
+ token: response.token,
96
+ saas_url: saasUrl,
97
+ channel_type: response.instruction_channel.type,
98
+ poll_url: response.instruction_channel.poll_url,
99
+ poll_interval_seconds: response.instruction_channel.poll_interval_seconds,
100
+ connected_at: new Date().toISOString(),
101
+ };
102
+ console.log('');
103
+ console.log(' [3/3] Saving connection config...');
104
+ (0, fs_1.writeFileSync)(CONNECTION_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
105
+ patchDotEnv();
106
+ console.log('');
107
+ console.log(` Connected. client_id: ${String(config.client_id)}`);
108
+ console.log('');
109
+ console.log(' Restart your app and the agent will be active.');
110
+ console.log(' Add .remediation-connection.json to your .gitignore.');
111
+ console.log('');
112
+ }
113
+ function patchDotEnv() {
114
+ const envPath = (0, path_1.join)(process.cwd(), '.env');
115
+ const flag = '--require @develler/remediation-agent/auto';
116
+ const existing = (0, fs_1.existsSync)(envPath) ? (0, fs_1.readFileSync)(envPath, 'utf8') : '';
117
+ if (existing.includes(flag))
118
+ return;
119
+ const nodeOptsMatch = existing.match(/^NODE_OPTIONS=(.*)$/m);
120
+ let updated;
121
+ if (nodeOptsMatch) {
122
+ updated = existing.replace(/^NODE_OPTIONS=(.*)$/m, `NODE_OPTIONS=$1 ${flag}`);
123
+ }
124
+ else {
125
+ updated = existing.trimEnd() + (existing ? '\n' : '') + `NODE_OPTIONS=${flag}\n`;
126
+ }
127
+ (0, fs_1.writeFileSync)(envPath, updated);
128
+ }
129
+ main().catch((err) => {
130
+ const msg = err instanceof Error ? err.message : String(err);
131
+ console.error(`Unexpected error: ${msg}`);
132
+ process.exit(1);
133
+ });
134
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "@develler/remediation-agent",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "Remediation agent for Node.js/Express — real-time PII masking and automated code-fix pipeline",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": "./dist/index.js",
9
+ "./auto": "./dist/auto.js"
10
+ },
7
11
  "bin": {
8
- "remediation-connect": "dist/commands/connect.js"
12
+ "remediation-connect": "dist/commands/connect.js",
13
+ "remediation-agent": "dist/commands/setup.js"
9
14
  },
10
15
  "files": [
11
16
  "dist/**/*",