@goplus/agentguard 1.0.14 → 1.1.3

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 (91) hide show
  1. package/README.md +33 -2
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +172 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cloud/client.d.ts +19 -0
  7. package/dist/cloud/client.d.ts.map +1 -0
  8. package/dist/cloud/client.js +86 -0
  9. package/dist/cloud/client.js.map +1 -0
  10. package/dist/config.d.ts +31 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +131 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +25 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/installers.d.ts +10 -0
  19. package/dist/installers.d.ts.map +1 -0
  20. package/dist/installers.js +137 -0
  21. package/dist/installers.js.map +1 -0
  22. package/dist/mcp-server.js +3 -2
  23. package/dist/mcp-server.js.map +1 -1
  24. package/dist/postinstall.d.ts +3 -0
  25. package/dist/postinstall.d.ts.map +1 -0
  26. package/dist/postinstall.js +13 -0
  27. package/dist/postinstall.js.map +1 -0
  28. package/dist/runtime/audit.d.ts +10 -0
  29. package/dist/runtime/audit.d.ts.map +1 -0
  30. package/dist/runtime/audit.js +94 -0
  31. package/dist/runtime/audit.js.map +1 -0
  32. package/dist/runtime/evaluator.d.ts +3 -0
  33. package/dist/runtime/evaluator.d.ts.map +1 -0
  34. package/dist/runtime/evaluator.js +197 -0
  35. package/dist/runtime/evaluator.js.map +1 -0
  36. package/dist/runtime/policy.d.ts +12 -0
  37. package/dist/runtime/policy.d.ts.map +1 -0
  38. package/dist/runtime/policy.js +81 -0
  39. package/dist/runtime/policy.js.map +1 -0
  40. package/dist/runtime/protect.d.ts +22 -0
  41. package/dist/runtime/protect.d.ts.map +1 -0
  42. package/dist/runtime/protect.js +172 -0
  43. package/dist/runtime/protect.js.map +1 -0
  44. package/dist/runtime/redaction.d.ts +6 -0
  45. package/dist/runtime/redaction.d.ts.map +1 -0
  46. package/dist/runtime/redaction.js +103 -0
  47. package/dist/runtime/redaction.js.map +1 -0
  48. package/dist/runtime/types.d.ts +62 -0
  49. package/dist/runtime/types.d.ts.map +1 -0
  50. package/dist/runtime/types.js +3 -0
  51. package/dist/runtime/types.js.map +1 -0
  52. package/dist/scanner/rules/trojan.js +1 -1
  53. package/dist/scanner/rules/trojan.js.map +1 -1
  54. package/dist/tests/cloud-live.test.d.ts +2 -0
  55. package/dist/tests/cloud-live.test.d.ts.map +1 -0
  56. package/dist/tests/cloud-live.test.js +68 -0
  57. package/dist/tests/cloud-live.test.js.map +1 -0
  58. package/dist/tests/installer.test.d.ts +2 -0
  59. package/dist/tests/installer.test.d.ts.map +1 -0
  60. package/dist/tests/installer.test.js +32 -0
  61. package/dist/tests/installer.test.js.map +1 -0
  62. package/dist/tests/runtime-cloud.test.d.ts +2 -0
  63. package/dist/tests/runtime-cloud.test.d.ts.map +1 -0
  64. package/dist/tests/runtime-cloud.test.js +202 -0
  65. package/dist/tests/runtime-cloud.test.js.map +1 -0
  66. package/dist/version.d.ts +2 -0
  67. package/dist/version.d.ts.map +1 -0
  68. package/dist/version.js +7 -0
  69. package/dist/version.js.map +1 -0
  70. package/docs/SECURITY-POLICY.md +558 -0
  71. package/docs/architecture.md +54 -0
  72. package/docs/claude-code.md +41 -0
  73. package/docs/cloud-connect.md +73 -0
  74. package/docs/cloud-native-api.md +526 -0
  75. package/docs/codex.md +38 -0
  76. package/docs/goplus-api.md +38 -0
  77. package/docs/mcp-server.md +39 -0
  78. package/docs/openclaw.md +41 -0
  79. package/docs/privacy-boundary.md +37 -0
  80. package/docs/sdk.md +83 -0
  81. package/docs/trust-cli.md +58 -0
  82. package/examples/openclaw-docker/Dockerfile +10 -0
  83. package/examples/openclaw-docker/README.md +16 -0
  84. package/examples/openclaw-docker/docker-compose.yml +8 -0
  85. package/examples/openclaw-docker/plugin.ts +8 -0
  86. package/package.json +7 -2
  87. package/skills/agentguard/SKILL.md +157 -61
  88. package/skills/agentguard/{scripts/package.json → package.json} +2 -1
  89. package/skills/agentguard/patrol-checks.md +12 -2
  90. package/skills/agentguard/scan-rules.md +1 -1
  91. package/skills/agentguard/scripts/checkup-report.js +71 -30
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const node_os_1 = require("node:os");
11
+ const installers_js_1 = require("../installers.js");
12
+ (0, node_test_1.describe)('Agent template installers', () => {
13
+ (0, node_test_1.it)('writes Claude Code hook and settings templates', () => {
14
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-claude-'));
15
+ const result = (0, installers_js_1.installAgentTemplates)('claude-code', { cwd: dir });
16
+ strict_1.default.equal(result.files.length, 2);
17
+ strict_1.default.ok((0, node_fs_1.existsSync)((0, node_path_1.join)(dir, '.claude', 'hooks', 'agentguard-protect.sh')));
18
+ strict_1.default.ok((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, '.claude', 'settings.local.json'), 'utf8').includes('agentguard-protect.sh'));
19
+ });
20
+ (0, node_test_1.it)('writes Codex skill and hook templates', () => {
21
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-codex-'));
22
+ (0, installers_js_1.installAgentTemplates)('codex', { cwd: dir });
23
+ strict_1.default.ok((0, node_fs_1.existsSync)((0, node_path_1.join)(dir, '.codex', 'skills', 'agentguard', 'SKILL.md')));
24
+ strict_1.default.ok((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, '.codex', 'agentguard-hook.example.json'), 'utf8').includes('AGENTGUARD_AGENT_HOST=codex'));
25
+ });
26
+ (0, node_test_1.it)('writes OpenClaw plugin template', () => {
27
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-openclaw-'));
28
+ (0, installers_js_1.installAgentTemplates)('openclaw', { cwd: dir });
29
+ strict_1.default.ok((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, 'openclaw.agentguard.plugin.ts'), 'utf8').includes('registerOpenClawPlugin'));
30
+ });
31
+ });
32
+ //# sourceMappingURL=installer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.test.js","sourceRoot":"","sources":["../../src/tests/installer.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,gEAAwC;AACxC,qCAAgE;AAChE,yCAAiC;AACjC,qCAAiC;AACjC,oDAAyD;AAEzD,IAAA,oBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAA,cAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAA,qCAAqB,EAAC,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAElE,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,gBAAM,CAAC,EAAE,CAAC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAC9E,gBAAM,CAAC,EAAE,CAAC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,SAAS,EAAE,qBAAqB,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7D,IAAA,qCAAqB,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAE7C,gBAAM,CAAC,EAAE,CAAC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/E,gBAAM,CAAC,EAAE,CAAC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,QAAQ,EAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC/H,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAChE,IAAA,qCAAqB,EAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAEhD,gBAAM,CAAC,EAAE,CAAC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime-cloud.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-cloud.test.d.ts","sourceRoot":"","sources":["../../src/tests/runtime-cloud.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const node_fs_1 = require("node:fs");
9
+ const node_path_1 = require("node:path");
10
+ const node_os_1 = require("node:os");
11
+ const evaluator_js_1 = require("../runtime/evaluator.js");
12
+ const policy_js_1 = require("../runtime/policy.js");
13
+ const redaction_js_1 = require("../runtime/redaction.js");
14
+ const audit_js_1 = require("../runtime/audit.js");
15
+ const protect_js_1 = require("../runtime/protect.js");
16
+ const config_js_1 = require("../config.js");
17
+ const client_js_1 = require("../cloud/client.js");
18
+ (0, node_test_1.describe)('Runtime Cloud bridge', () => {
19
+ (0, node_test_1.it)('redacts API keys, bearer tokens, private keys, and URL secrets', () => {
20
+ const privateKey = '-----BEGIN PRIVATE KEY-----\nabc123\n-----END PRIVATE KEY-----';
21
+ const redacted = (0, redaction_js_1.redactText)(`Authorization: Bearer sk-test-secret-value url=https://api.example.com?a=1&token=secret-value ${privateKey}`);
22
+ strict_1.default.ok(redacted.includes('[REDACTED]'));
23
+ strict_1.default.ok(!redacted.includes('sk-test-secret-value'));
24
+ strict_1.default.ok(!redacted.includes('secret-value'));
25
+ strict_1.default.ok(!redacted.includes('abc123'));
26
+ });
27
+ (0, node_test_1.it)('rejects malformed keys and non-HTTPS Cloud URLs', () => {
28
+ const previousHome = process.env.AGENTGUARD_HOME;
29
+ process.env.AGENTGUARD_HOME = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-config-'));
30
+ try {
31
+ strict_1.default.throws(() => (0, config_js_1.connectCloud)({ apiKey: 'not-a-key', cloudUrl: 'https://agentguard.example' }), /Invalid AgentGuard API key format/);
32
+ strict_1.default.throws(() => (0, config_js_1.connectCloud)({ apiKey: 'ag_live_test_key_123456', cloudUrl: 'http://127.0.0.1:9' }), /must use https/);
33
+ const config = (0, config_js_1.connectCloud)({
34
+ apiKey: 'ag_live_test_key_123456',
35
+ cloudUrl: 'https://agentguard.example',
36
+ });
37
+ strict_1.default.equal(config.cloudUrl, 'https://agentguard.example');
38
+ strict_1.default.equal((0, node_fs_1.statSync)((0, config_js_1.getAgentGuardPaths)().configPath).mode & 0o777, 0o600);
39
+ strict_1.default.throws(() => new client_js_1.AgentGuardCloudClient({ cloudUrl: 'http://127.0.0.1:9', apiKey: 'ag_live_test_key_123456' }), /must use https/);
40
+ }
41
+ finally {
42
+ if (previousHome === undefined)
43
+ delete process.env.AGENTGUARD_HOME;
44
+ else
45
+ process.env.AGENTGUARD_HOME = previousHome;
46
+ }
47
+ });
48
+ (0, node_test_1.it)('evaluates local action with cached Cloud policy shape', async () => {
49
+ const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
50
+ policy.policyVersion = 'runtime-test';
51
+ policy.blockedCommandPatterns = ['custom-danger'];
52
+ const decision = await (0, evaluator_js_1.evaluateLocalAction)(policy, {
53
+ sessionId: 'sess_test',
54
+ agentHost: 'codex',
55
+ actionType: 'shell',
56
+ toolName: 'Bash',
57
+ input: 'custom-danger --token=secret-value',
58
+ });
59
+ strict_1.default.equal(decision.decision, 'block');
60
+ strict_1.default.equal(decision.policyVersion, 'runtime-test');
61
+ strict_1.default.ok(JSON.stringify(decision).includes('[REDACTED]') || !JSON.stringify(decision).includes('secret-value'));
62
+ });
63
+ (0, node_test_1.it)('keeps spooled audit events when Cloud ingest fails', async () => {
64
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-spool-'));
65
+ const spool = (0, node_path_1.join)(dir, 'events.jsonl');
66
+ const event = sampleEvent();
67
+ (0, audit_js_1.spoolEvent)(spool, event);
68
+ const result = await (0, audit_js_1.flushEventSpool)(spool, async () => {
69
+ throw new Error('network down');
70
+ });
71
+ strict_1.default.deepEqual(result, { flushed: 0, remaining: 1 });
72
+ const spoolContent = (0, node_fs_1.readFileSync)(spool, 'utf8');
73
+ strict_1.default.ok(spoolContent.includes('act_test'));
74
+ strict_1.default.ok(!spoolContent.includes('metadata-secret'));
75
+ strict_1.default.ok(!spoolContent.includes('cwd-secret'));
76
+ });
77
+ (0, node_test_1.it)('flushes spooled audit events when Cloud ingest succeeds', async () => {
78
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-spool-ok-'));
79
+ const spool = (0, node_path_1.join)(dir, 'events.jsonl');
80
+ const event = sampleEvent();
81
+ const batches = [];
82
+ (0, audit_js_1.spoolEvent)(spool, event);
83
+ const result = await (0, audit_js_1.flushEventSpool)(spool, async (events) => {
84
+ batches.push(events);
85
+ });
86
+ strict_1.default.deepEqual(result, { flushed: 1, remaining: 0 });
87
+ strict_1.default.equal(batches[0][0].actionId, 'act_test');
88
+ });
89
+ (0, node_test_1.it)('protectAction falls back to cached policy and writes local audit', async () => {
90
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-protect-'));
91
+ const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
92
+ policy.blockedCommandPatterns = ['cached-danger'];
93
+ const config = {
94
+ version: 1,
95
+ level: 'balanced',
96
+ cloudUrl: 'https://127.0.0.1:9',
97
+ apiKey: 'ag_live_test_key_123456',
98
+ policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
99
+ auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
100
+ eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
101
+ };
102
+ (0, node_fs_1.writeFileSync)(config.policyCachePath, JSON.stringify(policy));
103
+ const result = await (0, protect_js_1.protectAction)({
104
+ config,
105
+ stdinText: JSON.stringify({
106
+ tool_name: 'Bash',
107
+ tool_input: { command: 'cached-danger --api_key=secret-value' },
108
+ session_id: 'sess_test',
109
+ }),
110
+ });
111
+ strict_1.default.ok(result);
112
+ strict_1.default.equal(result?.decision.decision, 'block');
113
+ const audit = (0, node_fs_1.readFileSync)(config.auditPath, 'utf8');
114
+ strict_1.default.ok(audit.includes('[REDACTED]'));
115
+ strict_1.default.ok(!audit.includes('secret-value'));
116
+ });
117
+ (0, node_test_1.it)('syncs redacted audit events and creates Cloud approval on require_approval', async () => {
118
+ const originalFetch = globalThis.fetch;
119
+ const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'agentguard-cloud-ok-'));
120
+ const policy = (0, policy_js_1.getDefaultEffectiveRuntimePolicy)();
121
+ policy.protectedPaths = ['/workspace/.env'];
122
+ policy.decisions.secretAccess = 'require_approval';
123
+ const requests = [];
124
+ globalThis.fetch = (async (input, init) => {
125
+ const url = String(input);
126
+ requests.push({ url, body: typeof init?.body === 'string' ? init.body : undefined });
127
+ if (url.endsWith('/api/v1/policies/effective')) {
128
+ return jsonResponse({ success: true, data: policy });
129
+ }
130
+ if (url.endsWith('/api/v1/events/ingest')) {
131
+ return jsonResponse({ success: true, data: { accepted: 1, rejected: 0 } }, 202);
132
+ }
133
+ if (url.endsWith('/api/v1/approvals')) {
134
+ return jsonResponse({
135
+ success: true,
136
+ data: {
137
+ approvalId: 'apr_test',
138
+ actionId: 'act_test',
139
+ sessionId: 'sess_test',
140
+ status: 'pending',
141
+ },
142
+ }, 202);
143
+ }
144
+ return jsonResponse({ success: false, error: { message: 'not found' } }, 404);
145
+ });
146
+ try {
147
+ const config = {
148
+ version: 1,
149
+ level: 'balanced',
150
+ cloudUrl: 'https://agentguard.example',
151
+ apiKey: 'ag_live_test_key_123456',
152
+ policyCachePath: (0, node_path_1.join)(dir, 'policy.json'),
153
+ auditPath: (0, node_path_1.join)(dir, 'audit.jsonl'),
154
+ eventSpoolPath: (0, node_path_1.join)(dir, 'spool.jsonl'),
155
+ };
156
+ const result = await (0, protect_js_1.protectAction)({
157
+ config,
158
+ stdinText: JSON.stringify({
159
+ tool_name: 'Read',
160
+ tool_input: { file_path: '/workspace/.env?token=secret-value' },
161
+ session_id: 'sess_test',
162
+ sourceSkill: 'skill?api_key=secret-value',
163
+ metadata: { nested: { token: 'secret-value' } },
164
+ }),
165
+ });
166
+ strict_1.default.equal(result?.decision.decision, 'require_approval');
167
+ strict_1.default.equal(result?.approvalId, 'apr_test');
168
+ strict_1.default.ok(requests.some((request) => request.url.endsWith('/api/v1/events/ingest')));
169
+ strict_1.default.ok(requests.some((request) => request.url.endsWith('/api/v1/approvals')));
170
+ strict_1.default.ok(!requests.map((request) => request.body || '').join('\n').includes('secret-value'));
171
+ strict_1.default.ok(requests.map((request) => request.body || '').join('\n').includes('[REDACTED]'));
172
+ }
173
+ finally {
174
+ globalThis.fetch = originalFetch;
175
+ }
176
+ });
177
+ });
178
+ function sampleEvent() {
179
+ return {
180
+ actionId: 'act_test',
181
+ sessionId: 'sess_test',
182
+ agentHost: 'codex',
183
+ actionType: 'shell',
184
+ toolName: 'Bash',
185
+ input: 'echo ok',
186
+ decision: 'allow',
187
+ riskScore: 0,
188
+ riskLevel: 'safe',
189
+ reasons: [],
190
+ policyVersion: 'runtime-test',
191
+ cwd: '/tmp/project?token=cwd-secret',
192
+ sourceSkill: 'skill?api_key=source-secret',
193
+ metadata: { token: 'metadata-secret', nested: { authorization: 'Bearer metadata-secret' } },
194
+ };
195
+ }
196
+ function jsonResponse(body, status = 200) {
197
+ return new Response(JSON.stringify(body), {
198
+ status,
199
+ headers: { 'content-type': 'application/json' },
200
+ });
201
+ }
202
+ //# sourceMappingURL=runtime-cloud.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-cloud.test.js","sourceRoot":"","sources":["../../src/tests/runtime-cloud.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const packageVersion: string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,EAEd,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageVersion = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ exports.packageVersion = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, '../package.json'), 'utf8')).version;
7
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,yCAAiC;AAEpB,QAAA,cAAc,GAAG,IAAI,CAAC,KAAK,CACtC,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CACzD,CAAC,OAAiB,CAAC"}