@anmol-srv/sigil 0.12.0 → 0.12.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anmol-srv/sigil",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "type": "module",
5
5
  "description": "Local-first memory infrastructure for AI coding agents. One brain shared across Claude Code, Codex CLI, Cursor, Kiro, Continue, Cline, Windsurf, or any MCP client. Organized in pluggable pods, stored in your own Postgres. No cloud, no telemetry. Auto-captured from Claude Code via hooks; surfaced everywhere else as a 9-tool MCP server.",
6
6
  "bin": {
@@ -562,7 +562,7 @@ function setRoute(name) {
562
562
  if (name === 'health') refreshHealth();
563
563
  if (name === 'kb') refreshKb();
564
564
  if (name === 'methods') refreshMethods();
565
- if (name === 'settings') refreshEnv();
565
+ if (name === 'settings') { refreshEnv(); refreshSettingsClients(); }
566
566
  if (name === 'devices') refreshDevices();
567
567
  if (name === 'activity') { ensureActivityWs(); loadTraces(); }
568
568
  }
@@ -676,6 +676,46 @@ async function refreshEnv() {
676
676
  }
677
677
  }
678
678
 
679
+ // ── Settings: coding agents ──────────────────────────────────────────
680
+ // Same flow as the onboarding CONNECTORS step, surfaced post-onboarding so
681
+ // users who skipped the step (or completed setup before this card existed)
682
+ // can still wire up Claude Code / Cursor / Codex / Kiro / Hermes.
683
+ async function refreshSettingsClients() {
684
+ const host = $('#settings-connectors');
685
+ if (!host) return;
686
+ try {
687
+ const { connectors } = await rpc('listConnectors');
688
+ host.innerHTML = '';
689
+ if (!connectors.length) {
690
+ host.innerHTML = '<div class="muted">no agents registered</div>';
691
+ return;
692
+ }
693
+ connectors.forEach((c) => host.appendChild(connectorCard(c, onSettingsClientAction)));
694
+ } catch (err) {
695
+ host.innerHTML = `<div class="muted">could not load agents: ${escape(err.message)}</div>`;
696
+ }
697
+ }
698
+
699
+ async function onSettingsClientAction(id, action) {
700
+ const host = $('#settings-connectors');
701
+ const card = host?.querySelector(`[data-id="${id}"]`);
702
+ if (action === 'disconnect') {
703
+ try {
704
+ await rpc('disconnectConnector', { id });
705
+ toast({ variant: 'success', message: `${id} disconnected` });
706
+ } catch (err) { toast({ variant: 'error', message: err.message, hint: err.hint, code: err.code }); }
707
+ return refreshSettingsClients();
708
+ }
709
+ if (card) card.replaceWith(connectorCard({ id, label: id, hint: '', uiState: 'connecting' }, onSettingsClientAction));
710
+ try {
711
+ await rpc('connectConnector', { id });
712
+ toast({ variant: 'success', message: `${id} connected` });
713
+ } catch (err) {
714
+ toast({ variant: 'error', message: err.message || `could not connect ${id}`, hint: err.hint, code: err.code });
715
+ }
716
+ return refreshSettingsClients();
717
+ }
718
+
679
719
  // ── Settings: live provider switcher (LLM + embedding) ───────────────
680
720
  // Reuses the wizard's provider catalogs + the shared applyEmbeddingProvider
681
721
  // gate. "Apply" persists config and restarts the daemon so the new pool /
@@ -395,6 +395,16 @@
395
395
  </div>
396
396
  </div>
397
397
 
398
+ <!-- Coding agents — single-click install of Sigil hooks into Claude Code,
399
+ Cursor, Codex, Kiro, Hermes. Cards reuse the wizard's connectorCard. -->
400
+ <div class="panel" style="padding: var(--s-5); margin-bottom: var(--s-4);">
401
+ <div class="title-block" style="margin-bottom: var(--s-4);">
402
+ <h3 style="margin: 0;">Coding agents</h3>
403
+ <p class="muted text-sm" style="margin: 4px 0 0;">One shared memory across every AI coding tool you use. Sigil writes a small CLAUDE.md/AGENTS.md import + hook config — fully reversible.</p>
404
+ </div>
405
+ <div class="connector-grid" id="settings-connectors"><div class="muted">detecting installed tools…</div></div>
406
+ </div>
407
+
398
408
  <!-- Current config + switch controls -->
399
409
  <div class="panel" style="padding: var(--s-5); margin-bottom: var(--s-4);">
400
410
  <div class="row"><div class="k">Database</div><div class="v" id="cfg-db">…</div></div>