@archznn/crewloop-skills 0.2.0 → 0.4.0

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 (106) hide show
  1. package/README.md +21 -31
  2. package/assets/templates/skill-template.md +58 -0
  3. package/package.json +5 -1
  4. package/references/conventions.md +144 -0
  5. package/references/obsidian-mcp-usage.md +190 -0
  6. package/references/skill-anatomy.md +77 -0
  7. package/references/workflow.md +64 -0
  8. package/servers/dashboard/README.md +87 -0
  9. package/servers/dashboard/bin/crewloop-dashboard.js +5 -0
  10. package/servers/dashboard/config-examples/codex-hooks.json +14 -0
  11. package/servers/dashboard/config-examples/kimi-code-config.toml +6 -0
  12. package/servers/dashboard/config-examples/opencode-plugin/crewloop-dashboard.js +64 -0
  13. package/servers/dashboard/package.json +46 -0
  14. package/servers/dashboard/public/app.js +447 -0
  15. package/servers/dashboard/public/index.html +96 -0
  16. package/servers/dashboard/public/styles.css +664 -0
  17. package/servers/dashboard/src/adapters/codex.ts +50 -0
  18. package/servers/dashboard/src/adapters/kimi.ts +40 -0
  19. package/servers/dashboard/src/adapters/opencode.ts +36 -0
  20. package/servers/dashboard/src/adapters/shim.test.ts +74 -0
  21. package/servers/dashboard/src/adapters/shim.ts +120 -0
  22. package/servers/dashboard/src/api/event.ts +70 -0
  23. package/servers/dashboard/src/api/skills.ts +11 -0
  24. package/servers/dashboard/src/config.ts +66 -0
  25. package/servers/dashboard/src/filters/sanitize.test.ts +94 -0
  26. package/servers/dashboard/src/filters/sanitize.ts +78 -0
  27. package/servers/dashboard/src/index.ts +24 -0
  28. package/servers/dashboard/src/presenter.test.ts +69 -0
  29. package/servers/dashboard/src/presenter.ts +56 -0
  30. package/servers/dashboard/src/server.test.ts +123 -0
  31. package/servers/dashboard/src/server.ts +191 -0
  32. package/servers/dashboard/src/skills/infer.test.ts +86 -0
  33. package/servers/dashboard/src/skills/infer.ts +53 -0
  34. package/servers/dashboard/src/skills/mapping.ts +26 -0
  35. package/servers/dashboard/src/skills/registry.ts +60 -0
  36. package/servers/dashboard/src/state.test.ts +88 -0
  37. package/servers/dashboard/src/state.ts +115 -0
  38. package/servers/dashboard/src/types.ts +110 -0
  39. package/servers/dashboard/tsconfig.json +19 -0
  40. package/servers/obsidian-mcp/README.md +82 -0
  41. package/servers/obsidian-mcp/pyproject.toml +32 -0
  42. package/servers/obsidian-mcp/src/obsidian_mcp/__init__.py +0 -0
  43. package/servers/obsidian-mcp/src/obsidian_mcp/config.py +47 -0
  44. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/__init__.py +0 -0
  45. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/embeddings.py +105 -0
  46. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/indexer.py +79 -0
  47. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/store.py +141 -0
  48. package/servers/obsidian-mcp/src/obsidian_mcp/indexer/sync.py +37 -0
  49. package/servers/obsidian-mcp/src/obsidian_mcp/learning/__init__.py +0 -0
  50. package/servers/obsidian-mcp/src/obsidian_mcp/learning/detector.py +66 -0
  51. package/servers/obsidian-mcp/src/obsidian_mcp/learning/note_generator.py +40 -0
  52. package/servers/obsidian-mcp/src/obsidian_mcp/main.py +4 -0
  53. package/servers/obsidian-mcp/src/obsidian_mcp/models.py +42 -0
  54. package/servers/obsidian-mcp/src/obsidian_mcp/privacy/__init__.py +0 -0
  55. package/servers/obsidian-mcp/src/obsidian_mcp/privacy/filter.py +68 -0
  56. package/servers/obsidian-mcp/src/obsidian_mcp/rag/__init__.py +0 -0
  57. package/servers/obsidian-mcp/src/obsidian_mcp/rag/engine.py +50 -0
  58. package/servers/obsidian-mcp/src/obsidian_mcp/rag/graph_search.py +55 -0
  59. package/servers/obsidian-mcp/src/obsidian_mcp/rag/text_search.py +37 -0
  60. package/servers/obsidian-mcp/src/obsidian_mcp/rag/vector_search.py +118 -0
  61. package/servers/obsidian-mcp/src/obsidian_mcp/server.py +61 -0
  62. package/servers/obsidian-mcp/src/obsidian_mcp/tools/__init__.py +0 -0
  63. package/servers/obsidian-mcp/src/obsidian_mcp/tools/create.py +43 -0
  64. package/servers/obsidian-mcp/src/obsidian_mcp/tools/delete.py +16 -0
  65. package/servers/obsidian-mcp/src/obsidian_mcp/tools/learn.py +42 -0
  66. package/servers/obsidian-mcp/src/obsidian_mcp/tools/list.py +16 -0
  67. package/servers/obsidian-mcp/src/obsidian_mcp/tools/read.py +15 -0
  68. package/servers/obsidian-mcp/src/obsidian_mcp/tools/registry.py +130 -0
  69. package/servers/obsidian-mcp/src/obsidian_mcp/tools/related.py +20 -0
  70. package/servers/obsidian-mcp/src/obsidian_mcp/tools/search.py +26 -0
  71. package/servers/obsidian-mcp/src/obsidian_mcp/tools/sync.py +22 -0
  72. package/servers/obsidian-mcp/src/obsidian_mcp/tools/update.py +34 -0
  73. package/servers/obsidian-mcp/src/obsidian_mcp/vault/__init__.py +0 -0
  74. package/servers/obsidian-mcp/src/obsidian_mcp/vault/parser.py +82 -0
  75. package/servers/obsidian-mcp/src/obsidian_mcp/vault/repository.py +68 -0
  76. package/servers/obsidian-mcp/src/obsidian_mcp/vault/writer.py +61 -0
  77. package/servers/obsidian-mcp/tests/conftest.py +39 -0
  78. package/servers/obsidian-mcp/tests/test_async_tools.py +87 -0
  79. package/servers/obsidian-mcp/tests/test_edge_cases.py +59 -0
  80. package/servers/obsidian-mcp/tests/test_indexer.py +27 -0
  81. package/servers/obsidian-mcp/tests/test_integration.py +90 -0
  82. package/servers/obsidian-mcp/tests/test_learning.py +34 -0
  83. package/servers/obsidian-mcp/tests/test_privacy.py +31 -0
  84. package/servers/obsidian-mcp/tests/test_privacy_config.py +44 -0
  85. package/servers/obsidian-mcp/tests/test_rag.py +64 -0
  86. package/servers/obsidian-mcp/tests/test_read_raw.py +37 -0
  87. package/servers/obsidian-mcp/tests/test_tfidf_fallback.py +54 -0
  88. package/servers/obsidian-mcp/tests/test_tools.py +108 -0
  89. package/servers/obsidian-mcp/tests/test_vault.py +103 -0
  90. package/servers/obsidian-mcp/tests/test_writer.py +139 -0
  91. package/skills/accessibility-auditor/SKILL.md +262 -0
  92. package/skills/accessibility-auditor/references/a11y-checklist.md +66 -0
  93. package/skills/architect/SKILL.md +1 -1
  94. package/skills/designer/SKILL.md +1 -1
  95. package/skills/docs-writer/SKILL.md +1 -1
  96. package/skills/engineer/SKILL.md +1 -1
  97. package/skills/maintainer/SKILL.md +22 -22
  98. package/skills/obsidian-second-brain/SKILL.md +48 -13
  99. package/skills/orchestrator/SKILL.md +1 -1
  100. package/skills/product-manager/SKILL.md +22 -22
  101. package/skills/researcher/SKILL.md +22 -22
  102. package/skills/reviewer/SKILL.md +1 -1
  103. package/skills/security-guard/SKILL.md +142 -0
  104. package/skills/security-guard/references/security-checklist.md +57 -0
  105. package/skills/shipper/SKILL.md +1 -1
  106. package/skills/tester/SKILL.md +22 -22
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>CrewLoop Dashboard</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
10
+ <script src="https://unpkg.com/@phosphor-icons/web@2.1.1"></script>
11
+ <link rel="stylesheet" href="styles.css" />
12
+ </head>
13
+ <body>
14
+ <div class="app">
15
+ <header class="header">
16
+ <div class="brand">
17
+ <span class="brand-name">CREWLOOP</span>
18
+ <span class="brand-separator">·</span>
19
+ <span class="brand-label">DASHBOARD</span>
20
+ </div>
21
+ <div class="header-actions">
22
+ <button id="theme-toggle" class="icon-button" aria-label="Toggle theme">
23
+ <i class="ph ph-moon"></i>
24
+ </button>
25
+ <div class="session-selector">
26
+ <button id="session-trigger" class="session-trigger" aria-haspopup="listbox" aria-expanded="false">
27
+ <span class="connection-dot" id="connection-dot"></span>
28
+ <span id="session-label">No session</span>
29
+ <i class="ph ph-caret-down"></i>
30
+ </button>
31
+ <ul id="session-list" class="session-list" role="listbox" aria-label="Sessions"></ul>
32
+ </div>
33
+ </div>
34
+ </header>
35
+
36
+ <main class="main">
37
+ <aside class="sidebar">
38
+ <section class="panel active-skill-panel" aria-live="polite" aria-atomic="true">
39
+ <div class="panel-accent-strip" id="active-strip"></div>
40
+ <div class="active-skill-content">
41
+ <div class="active-skill-icon-wrap">
42
+ <i class="ph ph-circle" id="active-skill-icon"></i>
43
+ </div>
44
+ <h1 class="active-skill-name" id="active-skill-name">IDLE</h1>
45
+ <div class="active-skill-meta">
46
+ <span class="status-badge" id="status-badge">
47
+ <span class="status-dot" id="status-dot"></span>
48
+ <span id="status-text">IDLE</span>
49
+ </span>
50
+ <span class="confidence-badge" id="confidence-badge">unknown</span>
51
+ </div>
52
+ <div class="active-skill-source" id="active-skill-source">
53
+ <i class="ph ph-monitor"></i>
54
+ <span>waiting for events</span>
55
+ </div>
56
+ </div>
57
+ </section>
58
+
59
+ <section class="panel telemetry-panel">
60
+ <h2 class="panel-title">Telemetry</h2>
61
+ <div class="telemetry-grid">
62
+ <div class="telemetry-card">
63
+ <span class="telemetry-value" id="tool-count">0</span>
64
+ <span class="telemetry-label">TOOLS</span>
65
+ </div>
66
+ <div class="telemetry-card">
67
+ <span class="telemetry-value" id="duration">00:00</span>
68
+ <span class="telemetry-label">DURATION</span>
69
+ </div>
70
+ <div class="telemetry-card">
71
+ <span class="telemetry-value" id="event-rate">0</span>
72
+ <span class="telemetry-label">RATE/M</span>
73
+ </div>
74
+ </div>
75
+ </section>
76
+ </aside>
77
+
78
+ <div class="content">
79
+ <section class="panel activity-panel">
80
+ <h2 class="panel-title">Skill Activity</h2>
81
+ <div class="activity-graph" id="activity-graph">
82
+ <div class="activity-empty">Waiting for agent activity...</div>
83
+ </div>
84
+ </section>
85
+
86
+ <section class="panel timeline-panel">
87
+ <h2 class="panel-title">Event Timeline</h2>
88
+ <ul class="timeline" id="timeline" aria-label="Event timeline"></ul>
89
+ </section>
90
+ </div>
91
+ </main>
92
+ </div>
93
+
94
+ <script src="app.js"></script>
95
+ </body>
96
+ </html>