declare-cc 1.0.7 → 1.0.8
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/dist/declare-tools.cjs +41 -30
- package/dist/public/app.js +16 -771
- package/dist/public/index.html +2 -355
- package/package.json +1 -1
package/dist/public/index.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>Declare —
|
|
6
|
+
<title>Declare — Dashboard</title>
|
|
7
7
|
<style>
|
|
8
8
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
9
9
|
|
|
@@ -204,26 +204,6 @@
|
|
|
204
204
|
white-space: nowrap;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
#view-toggle {
|
|
208
|
-
background: transparent;
|
|
209
|
-
border: 1px solid var(--border);
|
|
210
|
-
color: var(--text-dim);
|
|
211
|
-
width: 28px;
|
|
212
|
-
height: 28px;
|
|
213
|
-
border-radius: var(--radius);
|
|
214
|
-
cursor: pointer;
|
|
215
|
-
font-size: 14px;
|
|
216
|
-
display: flex;
|
|
217
|
-
align-items: center;
|
|
218
|
-
justify-content: center;
|
|
219
|
-
transition: all 0.15s ease;
|
|
220
|
-
padding: 0;
|
|
221
|
-
margin-left: 10px;
|
|
222
|
-
flex-shrink: 0;
|
|
223
|
-
}
|
|
224
|
-
#view-toggle:hover { background: var(--surface2); color: var(--text); border-color: var(--border-strong); }
|
|
225
|
-
#view-toggle:active { transform: scale(0.97); }
|
|
226
|
-
|
|
227
207
|
/* Right side: integrity + next/execute */
|
|
228
208
|
.status-right {
|
|
229
209
|
display: flex;
|
|
@@ -283,226 +263,6 @@
|
|
|
283
263
|
flex-direction: column;
|
|
284
264
|
}
|
|
285
265
|
|
|
286
|
-
/* ── Canvas area — reserve space for fixed sidebar ── */
|
|
287
|
-
#canvas-wrap {
|
|
288
|
-
width: 100%;
|
|
289
|
-
height: 100%;
|
|
290
|
-
overflow: auto;
|
|
291
|
-
background: var(--bg);
|
|
292
|
-
padding-right: var(--panel-width);
|
|
293
|
-
padding-bottom: 40px; /* room for activity feed */
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
#canvas-container {
|
|
297
|
-
position: relative;
|
|
298
|
-
min-width: 100%;
|
|
299
|
-
min-height: 100%;
|
|
300
|
-
padding: 40px 40px 80px;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
#edges-svg {
|
|
304
|
-
position: absolute;
|
|
305
|
-
top: 0;
|
|
306
|
-
left: 0;
|
|
307
|
-
width: 100%;
|
|
308
|
-
height: 100%;
|
|
309
|
-
pointer-events: none;
|
|
310
|
-
overflow: visible;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/* ── Layers ── */
|
|
314
|
-
.layer {
|
|
315
|
-
display: flex;
|
|
316
|
-
flex-wrap: wrap;
|
|
317
|
-
gap: 0;
|
|
318
|
-
justify-content: center;
|
|
319
|
-
align-items: flex-start;
|
|
320
|
-
position: relative;
|
|
321
|
-
margin-bottom: 0;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
.layer-label {
|
|
325
|
-
font-size: 10px;
|
|
326
|
-
font-weight: 700;
|
|
327
|
-
letter-spacing: 0.12em;
|
|
328
|
-
text-transform: uppercase;
|
|
329
|
-
color: var(--text-dim);
|
|
330
|
-
text-align: center;
|
|
331
|
-
margin-bottom: 12px;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
.layer-section {
|
|
335
|
-
margin-bottom: 40px;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/* ── Nodes ── */
|
|
339
|
-
.node {
|
|
340
|
-
border-radius: 10px;
|
|
341
|
-
padding: 12px 16px;
|
|
342
|
-
cursor: pointer;
|
|
343
|
-
transition: transform 0.12s, box-shadow 0.12s, border-color 0.15s;
|
|
344
|
-
position: relative;
|
|
345
|
-
min-width: 160px;
|
|
346
|
-
max-width: 220px;
|
|
347
|
-
user-select: none;
|
|
348
|
-
margin: 0 8px 0 8px;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
.node:hover {
|
|
352
|
-
transform: translateY(-2px);
|
|
353
|
-
box-shadow: 0 6px 24px rgba(0,0,0,0.5);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
.node.selected {
|
|
357
|
-
box-shadow: 0 0 0 2px currentColor, 0 6px 24px rgba(0,0,0,0.5);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/* Declaration nodes */
|
|
361
|
-
.node-declaration {
|
|
362
|
-
background: var(--decl-bg);
|
|
363
|
-
border: 1px solid var(--decl-border);
|
|
364
|
-
color: var(--decl-color);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
/* Milestone nodes */
|
|
368
|
-
.node-milestone {
|
|
369
|
-
background: var(--mile-bg);
|
|
370
|
-
border: 1px solid var(--mile-border);
|
|
371
|
-
color: var(--mile-color);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
/* Action nodes */
|
|
375
|
-
.node-action {
|
|
376
|
-
background: var(--act-bg);
|
|
377
|
-
border: 1px solid var(--act-border);
|
|
378
|
-
color: var(--act-color);
|
|
379
|
-
min-width: 140px;
|
|
380
|
-
max-width: 190px;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/* Status overrides — DONE uses dimmed type-specific hues, not grey */
|
|
384
|
-
.node-declaration.status-done,
|
|
385
|
-
.node-declaration.status-honored,
|
|
386
|
-
.node-declaration.status-kept {
|
|
387
|
-
background: var(--decl-done-bg);
|
|
388
|
-
border-color: var(--decl-done-border);
|
|
389
|
-
color: var(--decl-done-color);
|
|
390
|
-
opacity: 0.82;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
.node-milestone.status-done,
|
|
394
|
-
.node-milestone.status-honored,
|
|
395
|
-
.node-milestone.status-kept {
|
|
396
|
-
background: var(--mile-done-bg);
|
|
397
|
-
border-color: var(--mile-done-border);
|
|
398
|
-
color: var(--mile-done-color);
|
|
399
|
-
opacity: 0.82;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
.node-action.status-done,
|
|
403
|
-
.node-action.status-honored,
|
|
404
|
-
.node-action.status-kept {
|
|
405
|
-
background: var(--act-done-bg);
|
|
406
|
-
border-color: var(--act-done-border);
|
|
407
|
-
color: var(--act-done-color);
|
|
408
|
-
opacity: 0.82;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/* Workflow progress states — computed from action data, not MILESTONES.md */
|
|
412
|
-
.node.status-planned {
|
|
413
|
-
background: var(--planned-bg);
|
|
414
|
-
border-color: var(--planned-border);
|
|
415
|
-
color: var(--planned-color);
|
|
416
|
-
opacity: 0.9;
|
|
417
|
-
}
|
|
418
|
-
.node.status-executing {
|
|
419
|
-
background: var(--executing-bg);
|
|
420
|
-
border-color: var(--executing-border);
|
|
421
|
-
color: var(--executing-color);
|
|
422
|
-
box-shadow: 0 0 0 1px var(--executing-border), 0 0 12px rgba(251,191,36,0.15);
|
|
423
|
-
}
|
|
424
|
-
.node.status-planned .node-title { color: var(--planned-color); }
|
|
425
|
-
.node.status-executing .node-title { color: var(--executing-color); }
|
|
426
|
-
|
|
427
|
-
/* Progress bar inside milestone node */
|
|
428
|
-
.node-progress {
|
|
429
|
-
margin-top: 7px;
|
|
430
|
-
height: 3px;
|
|
431
|
-
background: rgba(255,255,255,0.08);
|
|
432
|
-
border-radius: 2px;
|
|
433
|
-
overflow: hidden;
|
|
434
|
-
}
|
|
435
|
-
.node-progress-fill {
|
|
436
|
-
height: 100%;
|
|
437
|
-
border-radius: 2px;
|
|
438
|
-
transition: width 0.4s ease;
|
|
439
|
-
}
|
|
440
|
-
.status-executing .node-progress-fill { background: var(--executing-color); }
|
|
441
|
-
.status-planned .node-progress-fill { background: var(--planned-color); opacity:0.3; }
|
|
442
|
-
.status-done .node-progress-fill,
|
|
443
|
-
.status-kept .node-progress-fill,
|
|
444
|
-
.status-honored .node-progress-fill { background: var(--act-done-color); }
|
|
445
|
-
|
|
446
|
-
.node.status-broken {
|
|
447
|
-
background: var(--broken-bg);
|
|
448
|
-
border-color: var(--broken-border);
|
|
449
|
-
color: var(--broken-color);
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
.node.status-renegotiated {
|
|
453
|
-
background: var(--renegotiated-bg);
|
|
454
|
-
border-color: var(--renegotiated-border);
|
|
455
|
-
color: var(--renegotiated-color);
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/* Wholeness left-border indicator */
|
|
459
|
-
.node.wholeness-whole { border-left: 3px solid var(--wholeness-whole); }
|
|
460
|
-
.node.wholeness-partial { border-left: 3px solid var(--wholeness-partial); }
|
|
461
|
-
.node.wholeness-broken { border-left: 3px solid var(--wholeness-broken); }
|
|
462
|
-
|
|
463
|
-
.node-id {
|
|
464
|
-
font-size: 10px;
|
|
465
|
-
font-weight: 700;
|
|
466
|
-
letter-spacing: 0.06em;
|
|
467
|
-
opacity: 0.7;
|
|
468
|
-
margin-bottom: 4px;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
.node-title {
|
|
472
|
-
font-size: 12px;
|
|
473
|
-
font-weight: 500;
|
|
474
|
-
color: var(--text-bright);
|
|
475
|
-
line-height: 1.35;
|
|
476
|
-
word-break: break-word;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
.node-declaration.status-done .node-title,
|
|
480
|
-
.node-declaration.status-honored .node-title,
|
|
481
|
-
.node-declaration.status-kept .node-title { color: var(--decl-done-color); }
|
|
482
|
-
|
|
483
|
-
.node-milestone.status-done .node-title,
|
|
484
|
-
.node-milestone.status-honored .node-title,
|
|
485
|
-
.node-milestone.status-kept .node-title { color: var(--mile-done-color); }
|
|
486
|
-
|
|
487
|
-
.node-action.status-done .node-title,
|
|
488
|
-
.node-action.status-honored .node-title,
|
|
489
|
-
.node-action.status-kept .node-title { color: var(--act-done-color); }
|
|
490
|
-
|
|
491
|
-
.node.status-broken .node-title { color: var(--broken-color); }
|
|
492
|
-
.node.status-renegotiated .node-title { color: var(--renegotiated-color); }
|
|
493
|
-
|
|
494
|
-
.status-badge {
|
|
495
|
-
display: inline-block;
|
|
496
|
-
margin-top: 8px;
|
|
497
|
-
padding: 2px 8px;
|
|
498
|
-
border-radius: 8px;
|
|
499
|
-
font-size: 10px;
|
|
500
|
-
font-weight: 700;
|
|
501
|
-
letter-spacing: 0.05em;
|
|
502
|
-
text-transform: uppercase;
|
|
503
|
-
background: rgba(255,255,255,0.06);
|
|
504
|
-
}
|
|
505
|
-
|
|
506
266
|
/* Integrity wholeness dot */
|
|
507
267
|
.integrity-dot {
|
|
508
268
|
display: inline-block;
|
|
@@ -710,64 +470,6 @@
|
|
|
710
470
|
}
|
|
711
471
|
#overlay-retry:hover { border-color: var(--text-dim); }
|
|
712
472
|
|
|
713
|
-
#edges-svg { transition: opacity 0.2s ease; }
|
|
714
|
-
|
|
715
|
-
/* SVG edges */
|
|
716
|
-
.edge {
|
|
717
|
-
fill: none;
|
|
718
|
-
stroke: var(--border);
|
|
719
|
-
stroke-width: 1.5;
|
|
720
|
-
opacity: 0.6;
|
|
721
|
-
transition: opacity 0.3s ease;
|
|
722
|
-
}
|
|
723
|
-
.edge.highlight {
|
|
724
|
-
stroke: var(--text-dim);
|
|
725
|
-
opacity: 1;
|
|
726
|
-
}
|
|
727
|
-
.edge.focus-dim {
|
|
728
|
-
opacity: 0.04;
|
|
729
|
-
}
|
|
730
|
-
#edges-svg {
|
|
731
|
-
transition: opacity 0.18s ease;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
/* Scrollbar */
|
|
735
|
-
#canvas-wrap::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
736
|
-
#canvas-wrap::-webkit-scrollbar-track { background: transparent; }
|
|
737
|
-
#canvas-wrap::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
|
|
738
|
-
|
|
739
|
-
/* ── Focus mode — flex-basis collapse for simultaneous shrink + slide ── */
|
|
740
|
-
|
|
741
|
-
/* Nodes being animated out: flex-basis + margin collapse simultaneously with slide */
|
|
742
|
-
.node.focus-exiting {
|
|
743
|
-
overflow: hidden;
|
|
744
|
-
pointer-events: none;
|
|
745
|
-
/* transition and initial flex-basis set via inline styles in JS */
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
/* Nodes in focus: stay put, get a glow */
|
|
749
|
-
.node.focus-active {
|
|
750
|
-
box-shadow: 0 0 0 2px currentColor, 0 8px 32px rgba(0,0,0,0.6) !important;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
/* ESC hint */
|
|
754
|
-
#focus-hint {
|
|
755
|
-
position: fixed;
|
|
756
|
-
bottom: 24px;
|
|
757
|
-
left: calc(50% - var(--panel-width) / 2);
|
|
758
|
-
transform: translateX(-50%);
|
|
759
|
-
background: var(--surface2);
|
|
760
|
-
border: 1px solid var(--border);
|
|
761
|
-
color: var(--text-dim);
|
|
762
|
-
padding: 7px 18px;
|
|
763
|
-
border-radius: 20px;
|
|
764
|
-
font-size: 12px;
|
|
765
|
-
pointer-events: none;
|
|
766
|
-
opacity: 0;
|
|
767
|
-
transition: opacity 0.25s ease;
|
|
768
|
-
z-index: 50;
|
|
769
|
-
}
|
|
770
|
-
#focus-hint.visible { opacity: 1; }
|
|
771
473
|
/* ── Activity feed ── */
|
|
772
474
|
/* ── Activity sidebar (right panel in drill-body) ── */
|
|
773
475
|
#activity-feed {
|
|
@@ -956,16 +658,6 @@
|
|
|
956
658
|
.output-log .exit-code.success { color: var(--act-color); }
|
|
957
659
|
.output-log .exit-code.failure { color: var(--broken-color); }
|
|
958
660
|
|
|
959
|
-
/* ── Running node pulse animation ── */
|
|
960
|
-
.node.is-running {
|
|
961
|
-
animation: running-pulse 1.8s ease-in-out infinite;
|
|
962
|
-
box-shadow: 0 0 0 2px var(--executing-color), 0 0 16px rgba(251,191,36,0.2);
|
|
963
|
-
}
|
|
964
|
-
@keyframes running-pulse {
|
|
965
|
-
0%, 100% { box-shadow: 0 0 0 2px var(--executing-color), 0 0 16px rgba(251,191,36,0.2); }
|
|
966
|
-
50% { box-shadow: 0 0 0 3px var(--executing-color), 0 0 24px rgba(251,191,36,0.35); }
|
|
967
|
-
}
|
|
968
|
-
|
|
969
661
|
/* ── Drill browser — 3-panel layout ── */
|
|
970
662
|
#drill-browser {
|
|
971
663
|
display: none;
|
|
@@ -2282,11 +1974,6 @@
|
|
|
2282
1974
|
font-weight: 400;
|
|
2283
1975
|
}
|
|
2284
1976
|
|
|
2285
|
-
/* Hide side panel in drill browser mode */
|
|
2286
|
-
body:not(.dag-mode) #side-panel { display: none; }
|
|
2287
|
-
body.dag-mode #side-panel { display: flex; }
|
|
2288
|
-
body.dag-mode #activity-feed { display: none; }
|
|
2289
|
-
|
|
2290
1977
|
/* ── Declaration form ── */
|
|
2291
1978
|
.decl-form-trigger {
|
|
2292
1979
|
background: none;
|
|
@@ -3319,16 +3006,6 @@
|
|
|
3319
3006
|
}
|
|
3320
3007
|
.dep-remove:hover { opacity: 1; color: var(--broken-color); }
|
|
3321
3008
|
|
|
3322
|
-
/* ── Dependency edges in DAG ── */
|
|
3323
|
-
.edge.dep-edge {
|
|
3324
|
-
stroke: var(--mile-color);
|
|
3325
|
-
stroke-dasharray: 6 4;
|
|
3326
|
-
opacity: 0.4;
|
|
3327
|
-
}
|
|
3328
|
-
.edge.dep-edge.highlight {
|
|
3329
|
-
opacity: 0.8;
|
|
3330
|
-
}
|
|
3331
|
-
|
|
3332
3009
|
/* ── Review state badges ── */
|
|
3333
3010
|
.review-badge {
|
|
3334
3011
|
display: inline-block;
|
|
@@ -3919,7 +3596,6 @@
|
|
|
3919
3596
|
body.exec-mode #readiness-banner { display: none; }
|
|
3920
3597
|
body.exec-mode #side-panel { display: none; }
|
|
3921
3598
|
body.exec-mode #activity-feed { display: none; }
|
|
3922
|
-
body.exec-mode #view-toggle { display: none; }
|
|
3923
3599
|
body.exec-mode #execution-view { padding-right: 0; }
|
|
3924
3600
|
|
|
3925
3601
|
/* ── Execution topbar ── */
|
|
@@ -4116,9 +3792,6 @@
|
|
|
4116
3792
|
<div id="status-bar">
|
|
4117
3793
|
<span class="project-name" id="project-name">Declare</span>
|
|
4118
3794
|
<div id="status-breadcrumb"></div>
|
|
4119
|
-
<button id="view-toggle" title="Toggle graph view">
|
|
4120
|
-
<span id="view-toggle-label">⬓</span>
|
|
4121
|
-
</button>
|
|
4122
3795
|
<div class="status-right">
|
|
4123
3796
|
<span class="status-pill" id="integrity-pill"><span class="pill-value">–</span></span>
|
|
4124
3797
|
<button id="execute-main-btn">Next</button>
|
|
@@ -4150,24 +3823,6 @@
|
|
|
4150
3823
|
|
|
4151
3824
|
<!-- Main -->
|
|
4152
3825
|
<div id="main">
|
|
4153
|
-
<div id="canvas-wrap" style="display:none">
|
|
4154
|
-
<div id="canvas-container">
|
|
4155
|
-
<svg id="edges-svg"></svg>
|
|
4156
|
-
<div class="layer-section" id="layer-declarations">
|
|
4157
|
-
<div class="layer-label">Declarations</div>
|
|
4158
|
-
<div class="layer" id="nodes-declarations"></div>
|
|
4159
|
-
</div>
|
|
4160
|
-
<div class="layer-section" id="layer-milestones">
|
|
4161
|
-
<div class="layer-label">Milestones</div>
|
|
4162
|
-
<div class="layer" id="nodes-milestones"></div>
|
|
4163
|
-
</div>
|
|
4164
|
-
<div class="layer-section" id="layer-actions">
|
|
4165
|
-
<div class="layer-label">Actions</div>
|
|
4166
|
-
<div class="layer" id="nodes-actions"></div>
|
|
4167
|
-
</div>
|
|
4168
|
-
</div>
|
|
4169
|
-
</div>
|
|
4170
|
-
|
|
4171
3826
|
<!-- Readiness banner — hidden, replaced by drill prompts -->
|
|
4172
3827
|
<div id="readiness-banner"></div>
|
|
4173
3828
|
|
|
@@ -4184,12 +3839,6 @@
|
|
|
4184
3839
|
</div>
|
|
4185
3840
|
</div>
|
|
4186
3841
|
|
|
4187
|
-
<!-- Legacy column browser elements (hidden, kept for DOM ref compat) -->
|
|
4188
|
-
<div id="column-browser" style="display:none">
|
|
4189
|
-
<div id="col-decl-list"></div>
|
|
4190
|
-
<div id="col-mile-list"></div>
|
|
4191
|
-
<div id="col-act-list"></div>
|
|
4192
|
-
</div>
|
|
4193
3842
|
<div id="decl-form-container" style="display:none"></div>
|
|
4194
3843
|
<button id="col-decl-add-btn" style="display:none"></button>
|
|
4195
3844
|
|
|
@@ -4273,8 +3922,6 @@
|
|
|
4273
3922
|
<button id="overlay-retry">Retry</button>
|
|
4274
3923
|
</div>
|
|
4275
3924
|
|
|
4276
|
-
<div id="focus-hint">Press Esc or click outside to exit focus</div>
|
|
4277
|
-
|
|
4278
3925
|
<!-- File Viewer Modal -->
|
|
4279
3926
|
<div id="file-viewer-modal">
|
|
4280
3927
|
<div class="file-viewer-container">
|
|
@@ -4287,6 +3934,6 @@
|
|
|
4287
3934
|
</div>
|
|
4288
3935
|
|
|
4289
3936
|
<div id="version-label"></div>
|
|
4290
|
-
<script src="/public/app.js?v=
|
|
3937
|
+
<script src="/public/app.js?v=28"></script>
|
|
4291
3938
|
</body>
|
|
4292
3939
|
</html>
|
package/package.json
CHANGED