omp-llm-role 1.0.0 → 1.1.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.
- package/README.md +179 -11
- package/agents/designer.md +4 -3
- package/docs/dev/README.md +44 -7
- package/docs/dev/agent-authoring.md +59 -1
- package/docs/dev/architecture.md +84 -27
- package/docs/dev/ci.md +152 -0
- package/docs/dev/current-state.md +327 -24
- package/docs/dev/data-sources.md +202 -38
- package/docs/dev/explorer.md +157 -46
- package/docs/dev/quirks.md +45 -4
- package/docs/dev/releasing.md +129 -17
- package/docs/dev/scoring.md +789 -28
- package/docs/dev/testing.md +206 -0
- package/docs/dev/writes-and-state.md +176 -28
- package/docs/llm-role-rankings.md +141 -140
- package/package.json +754 -80
- package/skills/omp-llm-role-create-agent/SKILL.md +7 -1
- package/src/agent-architect.ts +148 -19
- package/src/agent-create.ts +800 -40
- package/src/agent-file.ts +2 -5
- package/src/architect-provenance.ts +16 -0
- package/src/availability.ts +104 -6
- package/src/benchmark-author.ts +9 -4
- package/src/benchmark-sources.ts +283 -18
- package/src/cli/create-role.ts +29 -1
- package/src/cli/llm-role-rank.ts +40 -1
- package/src/config-edit.ts +207 -80
- package/src/engine.ts +409 -46
- package/src/error-report.ts +562 -0
- package/src/explorer/boot.ts +36 -24
- package/src/explorer/explain.ts +110 -13
- package/src/explorer/scopes.ts +110 -0
- package/src/explorer/server.ts +112 -32
- package/src/extension.ts +407 -34
- package/src/features.ts +103 -0
- package/src/project-registry.ts +65 -0
- package/src/project-setup.ts +382 -0
- package/src/prompts/agent-creation-architect.md +2 -0
- package/src/prompts/project-profile-architect.md +33 -0
- package/src/prompts/project-profile-user.md +8 -0
- package/src/role-archetypes.ts +12 -2
- package/src/role-settings.ts +22 -0
- package/src/settings.ts +205 -24
- package/src/state.ts +1 -1
- package/src/updater.ts +150 -31
- package/web/app.js +411 -12
- package/web/index.html +1 -0
- package/web/style.css +44 -1
- package/docs/dev/spec.md +0 -633
package/web/style.css
CHANGED
|
@@ -38,6 +38,7 @@ body {
|
|
|
38
38
|
#meta .brand { font-weight: 600; color: var(--accent); }
|
|
39
39
|
#meta .sep { color: var(--line); }
|
|
40
40
|
#meta .lock { color: var(--muted); font-family: var(--mono); font-size: 11px; }
|
|
41
|
+
#meta #scope { max-width: 340px; }
|
|
41
42
|
#meta button { margin-left: auto; }
|
|
42
43
|
|
|
43
44
|
#roles {
|
|
@@ -159,6 +160,13 @@ table { border-collapse: collapse; width: 100%; }
|
|
|
159
160
|
#table td.num, #table th.num { text-align: right; font-family: var(--mono); font-variant-numeric: tabular-nums; }
|
|
160
161
|
#table td.model { max-width: 320px; overflow: hidden; text-overflow: ellipsis; }
|
|
161
162
|
#table td.org { color: var(--muted); }
|
|
163
|
+
#table td.key { text-align: center; }
|
|
164
|
+
/* Key-usability badge: three states, reusing the :root hues (up/down/muted). */
|
|
165
|
+
.badge { display: inline-block; padding: 0 6px; border-radius: 999px; border: 1px solid var(--line); font-family: var(--mono); font-size: 11px; line-height: 16px; }
|
|
166
|
+
.badge.usable { color: var(--up); border-color: var(--up); }
|
|
167
|
+
.badge.blocked { color: var(--down); border-color: var(--down); }
|
|
168
|
+
.badge.unknown { color: var(--muted); border-color: var(--line); }
|
|
169
|
+
.key-line { color: var(--muted); }
|
|
162
170
|
#table td.star { color: var(--warn); text-align: center; }
|
|
163
171
|
#table td.delta { font-family: var(--mono); text-align: right; }
|
|
164
172
|
#table td.delta.up { color: var(--up); }
|
|
@@ -181,6 +189,19 @@ table.comp th { text-align: left; color: var(--muted); font-weight: 500; font-si
|
|
|
181
189
|
table.comp td.num, table.comp th.num { text-align: right; font-family: var(--mono); font-variant-numeric: tabular-nums; }
|
|
182
190
|
table.comp tr.missing-row td { color: var(--muted); }
|
|
183
191
|
table.comp tr.note-row td { border-bottom: none; font-size: 11px; padding-top: 0; }
|
|
192
|
+
|
|
193
|
+
/* Focus-metric audit: one row per weighted benchmark/percentile metric, four
|
|
194
|
+
signal cells. ok = up, below-bar = warn + glyph, unknown = muted (never ok). */
|
|
195
|
+
table.focus { width: 100%; border-collapse: collapse; }
|
|
196
|
+
table.focus th, table.focus td { padding: 3px 6px; border-bottom: 1px solid var(--line); }
|
|
197
|
+
table.focus th { text-align: left; color: var(--muted); font-weight: 500; font-size: 11px; }
|
|
198
|
+
table.focus td { font-family: var(--mono); font-size: 12px; }
|
|
199
|
+
table.focus td:first-child { font-family: inherit; color: var(--muted); }
|
|
200
|
+
table.focus tr.warned td:first-child { color: var(--fg); }
|
|
201
|
+
.sig.ok { color: var(--up); }
|
|
202
|
+
.sig.below-bar { color: var(--warn); }
|
|
203
|
+
.sig.below-bar::before { content: "⚠ "; }
|
|
204
|
+
.sig.unknown { color: var(--muted); }
|
|
184
205
|
.barcell { width: 90px; }
|
|
185
206
|
.bar { background: var(--panel-2); border-radius: 3px; height: 8px; overflow: hidden; }
|
|
186
207
|
.bar .fill { background: var(--accent); height: 100%; }
|
|
@@ -204,6 +225,28 @@ button.x { padding: 1px 7px; color: var(--down); }
|
|
|
204
225
|
.checks { display: flex; flex-wrap: wrap; gap: 4px 12px; }
|
|
205
226
|
.check { display: flex; gap: 5px; align-items: center; color: var(--muted); font-size: 12px; }
|
|
206
227
|
|
|
228
|
+
/* Capability flags (issue #40): one tri-state control per capability, the
|
|
229
|
+
recommended bundle, and the knobs it fills. A knob whose value is DERIVED
|
|
230
|
+
from an enabled capability gets a dashed accent border + a "derived" badge;
|
|
231
|
+
an authored (explicit) value gets a solid line + an "authored" badge. */
|
|
232
|
+
.features { display: flex; flex-direction: column; gap: 8px; }
|
|
233
|
+
.feature { border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; }
|
|
234
|
+
.feature.on { border-color: var(--accent); }
|
|
235
|
+
.feature-head { display: flex; gap: 8px; align-items: center; }
|
|
236
|
+
.feature-state { flex: 0 0 auto; }
|
|
237
|
+
.feature-label { color: var(--fg); }
|
|
238
|
+
.feature-origin { margin-left: auto; font-size: 11px; }
|
|
239
|
+
.feature-bundle { font-family: var(--mono); font-size: 11px; margin-top: 2px; }
|
|
240
|
+
.feature-knobs { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; }
|
|
241
|
+
.knob { display: flex; gap: 5px; align-items: center; font-family: var(--mono); font-size: 11px; }
|
|
242
|
+
.knob-input { width: 84px; }
|
|
243
|
+
.knob-name { color: var(--muted); }
|
|
244
|
+
.knob.derived .knob-input { border-style: dashed; border-color: var(--accent); }
|
|
245
|
+
.knob-badge { padding: 0 5px; border-radius: 999px; border: 1px solid var(--line); font-size: 10px; line-height: 15px; }
|
|
246
|
+
.knob-badge.derived { color: var(--accent); border-color: var(--accent); }
|
|
247
|
+
.knob-badge.authored { color: var(--up); border-color: var(--up); }
|
|
248
|
+
.knob-badge.none { color: var(--muted); }
|
|
249
|
+
|
|
207
250
|
#export-bar {
|
|
208
251
|
display: flex;
|
|
209
252
|
gap: 8px;
|
|
@@ -235,7 +278,7 @@ button.x { padding: 1px 7px; color: var(--down); }
|
|
|
235
278
|
/* elements that carry an explanation read as hoverable without being links */
|
|
236
279
|
[data-tip] { cursor: help; }
|
|
237
280
|
button[data-tip], select[data-tip], input[data-tip] { cursor: pointer; }
|
|
238
|
-
#table thead th[data-tip], .tab[data-tip], table.comp th[data-tip], table.weights td[data-tip] { text-decoration: underline dotted var(--line); text-underline-offset: 3px; }
|
|
281
|
+
#table thead th[data-tip], .tab[data-tip], table.comp th[data-tip], table.focus th[data-tip], table.weights td[data-tip] { text-decoration: underline dotted var(--line); text-underline-offset: 3px; }
|
|
239
282
|
|
|
240
283
|
@media (max-width: 1100px) {
|
|
241
284
|
main { grid-template-columns: 1fr; }
|