@mjasnikovs/pi-task 0.24.2 → 0.24.4
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 +1 -1
- package/assets/card.png +0 -0
- package/assets/card.svg +39 -0
- package/assets/hero.png +0 -0
- package/assets/hero.svg +50 -85
- package/dist/shared/command-watchdog.d.ts +9 -3
- package/dist/shared/command-watchdog.js +10 -11
- package/dist/shared/stream-watchdog.d.ts +17 -3
- package/dist/shared/stream-watchdog.js +18 -11
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-

|
|
4
4
|
|
|
5
5
|
# pi-task
|
|
6
6
|
|
package/assets/card.png
ADDED
|
Binary file
|
package/assets/card.svg
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600" width="960" height="600" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, 'Liberation Sans', Arial, sans-serif" role="img" aria-label="pi-task — Deterministic AI Workflows. Five fixed phases: refine, research, grill, compose, critique.">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="frame"><rect x="0" y="0" width="960" height="600"/></clipPath>
|
|
4
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
5
|
+
<stop offset="0" stop-color="#0d1117"/><stop offset="1" stop-color="#010409"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="hl" x1="0" y1="0" x2="1" y2="0">
|
|
8
|
+
<stop offset="0" stop-color="#b183f9"/><stop offset="1" stop-color="#8957e5"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
</defs>
|
|
11
|
+
<rect width="960" height="600" fill="url(#bg)"/><g clip-path="url(#frame)" fill="none" stroke="#a371f7" stroke-linecap="round" stroke-linejoin="round" opacity="0.26"><path d="M224.4 600.0L252.1 539.1L270.6 559.4L302.9 486.3L326.0 506.6L356.1 451.8L383.8 470.1L411.5 423.4L432.3 437.6L455.4 397.0L473.9 439.6L492.4 421.4L520.1 478.2L543.2 462.0L577.8 516.8L603.2 500.5L631.0 553.3L654.1 537.1L686.4 600.0" stroke-width="1.4" opacity="0.16"/><path d="M666.6 600.0L692.7 547.5L710.2 565.0L740.7 502.0L762.4 519.5L790.7 472.3L816.9 488.0L843.0 447.8L862.6 460.0L884.4 425.0L901.8 461.8L919.2 446.0L945.4 495.0L967.2 481.0L999.8 528.3L1023.8 514.3L1049.9 559.8L1071.7 545.8L1102.2 600.0" stroke-width="1.4" opacity="0.16"/><path d="M660.0 250.0L330.0 600M660.0 250.0L412.5 600M660.0 250.0L495.0 600M660.0 250.0L577.5 600M660.0 250.0L660.0 600M660.0 250.0L742.5 600M660.0 250.0L825.0 600M660.0 250.0L907.5 600M660.0 250.0L990.0 600" stroke-width="1" opacity="0.1"/><path d="M369.6 495.0L369.6 600M396.0 530.0L396.0 600M442.2 404.0L442.2 600M475.2 439.0L475.2 600M518.1 344.5L518.1 600M557.7 376.0L557.7 600M597.3 295.5L597.3 600M627.0 320.0L627.0 600M660.0 250.0L660.0 600M686.4 323.5L686.4 600M712.8 292.0L712.8 600M752.4 390.0L752.4 600M785.4 362.0L785.4 600M834.9 456.5L834.9 600M871.2 428.5L871.2 600M910.8 519.5L910.8 600M943.8 491.5L943.8 600" stroke-width="1" opacity="0.13"/><path d="M330.0 600.0L369.6 495.0L396.0 530.0L442.2 404.0L475.2 439.0L518.1 344.5L557.7 376.0L597.3 295.5L627.0 320.0L660.0 250.0L686.4 323.5L712.8 292.0L752.4 390.0L785.4 362.0L834.9 456.5L871.2 428.5L910.8 519.5L943.8 491.5L990.0 600.0" stroke-width="2.2" opacity="0.55"/><path d="M330.0 600.0L396.0 530.0L475.2 439.0L557.7 376.0L627.0 320.0L660.0 250.0" stroke-width="1.8" stroke-dasharray="7 6" opacity="0.75"/><circle cx="330.0" cy="600.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="396.0" cy="530.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="475.2" cy="439.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="557.7" cy="376.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="627.0" cy="320.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="660.0" cy="250.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/></g>
|
|
12
|
+
<g transform="translate(44,28) scale(0.95)" fill="none" stroke="#a371f7" stroke-width="2.21" stroke-linecap="round" stroke-linejoin="round">
|
|
13
|
+
<path d="M30.18 4.98A20 20 0 1 0 41.66 14.61"/>
|
|
14
|
+
<path d="M13.5 17H34.5M19.5 17V32M28.5 17V32"/>
|
|
15
|
+
</g>
|
|
16
|
+
<text x="98" y="62" font-size="36" font-weight="700" fill="#e6edf3" letter-spacing="-0.5">pi-task</text>
|
|
17
|
+
<text x="44" y="258" font-size="104" font-weight="700" fill="#e6edf3" letter-spacing="-4">Deterministic</text>
|
|
18
|
+
<text x="44" y="372" font-size="104" font-weight="700" fill="url(#hl)" letter-spacing="-4">AI Workflows.</text>
|
|
19
|
+
<rect x="44" y="404" width="104" height="7" rx="3.5" fill="#8957e5"/>
|
|
20
|
+
<rect x="98.2" y="452" width="66" height="66" rx="14.5" fill="#1e1633" stroke="#a371f7" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
21
|
+
<g transform="translate(113.8,467.6) scale(1.45)" fill="none" stroke="#a371f7" stroke-width="1.31" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/><path d="M9 13h6M9 17h4"/></g>
|
|
22
|
+
<text x="131.2" y="543" text-anchor="middle" font-size="18" font-weight="700" fill="#8b949e" letter-spacing="0.6">REFINE</text>
|
|
23
|
+
<path d="M208.4 485h20M222.4 480l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
24
|
+
<rect x="272.6" y="452" width="66" height="66" rx="14.5" fill="#0d2440" stroke="#58a6ff" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
25
|
+
<g transform="translate(288.2,467.6) scale(1.45)" fill="none" stroke="#58a6ff" stroke-width="1.31" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"/><path d="M20.5 20.5 16 16"/></g>
|
|
26
|
+
<text x="305.6" y="543" text-anchor="middle" font-size="18" font-weight="700" fill="#8b949e" letter-spacing="0.6">RESEARCH</text>
|
|
27
|
+
<path d="M382.8 485h20M396.8 480l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
28
|
+
<rect x="447.0" y="452" width="66" height="66" rx="14.5" fill="#33172a" stroke="#f778ba" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
29
|
+
<g transform="translate(462.6,467.6) scale(1.45)" fill="none" stroke="#f778ba" stroke-width="1.31" stroke-linecap="round" stroke-linejoin="round"><path d="M20.5 11.5a8.5 8.5 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3.5 21l1.9-4.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 8.5-8.5 8.5 8.5 0 0 1 7.5 7.5z"/><path d="M9.6 9.4a2.6 2.6 0 0 1 5 .9c0 1.7-2.5 2.6-2.5 2.6"/><path d="M12 16.4h.01"/></g>
|
|
30
|
+
<text x="480.0" y="543" text-anchor="middle" font-size="18" font-weight="700" fill="#8b949e" letter-spacing="0.6">GRILL</text>
|
|
31
|
+
<path d="M557.2 485h20M571.2 480l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
32
|
+
<rect x="621.4" y="452" width="66" height="66" rx="14.5" fill="#0f2a1b" stroke="#3fb950" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
33
|
+
<g transform="translate(637.0,467.6) scale(1.45)" fill="none" stroke="#3fb950" stroke-width="1.31" stroke-linecap="round" stroke-linejoin="round"><path d="M12.5 20.5H21"/><path d="M16.7 3.6a2.1 2.1 0 0 1 3 3L7.5 18.8 3.5 20l1.2-4z"/></g>
|
|
34
|
+
<text x="654.4" y="543" text-anchor="middle" font-size="18" font-weight="700" fill="#8b949e" letter-spacing="0.6">COMPOSE</text>
|
|
35
|
+
<path d="M731.6 485h20M745.6 480l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
36
|
+
<rect x="795.8" y="452" width="66" height="66" rx="14.5" fill="#2d2410" stroke="#d29922" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
37
|
+
<g transform="translate(811.4,467.6) scale(1.45)" fill="none" stroke="#d29922" stroke-width="1.31" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21.5s7.5-3.8 7.5-9.5V5.2L12 2.5 4.5 5.2V12c0 5.7 7.5 9.5 7.5 9.5z"/></g>
|
|
38
|
+
<text x="828.8" y="543" text-anchor="middle" font-size="18" font-weight="700" fill="#8b949e" letter-spacing="0.6">CRITIQUE</text>
|
|
39
|
+
</svg>
|
package/assets/hero.png
CHANGED
|
Binary file
|
package/assets/hero.svg
CHANGED
|
@@ -1,92 +1,57 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600" width="960" height="600" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif" role="img" aria-label="pi-task
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600" width="960" height="600" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, 'Liberation Sans', Arial, sans-serif" role="img" aria-label="pi-task — Deterministic AI Workflows. Every request runs a fixed pipeline: refine to clarify and structure it, research to gather information in parallel, grill to cross-examine the findings, compose to write the implementation spec, critique to check it for quality and completeness.">
|
|
2
2
|
<defs>
|
|
3
|
-
<clipPath id="frame"><rect x="
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.arw { fill:none; stroke:#6e7681; stroke-width:2.07; stroke-linecap:round; stroke-linejoin:round; }
|
|
10
|
-
</style>
|
|
11
|
-
</defs>
|
|
12
|
-
|
|
13
|
-
<rect x="6" y="6" width="948" height="588" rx="18" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
|
|
14
|
-
|
|
15
|
-
<!-- ── watermark ── -->
|
|
16
|
-
<defs>
|
|
17
|
-
<linearGradient id="mtFade" gradientUnits="userSpaceOnUse" x1="6" y1="0" x2="688" y2="0">
|
|
18
|
-
<stop offset="0" stop-color="#fff" stop-opacity="1"/>
|
|
19
|
-
<stop offset="0.55" stop-color="#fff" stop-opacity="0.9"/>
|
|
20
|
-
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
|
3
|
+
<clipPath id="frame"><rect x="0" y="0" width="960" height="600"/></clipPath>
|
|
4
|
+
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
5
|
+
<stop offset="0" stop-color="#0d1117"/><stop offset="1" stop-color="#010409"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="hl" x1="0" y1="0" x2="1" y2="0">
|
|
8
|
+
<stop offset="0" stop-color="#b183f9"/><stop offset="1" stop-color="#8957e5"/>
|
|
21
9
|
</linearGradient>
|
|
22
|
-
<mask id="mtMask"><rect x="0" y="0" width="960" height="600" fill="url(#mtFade)"/></mask>
|
|
23
10
|
</defs>
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
<path d="M264.1 330.1L6.0 594.0M264.1 330.1L130.7 594.0M264.1 330.1L255.4 594.0M264.1 330.1L380.1 594.0M264.1 330.1L504.8 594.0M264.1 330.1L629.5 594.0" stroke-width="1" opacity="0.08"/>
|
|
27
|
-
<path d="M56.8 538.9L56.8 594.0M95.9 556.3L95.9 594.0M148.1 475.1L148.1 594.0M191.6 495.4L191.6 594.0M226.4 405.5L226.4 594.0M264.1 330.1L264.1 594.0M290.2 382.3L290.2 594.0M316.3 364.9L316.3 594.0M351.1 443.2L351.1 594.0M385.9 422.9L385.9 594.0M423.6 489.6L423.6 594.0M458.4 469.3L458.4 594.0M499.0 530.2L499.0 594.0M539.6 515.7L539.6 594.0M586.0 567.9L586.0 594.0" stroke-width="1" opacity="0.07"/>
|
|
28
|
-
<path d="M6.0 594.0L56.8 538.9L95.9 556.3L148.1 475.1L191.6 495.4L226.4 405.5L264.1 330.1L290.2 382.3L316.3 364.9L351.1 443.2L385.9 422.9L423.6 489.6L458.4 469.3L499.0 530.2L539.6 515.7L586.0 567.9L629.5 594.0" stroke-width="2" opacity="0.30"/>
|
|
29
|
-
<circle cx="6.0" cy="594.0" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
30
|
-
<circle cx="148.1" cy="475.1" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
31
|
-
<circle cx="264.1" cy="330.1" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
32
|
-
<circle cx="351.1" cy="443.2" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
33
|
-
<circle cx="458.4" cy="469.3" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
34
|
-
<circle cx="586.0" cy="567.9" r="2.6" fill="#a371f7" stroke="none" opacity="0.34"/>
|
|
35
|
-
</g>
|
|
36
|
-
|
|
37
|
-
<!-- ── logo lockup · π in a broken circle, drawn as paths (no font dependency) ── -->
|
|
38
|
-
<g transform="translate(371,59) scale(1.2500)" fill="none" stroke="#a371f7" stroke-width="2.40" stroke-linecap="round" stroke-linejoin="round">
|
|
11
|
+
<rect width="960" height="600" fill="url(#bg)"/><g clip-path="url(#frame)" fill="none" stroke="#a371f7" stroke-linecap="round" stroke-linejoin="round" opacity="0.5"><path d="M137.6 600.0L164.5 560.3L182.4 573.6L213.8 525.9L236.2 539.2L265.3 503.5L292.2 515.4L319.0 485.0L339.2 494.2L361.6 467.8L379.5 495.5L397.4 483.6L424.3 520.7L446.7 510.1L480.3 545.8L505.0 535.2L531.8 569.6L554.2 559.0L585.6 600.0" stroke-width="1.4" opacity="0.16"/><path d="M566.4 600.0L591.7 565.8L608.6 577.2L638.2 536.2L659.3 547.6L686.8 516.8L712.1 527.0L737.5 500.8L756.5 508.8L777.6 486.0L794.5 509.9L811.4 499.7L836.7 531.6L857.9 522.5L889.5 553.3L912.8 544.1L938.1 573.8L959.2 564.7L988.8 600.0" stroke-width="1.4" opacity="0.16"/><path d="M560.0 372.0L240.0 600M560.0 372.0L320.0 600M560.0 372.0L400.0 600M560.0 372.0L480.0 600M560.0 372.0L560.0 600M560.0 372.0L640.0 600M560.0 372.0L720.0 600M560.0 372.0L800.0 600M560.0 372.0L880.0 600" stroke-width="1" opacity="0.1"/><path d="M278.4 531.6L278.4 600M304.0 554.4L304.0 600M348.8 472.3L348.8 600M380.8 495.1L380.8 600M422.4 433.6L422.4 600M460.8 454.1L460.8 600M499.2 401.6L499.2 600M528.0 417.6L528.0 600M560.0 372.0L560.0 600M585.6 419.9L585.6 600M611.2 399.4L611.2 600M649.6 463.2L649.6 600M681.6 445.0L681.6 600M729.6 506.5L729.6 600M764.8 488.3L764.8 600M803.2 547.6L803.2 600M835.2 529.3L835.2 600" stroke-width="1" opacity="0.13"/><path d="M240.0 600.0L278.4 531.6L304.0 554.4L348.8 472.3L380.8 495.1L422.4 433.6L460.8 454.1L499.2 401.6L528.0 417.6L560.0 372.0L585.6 419.9L611.2 399.4L649.6 463.2L681.6 445.0L729.6 506.5L764.8 488.3L803.2 547.6L835.2 529.3L880.0 600.0" stroke-width="2.2" opacity="0.55"/><path d="M240.0 600.0L304.0 554.4L380.8 495.1L460.8 454.1L528.0 417.6L560.0 372.0" stroke-width="1.8" stroke-dasharray="7 6" opacity="0.75"/><circle cx="240.0" cy="600.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="304.0" cy="554.4" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="380.8" cy="495.1" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="460.8" cy="454.1" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="528.0" cy="417.6" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><circle cx="560.0" cy="372.0" r="3" fill="#a371f7" stroke="none" opacity="0.9"/><path d="M560.0 372.0L560.0 324.0" stroke-width="2.6" opacity="0.95"/><path d="M560.0 324.0h44l-10 13h-34z" fill="#8957e5" stroke="none"/><text x="575.0" y="335.0" font-size="15" font-weight="700" fill="#fff" stroke="none">π</text></g>
|
|
12
|
+
<g transform="translate(44,34) scale(0.82)" fill="none" stroke="#a371f7" stroke-width="2.56" stroke-linecap="round" stroke-linejoin="round">
|
|
39
13
|
<path d="M30.18 4.98A20 20 0 1 0 41.66 14.61"/>
|
|
40
14
|
<path d="M13.5 17H34.5M19.5 17V32M28.5 17V32"/>
|
|
41
15
|
</g>
|
|
42
|
-
<text x="
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
<text x="
|
|
47
|
-
<text x="
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
<
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<text x="
|
|
66
|
-
<
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<
|
|
72
|
-
<
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
<
|
|
78
|
-
<
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
</
|
|
83
|
-
<text x="662" y="509.8" class="ph">critique</text>
|
|
84
|
-
<path class="arw" d="M732 503.5h17.2M743.5 496.8l6.7 6.7-6.7 6.7"/>
|
|
85
|
-
<g transform="translate(766,492.5) scale(0.9167)" stroke="#3fb950">
|
|
86
|
-
<path class="ic" d="M14 2.5H6.5a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V8z"/>
|
|
87
|
-
<path class="ic" d="M14 2.5V8h5.5"/>
|
|
88
|
-
<path class="ic" d="M8.5 13.5h7M8.5 17.5h7"/>
|
|
89
|
-
</g>
|
|
90
|
-
<text x="797" y="509.8" class="ph" font-weight="600" fill="#3fb950">a spec</text>
|
|
91
|
-
|
|
16
|
+
<text x="90" y="63" font-size="30" font-weight="700" fill="#e6edf3" letter-spacing="-0.5">pi-task</text>
|
|
17
|
+
<text x="44" y="212" font-size="62" font-weight="700" fill="#e6edf3" letter-spacing="-2">Deterministic</text>
|
|
18
|
+
<text x="44" y="280" font-size="62" font-weight="700" fill="url(#hl)" letter-spacing="-2">AI Workflows.</text>
|
|
19
|
+
<rect x="44" y="312" width="72" height="4" rx="2" fill="#8957e5"/>
|
|
20
|
+
<text x="44" y="356" font-size="17" fill="#8b949e">pi-task orchestrates every request</text>
|
|
21
|
+
<text x="44" y="381" font-size="17" fill="#8b949e">through a fixed pipeline to produce</text>
|
|
22
|
+
<text x="44" y="406" font-size="17" fill="#8b949e">implementation specs you can trust.</text>
|
|
23
|
+
<rect x="470.0" y="132" width="74" height="74" rx="16.3" fill="#1e1633" stroke="#a371f7" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
24
|
+
<g transform="translate(489.0,151.0) scale(1.5)" fill="none" stroke="#a371f7" stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/><path d="M9 13h6M9 17h4"/></g>
|
|
25
|
+
<text x="507.0" y="227" text-anchor="middle" font-size="11.5" font-weight="700" fill="#e6edf3" letter-spacing="0.4">REFINE</text>
|
|
26
|
+
<text x="507.0" y="245" text-anchor="middle" font-size="9.5" fill="#8b949e">Clarify and</text>
|
|
27
|
+
<text x="507.0" y="257" text-anchor="middle" font-size="9.5" fill="#8b949e">structure the</text>
|
|
28
|
+
<text x="507.0" y="269" text-anchor="middle" font-size="9.5" fill="#8b949e">request</text>
|
|
29
|
+
<path d="M546.5 169h14M554.5 164l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
30
|
+
<rect x="563.0" y="132" width="74" height="74" rx="16.3" fill="#0d2440" stroke="#58a6ff" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
31
|
+
<g transform="translate(582.0,151.0) scale(1.5)" fill="none" stroke="#58a6ff" stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"/><path d="M20.5 20.5 16 16"/></g>
|
|
32
|
+
<text x="600.0" y="227" text-anchor="middle" font-size="11.5" font-weight="700" fill="#e6edf3" letter-spacing="0.4">RESEARCH</text>
|
|
33
|
+
<text x="600.0" y="245" text-anchor="middle" font-size="9.5" fill="#8b949e">Parallel research</text>
|
|
34
|
+
<text x="600.0" y="257" text-anchor="middle" font-size="9.5" fill="#8b949e">agents gather</text>
|
|
35
|
+
<text x="600.0" y="269" text-anchor="middle" font-size="9.5" fill="#8b949e">information</text>
|
|
36
|
+
<path d="M639.5 169h14M647.5 164l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
37
|
+
<rect x="656.0" y="132" width="74" height="74" rx="16.3" fill="#33172a" stroke="#f778ba" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
38
|
+
<g transform="translate(675.0,151.0) scale(1.5)" fill="none" stroke="#f778ba" stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"><path d="M20.5 11.5a8.5 8.5 0 0 1-8.5 8.5 8.4 8.4 0 0 1-3.8-.9L3.5 21l1.9-4.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 8.5-8.5 8.5 8.5 0 0 1 7.5 7.5z"/><path d="M9.6 9.4a2.6 2.6 0 0 1 5 .9c0 1.7-2.5 2.6-2.5 2.6"/><path d="M12 16.4h.01"/></g>
|
|
39
|
+
<text x="693.0" y="227" text-anchor="middle" font-size="11.5" font-weight="700" fill="#e6edf3" letter-spacing="0.4">GRILL</text>
|
|
40
|
+
<text x="693.0" y="245" text-anchor="middle" font-size="9.5" fill="#8b949e">Cross-examine</text>
|
|
41
|
+
<text x="693.0" y="257" text-anchor="middle" font-size="9.5" fill="#8b949e">findings to</text>
|
|
42
|
+
<text x="693.0" y="269" text-anchor="middle" font-size="9.5" fill="#8b949e">surface gaps</text>
|
|
43
|
+
<path d="M732.5 169h14M740.5 164l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
44
|
+
<rect x="749.0" y="132" width="74" height="74" rx="16.3" fill="#0f2a1b" stroke="#3fb950" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
45
|
+
<g transform="translate(768.0,151.0) scale(1.5)" fill="none" stroke="#3fb950" stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"><path d="M12.5 20.5H21"/><path d="M16.7 3.6a2.1 2.1 0 0 1 3 3L7.5 18.8 3.5 20l1.2-4z"/></g>
|
|
46
|
+
<text x="786.0" y="227" text-anchor="middle" font-size="11.5" font-weight="700" fill="#e6edf3" letter-spacing="0.4">COMPOSE</text>
|
|
47
|
+
<text x="786.0" y="245" text-anchor="middle" font-size="9.5" fill="#8b949e">Create detailed</text>
|
|
48
|
+
<text x="786.0" y="257" text-anchor="middle" font-size="9.5" fill="#8b949e">implementation</text>
|
|
49
|
+
<text x="786.0" y="269" text-anchor="middle" font-size="9.5" fill="#8b949e">spec</text>
|
|
50
|
+
<path d="M825.5 169h14M833.5 164l6 5-6 5" fill="none" stroke="#6e7681" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
|
|
51
|
+
<rect x="842.0" y="132" width="74" height="74" rx="16.3" fill="#2d2410" stroke="#d29922" stroke-opacity="0.28" stroke-width="1.2"/>
|
|
52
|
+
<g transform="translate(861.0,151.0) scale(1.5)" fill="none" stroke="#d29922" stroke-width="1.27" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21.5s7.5-3.8 7.5-9.5V5.2L12 2.5 4.5 5.2V12c0 5.7 7.5 9.5 7.5 9.5z"/></g>
|
|
53
|
+
<text x="879.0" y="227" text-anchor="middle" font-size="11.5" font-weight="700" fill="#e6edf3" letter-spacing="0.4">CRITIQUE</text>
|
|
54
|
+
<text x="879.0" y="245" text-anchor="middle" font-size="9.5" fill="#8b949e">Self-critique for</text>
|
|
55
|
+
<text x="879.0" y="257" text-anchor="middle" font-size="9.5" fill="#8b949e">quality and</text>
|
|
56
|
+
<text x="879.0" y="269" text-anchor="middle" font-size="9.5" fill="#8b949e">completeness</text>
|
|
92
57
|
</svg>
|
|
@@ -96,8 +96,14 @@ export declare class CommandWatchdog {
|
|
|
96
96
|
private fire;
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
|
-
* Real-clock schedule/cancel
|
|
100
|
-
*
|
|
101
|
-
*
|
|
99
|
+
* Real-clock schedule/cancel. Shared by both adapters; tests substitute a fake
|
|
100
|
+
* scheduler instead.
|
|
101
|
+
*
|
|
102
|
+
* REF'd, for the same measured reason as the stream watchdog's poll (see
|
|
103
|
+
* realStreamTimerDeps): under Bun on windows an unref'd timer never fires once
|
|
104
|
+
* nothing ref'd is pending, and a child sitting in a hung command is exactly
|
|
105
|
+
* that state — so the unref disabled the guard in the one case it exists for.
|
|
106
|
+
* The timer is cleared when the tool ends and in runWorker's `finally`, so it
|
|
107
|
+
* cannot outlive the call it watches.
|
|
102
108
|
*/
|
|
103
109
|
export declare const realTimerDeps: Pick<WatchdogDeps, 'schedule' | 'cancel'>;
|
|
@@ -141,18 +141,17 @@ export class CommandWatchdog {
|
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
/**
|
|
144
|
-
* Real-clock schedule/cancel
|
|
145
|
-
*
|
|
146
|
-
*
|
|
144
|
+
* Real-clock schedule/cancel. Shared by both adapters; tests substitute a fake
|
|
145
|
+
* scheduler instead.
|
|
146
|
+
*
|
|
147
|
+
* REF'd, for the same measured reason as the stream watchdog's poll (see
|
|
148
|
+
* realStreamTimerDeps): under Bun on windows an unref'd timer never fires once
|
|
149
|
+
* nothing ref'd is pending, and a child sitting in a hung command is exactly
|
|
150
|
+
* that state — so the unref disabled the guard in the one case it exists for.
|
|
151
|
+
* The timer is cleared when the tool ends and in runWorker's `finally`, so it
|
|
152
|
+
* cannot outlive the call it watches.
|
|
147
153
|
*/
|
|
148
154
|
export const realTimerDeps = {
|
|
149
|
-
schedule: (fn, ms) =>
|
|
150
|
-
const handle = setTimeout(fn, ms);
|
|
151
|
-
if (typeof handle.unref === 'function') {
|
|
152
|
-
;
|
|
153
|
-
handle.unref();
|
|
154
|
-
}
|
|
155
|
-
return handle;
|
|
156
|
-
},
|
|
155
|
+
schedule: (fn, ms) => setTimeout(fn, ms),
|
|
157
156
|
cancel: handle => clearTimeout(handle)
|
|
158
157
|
};
|
|
@@ -103,9 +103,23 @@ export declare class StreamWatchdog {
|
|
|
103
103
|
check(): void;
|
|
104
104
|
}
|
|
105
105
|
/**
|
|
106
|
-
* Real-clock poll deps
|
|
107
|
-
*
|
|
108
|
-
*
|
|
106
|
+
* Real-clock poll deps. `schedule` returns a repeating interval — the machine
|
|
107
|
+
* cancels it on stop/fire, and runChild's cleanup() stops the watchdog on every
|
|
108
|
+
* settle path (close, error, abort), so it cannot outlive the child it watches.
|
|
109
|
+
*
|
|
110
|
+
* The poll is REF'd, deliberately. It used to be unref'd, on the reasoning that a
|
|
111
|
+
* pending watchdog poll should never keep the process alive at exit — but under
|
|
112
|
+
* Bun on WINDOWS an unref'd timer does not fire at all once nothing ref'd is
|
|
113
|
+
* pending. Measured on a windows-latest runner (bun 1.3.14): an unref'd interval
|
|
114
|
+
* with nothing else pending never fired in 20s, while the identical ref'd one
|
|
115
|
+
* fired at 101ms; on linux both fire at 100ms.
|
|
116
|
+
*
|
|
117
|
+
* That state — no ref'd work outstanding — is EXACTLY the state this watchdog
|
|
118
|
+
* exists to police: a child whose model stream has gone silent. So the unref
|
|
119
|
+
* disabled the guard precisely when it was needed, and every stream-stall
|
|
120
|
+
* integration test hung forever on windows (CI runs 30476786365, 30477802633,
|
|
121
|
+
* 30478455402 — it hangs at v0.24.1 too, so this predates that release).
|
|
122
|
+
* A poll that can delay exit by one interval is the cheaper failure.
|
|
109
123
|
*/
|
|
110
124
|
export declare const realStreamTimerDeps: Pick<StreamWatchdogDeps, 'now' | 'schedule' | 'cancel'>;
|
|
111
125
|
/**
|
|
@@ -148,20 +148,27 @@ export class StreamWatchdog {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
/**
|
|
151
|
-
* Real-clock poll deps
|
|
152
|
-
*
|
|
153
|
-
*
|
|
151
|
+
* Real-clock poll deps. `schedule` returns a repeating interval — the machine
|
|
152
|
+
* cancels it on stop/fire, and runChild's cleanup() stops the watchdog on every
|
|
153
|
+
* settle path (close, error, abort), so it cannot outlive the child it watches.
|
|
154
|
+
*
|
|
155
|
+
* The poll is REF'd, deliberately. It used to be unref'd, on the reasoning that a
|
|
156
|
+
* pending watchdog poll should never keep the process alive at exit — but under
|
|
157
|
+
* Bun on WINDOWS an unref'd timer does not fire at all once nothing ref'd is
|
|
158
|
+
* pending. Measured on a windows-latest runner (bun 1.3.14): an unref'd interval
|
|
159
|
+
* with nothing else pending never fired in 20s, while the identical ref'd one
|
|
160
|
+
* fired at 101ms; on linux both fire at 100ms.
|
|
161
|
+
*
|
|
162
|
+
* That state — no ref'd work outstanding — is EXACTLY the state this watchdog
|
|
163
|
+
* exists to police: a child whose model stream has gone silent. So the unref
|
|
164
|
+
* disabled the guard precisely when it was needed, and every stream-stall
|
|
165
|
+
* integration test hung forever on windows (CI runs 30476786365, 30477802633,
|
|
166
|
+
* 30478455402 — it hangs at v0.24.1 too, so this predates that release).
|
|
167
|
+
* A poll that can delay exit by one interval is the cheaper failure.
|
|
154
168
|
*/
|
|
155
169
|
export const realStreamTimerDeps = {
|
|
156
170
|
now: () => Date.now(),
|
|
157
|
-
schedule: (fn, ms) =>
|
|
158
|
-
const handle = setInterval(fn, ms);
|
|
159
|
-
if (typeof handle.unref === 'function') {
|
|
160
|
-
;
|
|
161
|
-
handle.unref();
|
|
162
|
-
}
|
|
163
|
-
return handle;
|
|
164
|
-
},
|
|
171
|
+
schedule: (fn, ms) => setInterval(fn, ms),
|
|
165
172
|
cancel: handle => clearInterval(handle)
|
|
166
173
|
};
|
|
167
174
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mjasnikovs/pi-task",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.4",
|
|
4
4
|
"description": "Deterministic task planning and spec-orchestration for local models — crash-safe /task pipelines with verify/enforce gates, a real-time remote web view, and web/docs/fetch/worker subagent tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -85,6 +85,6 @@
|
|
|
85
85
|
"extensions": [
|
|
86
86
|
"dist/index.js"
|
|
87
87
|
],
|
|
88
|
-
"image": "https://raw.githubusercontent.com/mjasnikovs/pi-task/main/assets/
|
|
88
|
+
"image": "https://raw.githubusercontent.com/mjasnikovs/pi-task/main/assets/card.png"
|
|
89
89
|
}
|
|
90
90
|
}
|