@dollhousemcp/mcp-server 2.0.16 → 2.0.17
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/CHANGELOG.md +6 -0
- package/README.md.backup +18 -0
- package/dist/elements/base/BaseElementManager.d.ts.map +1 -1
- package/dist/elements/base/BaseElementManager.js +17 -1
- package/dist/elements/memories/MemoryManager.d.ts.map +1 -1
- package/dist/elements/memories/MemoryManager.js +13 -2
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +3 -3
- package/dist/handlers/element-crud/createElement.d.ts.map +1 -1
- package/dist/handlers/element-crud/createElement.js +6 -2
- package/dist/handlers/element-crud/editElement.d.ts.map +1 -1
- package/dist/handlers/element-crud/editElement.js +6 -2
- package/dist/handlers/element-crud/helpers.d.ts +2 -0
- package/dist/handlers/element-crud/helpers.d.ts.map +1 -1
- package/dist/handlers/element-crud/helpers.js +21 -2
- package/dist/handlers/mcp-aql/IntrospectionResolver.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/IntrospectionResolver.js +34 -7
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.js +19 -4
- package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationSchema.js +3 -2
- package/dist/handlers/mcp-aql/evaluatePermission.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/evaluatePermission.js +2 -1
- package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts +8 -0
- package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ElementPolicies.js +26 -1
- package/dist/utils/permissionHooks.d.ts +39 -3
- package/dist/utils/permissionHooks.d.ts.map +1 -1
- package/dist/utils/permissionHooks.js +651 -74
- package/dist/web/public/permissions.js +38 -26
- package/dist/web/public/setup.js +367 -94
- package/dist/web/routes/permissionRoutes.d.ts.map +1 -1
- package/dist/web/routes/permissionRoutes.js +32 -13
- package/dist/web/routes/setupRoutes.d.ts +1 -0
- package/dist/web/routes/setupRoutes.d.ts.map +1 -1
- package/dist/web/routes/setupRoutes.js +113 -41
- package/package.json +3 -1
- package/scripts/pretooluse-vscode.sh +163 -0
- package/scripts/pretooluse-windsurf.sh +166 -4
- package/server.json +2 -2
|
@@ -152,12 +152,18 @@
|
|
|
152
152
|
hasElements ? `${data.activeElementCount} elements` : 'No ensemble';
|
|
153
153
|
}
|
|
154
154
|
if (hookDot && hookLabel) {
|
|
155
|
-
const
|
|
155
|
+
const hasExternalRules = (data.denyPatterns?.length || 0)
|
|
156
156
|
+ (data.allowPatterns?.length || 0)
|
|
157
157
|
+ (data.confirmPatterns?.length || 0) > 0;
|
|
158
|
-
|
|
158
|
+
const hasAnyRules = (data.denyRules?.length || 0)
|
|
159
|
+
+ (data.allowRules?.length || 0)
|
|
160
|
+
+ (data.confirmRules?.length || 0) > 0;
|
|
161
|
+
if (!hasAnyRules) {
|
|
159
162
|
hookDot.dataset.status = 'inactive';
|
|
160
163
|
hookLabel.textContent = 'No policies';
|
|
164
|
+
} else if (!hasExternalRules) {
|
|
165
|
+
hookDot.dataset.status = 'active';
|
|
166
|
+
hookLabel.textContent = 'MCP-AQL policies active';
|
|
161
167
|
} else if (data.permissionPromptActive) {
|
|
162
168
|
hookDot.dataset.status = 'active';
|
|
163
169
|
hookLabel.textContent = 'Prompt tool active';
|
|
@@ -175,9 +181,9 @@
|
|
|
175
181
|
}
|
|
176
182
|
|
|
177
183
|
function renderSummaryStats(data) {
|
|
178
|
-
setText('perm-stat-deny-count',
|
|
179
|
-
setText('perm-stat-allow-count',
|
|
180
|
-
setText('perm-stat-confirm-count',
|
|
184
|
+
setText('perm-stat-deny-count', getAggregateRules(data, 'denyRules').length);
|
|
185
|
+
setText('perm-stat-allow-count', getAggregateRules(data, 'allowRules').length);
|
|
186
|
+
setText('perm-stat-confirm-count', getAggregateRules(data, 'confirmRules').length);
|
|
181
187
|
setText('perm-stat-decisions', data.recentDecisions?.length || 0);
|
|
182
188
|
|
|
183
189
|
// Decision breakdown
|
|
@@ -271,21 +277,21 @@
|
|
|
271
277
|
</li>
|
|
272
278
|
`).join('');
|
|
273
279
|
|
|
274
|
-
renderPatternList('perm-selected-deny-list', selectedData.
|
|
275
|
-
renderPatternList('perm-selected-allow-list', selectedData.
|
|
276
|
-
renderPatternList('perm-selected-confirm-list', selectedData.
|
|
280
|
+
renderPatternList('perm-selected-deny-list', selectedData.denyRules || [], 'deny');
|
|
281
|
+
renderPatternList('perm-selected-allow-list', selectedData.allowRules || [], 'allow');
|
|
282
|
+
renderPatternList('perm-selected-confirm-list', selectedData.confirmRules || [], 'confirm');
|
|
277
283
|
}
|
|
278
284
|
|
|
279
285
|
function renderDenyPatterns(data) {
|
|
280
|
-
renderPatternList('perm-deny-list',
|
|
286
|
+
renderPatternList('perm-deny-list', getAggregateRules(data, 'denyRules'), 'deny');
|
|
281
287
|
}
|
|
282
288
|
|
|
283
289
|
function renderAllowPatterns(data) {
|
|
284
|
-
renderPatternList('perm-allow-list',
|
|
290
|
+
renderPatternList('perm-allow-list', getAggregateRules(data, 'allowRules'), 'allow');
|
|
285
291
|
}
|
|
286
292
|
|
|
287
293
|
function renderConfirmPatterns(data) {
|
|
288
|
-
renderPatternList('perm-confirm-list',
|
|
294
|
+
renderPatternList('perm-confirm-list', getAggregateRules(data, 'confirmRules'), 'confirm');
|
|
289
295
|
}
|
|
290
296
|
|
|
291
297
|
function renderPatternList(elementId, patterns, type) {
|
|
@@ -293,7 +299,7 @@
|
|
|
293
299
|
if (!list) return;
|
|
294
300
|
|
|
295
301
|
if (patterns.length === 0) {
|
|
296
|
-
list.innerHTML = `<li class="perm-pattern-empty">No ${type}
|
|
302
|
+
list.innerHTML = `<li class="perm-pattern-empty">No ${type} rules active</li>`;
|
|
297
303
|
return;
|
|
298
304
|
}
|
|
299
305
|
|
|
@@ -359,11 +365,11 @@
|
|
|
359
365
|
sessionId: sessionId,
|
|
360
366
|
activeElementCount: elements.length,
|
|
361
367
|
hasAllowlist: elements.some(function (element) {
|
|
362
|
-
return Array.isArray(element.
|
|
368
|
+
return Array.isArray(element.allowRules) && element.allowRules.length > 0;
|
|
363
369
|
}),
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
370
|
+
denyRules: flattenElementPatterns(elements, 'denyRules'),
|
|
371
|
+
allowRules: flattenElementPatterns(elements, 'allowRules'),
|
|
372
|
+
confirmRules: flattenElementPatterns(elements, 'confirmRules'),
|
|
367
373
|
elements: elements.map(function (element) {
|
|
368
374
|
return {
|
|
369
375
|
type: element.type,
|
|
@@ -388,6 +394,12 @@
|
|
|
388
394
|
return Array.from(new Set(combined.concat(perElement)));
|
|
389
395
|
}
|
|
390
396
|
|
|
397
|
+
function getAggregateRules(data, key) {
|
|
398
|
+
const combined = Array.isArray(data && data[key]) ? data[key] : [];
|
|
399
|
+
const perElement = flattenElementPatterns((data && data.elements) || [], key);
|
|
400
|
+
return Array.from(new Set(combined.concat(perElement)));
|
|
401
|
+
}
|
|
402
|
+
|
|
391
403
|
// ── Dashboard HTML ─────────────────────────────────────────
|
|
392
404
|
|
|
393
405
|
function buildDashboardHTML() {
|
|
@@ -448,15 +460,15 @@
|
|
|
448
460
|
<div class="perm-stat-grid">
|
|
449
461
|
<div class="perm-stat">
|
|
450
462
|
<div class="perm-stat-value perm-stat-value--deny" id="perm-stat-deny-count">0</div>
|
|
451
|
-
<div class="perm-stat-label">Deny
|
|
463
|
+
<div class="perm-stat-label">Deny Rules</div>
|
|
452
464
|
</div>
|
|
453
465
|
<div class="perm-stat">
|
|
454
466
|
<div class="perm-stat-value perm-stat-value--allow" id="perm-stat-allow-count">0</div>
|
|
455
|
-
<div class="perm-stat-label">Allow
|
|
467
|
+
<div class="perm-stat-label">Allow Rules</div>
|
|
456
468
|
</div>
|
|
457
469
|
<div class="perm-stat">
|
|
458
470
|
<div class="perm-stat-value perm-stat-value--ask" id="perm-stat-confirm-count">0</div>
|
|
459
|
-
<div class="perm-stat-label">Confirm
|
|
471
|
+
<div class="perm-stat-label">Confirm Rules</div>
|
|
460
472
|
</div>
|
|
461
473
|
<div class="perm-stat">
|
|
462
474
|
<div class="perm-stat-value" id="perm-stat-decisions">0</div>
|
|
@@ -501,19 +513,19 @@
|
|
|
501
513
|
</ul>
|
|
502
514
|
</div>
|
|
503
515
|
<div class="perm-selected-panel">
|
|
504
|
-
<h4 class="perm-selected-panel-title">Deny
|
|
516
|
+
<h4 class="perm-selected-panel-title">Deny Rules</h4>
|
|
505
517
|
<ul class="perm-pattern-list" id="perm-selected-deny-list">
|
|
506
518
|
<li class="perm-pattern-empty">Loading...</li>
|
|
507
519
|
</ul>
|
|
508
520
|
</div>
|
|
509
521
|
<div class="perm-selected-panel">
|
|
510
|
-
<h4 class="perm-selected-panel-title">Allow
|
|
522
|
+
<h4 class="perm-selected-panel-title">Allow Rules</h4>
|
|
511
523
|
<ul class="perm-pattern-list" id="perm-selected-allow-list">
|
|
512
524
|
<li class="perm-pattern-empty">Loading...</li>
|
|
513
525
|
</ul>
|
|
514
526
|
</div>
|
|
515
527
|
<div class="perm-selected-panel">
|
|
516
|
-
<h4 class="perm-selected-panel-title">Confirm
|
|
528
|
+
<h4 class="perm-selected-panel-title">Confirm Rules</h4>
|
|
517
529
|
<ul class="perm-pattern-list" id="perm-selected-confirm-list">
|
|
518
530
|
<li class="perm-pattern-empty">Loading...</li>
|
|
519
531
|
</ul>
|
|
@@ -531,7 +543,7 @@
|
|
|
531
543
|
<div class="perm-selected-header perm-selected-header--compact">
|
|
532
544
|
<div>
|
|
533
545
|
<div class="perm-selected-title">All Sessions</div>
|
|
534
|
-
<div class="perm-selected-subtitle">${esc('Aggregate policy state across all live and persisted sessions.
|
|
546
|
+
<div class="perm-selected-subtitle">${esc('Aggregate policy state across all live and persisted sessions. Rules shown here include both Dollhouse operation policies and external tool restrictions.')}${dataAdvisoryPlaceholder()}</div>
|
|
535
547
|
</div>
|
|
536
548
|
</div>
|
|
537
549
|
|
|
@@ -543,19 +555,19 @@
|
|
|
543
555
|
</ul>
|
|
544
556
|
</div>
|
|
545
557
|
<div class="perm-selected-panel">
|
|
546
|
-
<h4 class="perm-selected-panel-title">Deny
|
|
558
|
+
<h4 class="perm-selected-panel-title">Deny Rules</h4>
|
|
547
559
|
<ul class="perm-pattern-list" id="perm-deny-list">
|
|
548
560
|
<li class="perm-pattern-empty">Loading...</li>
|
|
549
561
|
</ul>
|
|
550
562
|
</div>
|
|
551
563
|
<div class="perm-selected-panel">
|
|
552
|
-
<h4 class="perm-selected-panel-title">Allow
|
|
564
|
+
<h4 class="perm-selected-panel-title">Allow Rules</h4>
|
|
553
565
|
<ul class="perm-pattern-list" id="perm-allow-list">
|
|
554
566
|
<li class="perm-pattern-empty">Loading...</li>
|
|
555
567
|
</ul>
|
|
556
568
|
</div>
|
|
557
569
|
<div class="perm-selected-panel">
|
|
558
|
-
<h4 class="perm-selected-panel-title">Confirm
|
|
570
|
+
<h4 class="perm-selected-panel-title">Confirm Rules</h4>
|
|
559
571
|
<ul class="perm-pattern-list" id="perm-confirm-list">
|
|
560
572
|
<li class="perm-pattern-empty">Loading...</li>
|
|
561
573
|
</ul>
|