@davidorex/pi-workflows 0.14.6 → 0.26.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 (79) hide show
  1. package/README.md +12 -9
  2. package/agents/handoff-writer.agent.yaml +1 -1
  3. package/dist/agent-spec.d.ts.map +1 -1
  4. package/dist/agent-spec.js +4 -3
  5. package/dist/agent-spec.js.map +1 -1
  6. package/dist/bundled-dirs.d.ts +2 -0
  7. package/dist/bundled-dirs.d.ts.map +1 -0
  8. package/dist/bundled-dirs.js +21 -0
  9. package/dist/bundled-dirs.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +118 -8
  13. package/dist/index.js.map +1 -1
  14. package/dist/render-by-id.d.ts +62 -0
  15. package/dist/render-by-id.d.ts.map +1 -0
  16. package/dist/render-by-id.js +102 -0
  17. package/dist/render-by-id.js.map +1 -0
  18. package/dist/step-agent.js +1 -1
  19. package/dist/step-block.d.ts +5 -1
  20. package/dist/step-block.d.ts.map +1 -1
  21. package/dist/step-block.js +88 -40
  22. package/dist/step-block.js.map +1 -1
  23. package/dist/step-monitor.d.ts +1 -1
  24. package/dist/step-monitor.d.ts.map +1 -1
  25. package/dist/step-monitor.js +1 -1
  26. package/dist/step-monitor.js.map +1 -1
  27. package/dist/step-shared.d.ts +1 -1
  28. package/dist/step-shared.d.ts.map +1 -1
  29. package/dist/step-shared.js +16 -10
  30. package/dist/step-shared.js.map +1 -1
  31. package/dist/template-validation.d.ts.map +1 -1
  32. package/dist/template-validation.js +5 -5
  33. package/dist/template-validation.js.map +1 -1
  34. package/dist/template.d.ts.map +1 -1
  35. package/dist/template.js +2 -1
  36. package/dist/template.js.map +1 -1
  37. package/dist/test-helpers.d.ts +91 -0
  38. package/dist/test-helpers.d.ts.map +1 -1
  39. package/dist/test-helpers.js +186 -1
  40. package/dist/test-helpers.js.map +1 -1
  41. package/dist/tui.d.ts +3 -3
  42. package/dist/tui.d.ts.map +1 -1
  43. package/dist/tui.js +1 -1
  44. package/dist/types.d.ts +36 -1
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/workflow-discovery.d.ts.map +1 -1
  47. package/dist/workflow-discovery.js +2 -1
  48. package/dist/workflow-discovery.js.map +1 -1
  49. package/dist/workflow-executor.d.ts.map +1 -1
  50. package/dist/workflow-executor.js +23 -9
  51. package/dist/workflow-executor.js.map +1 -1
  52. package/dist/workflow-sdk.d.ts.map +1 -1
  53. package/dist/workflow-sdk.js +14 -8
  54. package/dist/workflow-sdk.js.map +1 -1
  55. package/dist/workflow-spec.js +99 -2
  56. package/dist/workflow-spec.js.map +1 -1
  57. package/package.json +9 -5
  58. package/skill-narrative.md +3 -1
  59. package/skills/pi-workflows/SKILL.md +43 -6
  60. package/skills/pi-workflows/references/bundled-resources.md +16 -1
  61. package/templates/items/architecture.md +33 -0
  62. package/templates/items/conformance.md +26 -0
  63. package/templates/items/conventions.md +19 -0
  64. package/templates/items/decisions.md +47 -0
  65. package/templates/items/domain.md +21 -0
  66. package/templates/items/features.md +63 -0
  67. package/templates/items/framework-gaps.md +43 -0
  68. package/templates/items/issues.md +21 -0
  69. package/templates/items/layer-plans.md +50 -0
  70. package/templates/items/project.md +48 -0
  71. package/templates/items/requirements.md +20 -0
  72. package/templates/items/research.md +57 -0
  73. package/templates/items/spec-reviews.md +51 -0
  74. package/templates/items/tasks.md +29 -0
  75. package/templates/shared/macros.md +83 -98
  76. package/templates/shared/render-helpers.md +106 -0
  77. package/workflows/analyze-existing-project.workflow.yaml +1 -1
  78. package/workflows/init-new-project.workflow.yaml +1 -1
  79. package/workflows/plan-from-requirements.workflow.yaml +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-spec.js","sourceRoot":"","sources":["../src/workflow-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAqB1C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAC7F,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IAC9F,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IACxG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IAC7F,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IACrG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;IAChG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAClG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAClG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;CAC9F,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAClC,QAAQ,CAAS;IACjB,MAAM,CAAS;IAExB,YAAY,QAAgB,EAAE,MAAc;QAC3C,KAAK,CAAC,0BAA0B,QAAQ,MAAM,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAgB,EAAE,MAA0B;IAC9F,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACJ,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,GAAG,GAAG,GAA8B,CAAC;IAE3C,gBAAgB;IAChB,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACrE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAgC,CAAC;IACtD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAC;IAC7E,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,qEAAqE;IACrE,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC;YACJ,KAAK,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG,CAAC;YACX,CAAC;QACF,CAAC;IACF,CAAC;IAED,+BAA+B;IAC/B,MAAM,IAAI,GAAiB;QAC1B,IAAI,EAAE,GAAG,CAAC,IAAc;QACxB,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACvE,KAAK;QACL,MAAM;QACN,QAAQ;KACR,CAAC;IAEF,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAiB,CAAC;IACpE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAgC,CAAC;IAC/E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAiC,CAAC;IAElF,+BAA+B;IAC/B,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,6CAA6C;IAC7C,IAAI,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpG,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,GAAG,CAAC,UAAqC,CAAC;YAC1D,IAAI,eAAe,GAAG,IAAI,CAAC;YAE3B,0DAA0D;YAC1D,IAAI,UAAU,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBACtE,eAAe,GAAG,KAAK,CAAC;YACzB,CAAC;YAED,yBAAyB;YACzB,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;gBACrE,eAAe,GAAG,KAAK,CAAC;YACzB,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAmB,EAAE,CAAC;gBAEtC,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1C,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;gBACxC,CAAC;qBAAM,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBACvD,CAAC;gBAED,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACzC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBACtC,CAAC;qBAAM,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACtD,CAAC;gBAED,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBACrC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACP,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;wBAC7E,IAAI,CAAC,UAAU,EAAE,CAAC;4BACjB,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;wBACjE,CAAC;6BAAM,CAAC;4BACP,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAmB,CAAC;wBAClD,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,CAAC;QACF,CAAC;IACF,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACvD,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjG,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACP,MAAM,YAAY,GAAG,GAAG,CAAC,SAAoC,CAAC;YAC9D,MAAM,SAAS,GAAiC,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClF,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,qBAAqB,CAAC,CAAC;oBACvD,SAAS;gBACV,CAAC;gBACD,MAAM,MAAM,GAAG,QAAmC,CAAC;gBACnD,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,SAAS,CAAC,IAAI,CAAC,aAAa,OAAO,6BAA6B,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrC,SAAS,CAAC,IAAI,CAAC,aAAa,OAAO,6BAA6B,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;oBAC1B,SAAS;gBACV,CAAC;gBACD,MAAM,QAAQ,GAAiB;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAc;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAc;iBAC3B,CAAC;gBACF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACvC,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,2BAA2B,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACP,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBACjC,CAAC;gBACF,CAAC;gBACD,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;IACF,CAAC;IAED,6DAA6D;IAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACvB,OAAgC,EAChC,QAAgB,EAChB,QAAgB,EAChB,IAAgC;IAEhC,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE7E,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,4BAA4B,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAiC,CAAC;IAC5D,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAkC,CAAC;IAC9D,CAAC;IACD,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,8CAA8C,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,kCAAkC,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACzB,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,gCAAgC,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,SAAkB,EAAE,QAAgB,EAAE,QAAgB;IAC3E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,qBAAqB,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,SAAoC,CAAC;IAErD,sCAAsC;IACtC,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,wDAAwD,CAAC,CAAC;IAClH,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,+BAA+B,YAAY,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,QAAQ,+BAA+B,WAAW,oCAAoC,CAC/F,CAAC;IACH,CAAC;IAED,kFAAkF;IAClF,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;IACnD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;IACjD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;IACjD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;IACnD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;IACvD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;IAEnD,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,yBAAyB;IACzB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAc,CAAC;IACnE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAA8B,CAAC;IAEzF,4DAA4D;IAC5D,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,mBAAmB,GAAG;YAC3B,QAAQ;YACR,SAAS;YACT,OAAO;YACP,SAAS;YACT,OAAO;YACP,KAAK;YACL,MAAM;YACN,QAAQ;YACR,cAAc;YACd,aAAa;SACb,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,QAAQ,YAAY,OAAO,CAAC,KAAK,4BAA4B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtG,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAgC,CAAC;QAC1D,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;YAC/B,IACC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ;gBACxC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACvC,QAAQ,CAAC,WAAW,GAAG,CAAC,EACvB,CAAC;gBACF,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,gDAAgD,CAAC,CAAC;YAC1G,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAC1C,CAAC;QACD,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;gBACxE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,8CAA8C,CAAC,CAAC;YACxG,CAAC;YACD,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAC1C,CAAC;QACD,IAAI,iBAAiB,IAAI,QAAQ,EAAE,CAAC;YACnC,IAAI,OAAO,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0CAA0C,CAAC,CAAC;YACpG,CAAC;YACD,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3D,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,4BAA4B,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACjD,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,uBAAuB,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC;IAED,aAAa;IACb,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,kCAAkC,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAyB,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,aAAa;IACb,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAgC,CAAC;QAE1D,4BAA4B;QAC5B,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC1F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,QAAQ,wEAAwE,CACzF,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,mDAAmD,CAAC,CAAC;YAC7G,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,6CAA6C,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,8CAA8C,CAAC,CAAC;gBACxG,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,kCAAkC,CAAC,CAAC;YAC5F,CAAC;QACF,CAAC;QAED,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,iCAAiC,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAgC,CAAC;YACpD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,qCAAqC,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,wCAAwC,CAAC,CAAC;YAClG,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,kCAAkC,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAiC,CAAC;YACrD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,sCAAsC,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,qCAAqC,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0CAA0C,CAAC,CAAC;YACpG,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,kCAAkC,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAiC,CAAC;YACrD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,sCAAsC,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,qCAAqC,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,wCAAwC,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,sCAAsC,CAAC,CAAC;YAChG,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,QAAqD,CAAC;QAEnE,yBAAyB;QACzB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,WAAW;YAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAE3C,sDAAsD;QACtD,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,eAAe;IACf,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,4BAA4B,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,yBAAyB;QACzB,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,aAAa;YAAE,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAE/C,sDAAsD;QACtD,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,eAAe;IACf,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,4BAA4B,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,oDAAoD;QACpD,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAC;QACvD,CAAC;QAED,yBAAyB;QACzB,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,aAAa;YAAE,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAE/C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,aAAa;IACb,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAE3B,oCAAoC;QACpC,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0BAA0B,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjG,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,2BAA2B,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAgC,CAAC;QACvD,CAAC;QAED,oEAAoE;QACpE,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0CAA0C,CAAC,CAAC;YACpG,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,qCAAqC,CAAC,CAAC;gBAC/F,CAAC;YACF,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAmB,CAAC;QAC5C,CAAC;QAED,uEAAuE;QACvE,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,IAAI,WAAW;YAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC5C,CAAC;IAED,YAAY;IACZ,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAA+B,CAAC;QACxD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,mCAAmC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,IAAI,GAAa,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;QACrF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAA4B,CAAC;QACrF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,IAAI,YAAY,EAAE,CAAC;QAClB,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7G,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,+BAA+B,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAoC,CAAC;QAClE,IACC,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ;YACxC,YAAY,CAAC,OAAO,KAAK,IAAI;YAC7B,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAClC,CAAC;YACF,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0CAA0C,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,OAAkC,EAAE,CAAC;IAC/E,CAAC;IAED,YAAY;IACZ,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,0BAA0B,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAA+B,CAAC;QAExD,sFAAsF;QACtF,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,MAAM,iBAAiB,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC;QAC7D,MAAM,kBAAkB,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC;QAC9D,MAAM,WAAW,GAAG,UAAU,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAClF,IAAI,CAAC,iBAAiB,IAAI,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,QAAQ,kFAAkF,CACnG,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IACC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;YACrB,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;YACjC,OAAO,CAAC,KAAK,KAAK,IAAI;YACtB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAC3B,CAAC;YACF,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,6CAA6C,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAgC,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,6CAA6C,CAAC,CAAC;QACvG,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAA6B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChF,+CAA+C;YAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,OAAO,cAAc,QAAQ,qDAAqD,CAC3F,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,iBAAiB,CAC1B,QAAQ,EACR,SAAS,OAAO,cAAc,QAAQ,yDAAyD,CAC/F,CAAC;YACH,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,GAAa;YACtB,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAE,cAAyB,CAAC,CAAC,CAAC,CAAC;YAC/D,KAAK,EAAE,SAAS;SAChB,CAAC;QACF,2EAA2E;QAC3E,IAAI,kBAAkB,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,cAAwB,CAAC;QAC1C,CAAC;QACD,IAAI,WAAW;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAkB,CAAC;QAC5D,IAAI,iBAAiB;YAAE,IAAI,CAAC,WAAW,GAAG,cAAwB,CAAC;QAEnE,kCAAkC;QAClC,IAAI,aAAa,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,IAAI,WAAW,EAAE,CAAC;QACjB,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1G,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,uCAAuC,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAmC,CAAC;QAChE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,iBAAiB,CAAC,QAAQ,EAAE,SAAS,QAAQ,uCAAuC,CAAC,CAAC;QACjG,CAAC;QAED,iCAAiC;QACjC,MAAM,aAAa,GAA6B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,QAAQ,aAAa,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"workflow-spec.js","sourceRoot":"","sources":["../src/workflow-spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidorex/pi-workflows",
3
- "version": "0.14.6",
3
+ "version": "0.26.0",
4
4
  "description": "Workflow orchestration extension for Pi",
5
5
  "license": "MIT",
6
6
  "author": "David Ryan",
@@ -64,12 +64,16 @@
64
64
  "dependencies": {
65
65
  "nunjucks": "^3.2.4",
66
66
  "yaml": "^2.7.1",
67
- "@davidorex/pi-project": "^0.14.6",
68
- "@mariozechner/pi-ai": "^0.70.2",
69
- "@mariozechner/pi-coding-agent": "^0.70.2",
70
- "@mariozechner/pi-tui": "^0.70.2"
67
+ "@davidorex/pi-jit-agents": "^0.26.0",
68
+ "@davidorex/pi-context": "^0.26.0",
69
+ "@earendil-works/pi-ai": "^0.75.4",
70
+ "@earendil-works/pi-coding-agent": "^0.75.4",
71
+ "@earendil-works/pi-tui": "^0.75.4"
71
72
  },
72
73
  "devDependencies": {
73
74
  "@types/nunjucks": "^3.2.6"
75
+ },
76
+ "engines": {
77
+ "node": ">=22.19.0"
74
78
  }
75
79
  }
@@ -28,7 +28,9 @@ Workflows are discovered from three locations (first match wins):
28
28
  | loop | `loop: { maxAttempts, steps }` | Repeat sub-steps until gate breaks or max reached |
29
29
  | parallel | `parallel: { a: ..., b: ... }` | Run named sub-steps concurrently |
30
30
  | pause | `pause: true` or `pause: "message"` | Pause execution, resumable later |
31
- | forEach | `forEach: "${{ expr }}"` | Iterate over an array, executing the step per element |
31
+ | block | `block: { op: read\|write\|append\|update\|remove\|… }` | Validated in-process `.project` block I/O via the block API no LLM, no subprocess |
32
+
33
+ `forEach: "${{ expr }}"` (iterate the step per array element) and `as:` are step MODIFIERS, not step types — they combine with any type above.
32
34
  </step_types>
33
35
 
34
36
  <expression_syntax>
@@ -8,10 +8,10 @@ description: >
8
8
  ---
9
9
 
10
10
  <tools_reference>
11
- <tool name="workflow">
12
- Run a named workflow with typed input. Discovers workflows from .workflows/ and ~/.pi/agent/workflows/.
11
+ <tool name="workflow-execute">
12
+ Execute a named workflow with typed input. Discovers workflows from .workflows/ and ~/.pi/agent/workflows/. Auto-resumes the most recent compatible incomplete run unless fresh='true'. Use workflow-resume for explicit-only resume by runId.
13
13
 
14
- *Run a multi-step workflow with typed data flow between agents*
14
+ *Execute a multi-step workflow with typed data flow (auto-resumes compatible incomplete runs)*
15
15
 
16
16
  | Parameter | Type | Required | Description |
17
17
  |-----------|------|----------|-------------|
@@ -20,6 +20,18 @@ Run a named workflow with typed input. Discovers workflows from .workflows/ and
20
20
  | `fresh` | string | no | Set to 'true' to start a fresh run, ignoring any incomplete prior runs |
21
21
  </tool>
22
22
 
23
+ <tool name="workflow-resume">
24
+ Explicitly resume an incomplete workflow run by name + runId. Rejects when no incomplete run exists for the workflow OR when runId does not match the most recent incomplete run. Use workflow-execute for default auto-resume; this surface is for explicit-only scenarios where the caller wants to fail loudly if the run is gone or has been superseded.
25
+
26
+ *Explicitly resume an incomplete workflow run by name + runId (rejects on no-match)*
27
+
28
+ | Parameter | Type | Required | Description |
29
+ |-----------|------|----------|-------------|
30
+ | `workflow` | string | yes | Workflow name |
31
+ | `runId` | string | yes | Incomplete run ID — required, no auto-detect |
32
+ | `input` | unknown | no | Optional input override; defaults to the original run's input |
33
+ </tool>
34
+
23
35
  <tool name="workflow-list">
24
36
  List available workflows with names, descriptions, and sources.
25
37
 
@@ -61,6 +73,29 @@ Initialize .workflows/ directory for workflow run state.
61
73
 
62
74
  </tool>
63
75
 
76
+ <tool name="render-item-by-id">
77
+ Render a project block item by ID through its registered per-item macro. Resolves the item via the cross-block resolver, looks up the macro via the renderer registry, and renders with the supplied depth and depth-aware cross-reference recursion. Returns `[not-found: <id>]` on resolver miss and `[unrendered: <kind>/<id>]` on registry miss — same fallback markers `render_recursive` emits inside agent prompts.
78
+
79
+ *Render a project block item as prompt text via its per-item macro (with depth-controlled cross-ref recursion)*
80
+
81
+ | Parameter | Type | Required | Description |
82
+ |-----------|------|----------|-------------|
83
+ | `id` | string | yes | Kind-prefixed ID, e.g., DEC-0001 / FEAT-001 |
84
+ | `depth` | number | no | 0 = bare-ID refs (default), 1 = inline direct cross-references, 2+ = recurse further |
85
+ </tool>
86
+
87
+ <tool name="enforce-budget">
88
+ Check rendered text against an `x-prompt-budget` annotation on a schema field. Returns `{ output, warning }` — `output` is the original text passed through when under budget, or tail-truncated text with `[…truncated to budget]` marker when over; `warning` is null when no truncation occurred or a structured BudgetWarning record otherwise. Annotation absence is pass-through (no error). Mirrors the behaviour of the `enforceBudget` Nunjucks global registered by compileAgent.
89
+
90
+ *Validate rendered text against a schema field's prompt budget — returns truncated output and warning*
91
+
92
+ | Parameter | Type | Required | Description |
93
+ |-----------|------|----------|-------------|
94
+ | `rendered` | string | yes | Rendered text to check against the field's prompt budget |
95
+ | `blockName` | string | yes | Block schema name (without .schema.json suffix), e.g. 'decisions' or 'features' |
96
+ | `fieldPath` | string | yes | JSON-pointer-style path to the field, e.g. '/properties/decisions/items/properties/context' |
97
+ </tool>
98
+
64
99
  </tools_reference>
65
100
 
66
101
  <commands_reference>
@@ -78,7 +113,7 @@ Subcommands: `init`, `list`, `run`, `resume`, `validate`, `status`, `help`
78
113
  </keyboard_shortcuts>
79
114
 
80
115
  <bundled_resources>
81
- 26 agents, 15 schemas, 15 workflows, 33 templates bundled.
116
+ 26 agents, 15 schemas, 15 workflows, 48 templates bundled.
82
117
  See references/bundled-resources.md for full inventory.
83
118
  </bundled_resources>
84
119
 
@@ -127,7 +162,7 @@ See references/bundled-resources.md for full inventory.
127
162
  </agent_input>
128
163
 
129
164
  <agent_input name="handoff-writer">
130
- - `project_state` [required] — Current project state (from projectState() or /project status — includes phases, blocks, gaps, decisions, recent commits)
165
+ - `project_state` [required] — Current project state (from contextState() or /context status — includes phases, blocks, gaps, decisions, recent commits)
131
166
  - `path` string [required] — Root path of the project
132
167
  </agent_input>
133
168
 
@@ -239,7 +274,9 @@ Workflows are discovered from three locations (first match wins):
239
274
  | loop | `loop: { maxAttempts, steps }` | Repeat sub-steps until gate breaks or max reached |
240
275
  | parallel | `parallel: { a: ..., b: ... }` | Run named sub-steps concurrently |
241
276
  | pause | `pause: true` or `pause: "message"` | Pause execution, resumable later |
242
- | forEach | `forEach: "${{ expr }}"` | Iterate over an array, executing the step per element |
277
+ | block | `block: { op: read\|write\|append\|update\|remove\|… }` | Validated in-process `.project` block I/O via the block API no LLM, no subprocess |
278
+
279
+ `forEach: "${{ expr }}"` (iterate the step per array element) and `as:` are step MODIFIERS, not step types — they combine with any type above.
243
280
  </step_types>
244
281
 
245
282
  <expression_syntax>
@@ -65,7 +65,7 @@
65
65
  - `workflows/self-implement.workflow.yaml`
66
66
  - `workflows/typed-analysis.workflow.yaml`
67
67
 
68
- ## templates/ (33 files)
68
+ ## templates/ (48 files)
69
69
 
70
70
  - `templates/analyzers/base-analyzer.md`
71
71
  - `templates/analyzers/patterns-task.md`
@@ -86,6 +86,20 @@
86
86
  - `templates/gap-resolution-assessor/task.md`
87
87
  - `templates/handoff-writer/task.md`
88
88
  - `templates/investigator/task.md`
89
+ - `templates/items/architecture.md`
90
+ - `templates/items/conformance.md`
91
+ - `templates/items/conventions.md`
92
+ - `templates/items/decisions.md`
93
+ - `templates/items/domain.md`
94
+ - `templates/items/features.md`
95
+ - `templates/items/framework-gaps.md`
96
+ - `templates/items/issues.md`
97
+ - `templates/items/layer-plans.md`
98
+ - `templates/items/project.md`
99
+ - `templates/items/requirements.md`
100
+ - `templates/items/research.md`
101
+ - `templates/items/spec-reviews.md`
102
+ - `templates/items/tasks.md`
89
103
  - `templates/phase-author/task.md`
90
104
  - `templates/plan-creator/task.md`
91
105
  - `templates/plan-decomposer/task.md`
@@ -94,6 +108,7 @@
94
108
  - `templates/requirements-gatherer/task.md`
95
109
  - `templates/researcher/task.md`
96
110
  - `templates/shared/macros.md`
111
+ - `templates/shared/render-helpers.md`
97
112
  - `templates/spec-implementer/task.md`
98
113
  - `templates/synthesizer/system.md`
99
114
  - `templates/synthesizer/task.md`
@@ -0,0 +1,33 @@
1
+ {#-
2
+ Per-item macro for the `architecture` block (Plan 8 / per-item-macros wave 4).
3
+
4
+ Singleton kind: architecture holds one record per repository describing
5
+ modules, patterns, boundaries, and (optionally) compilation_pipeline /
6
+ execution_model / dispatch_design. The "per-item" rendering operates on
7
+ the whole block payload as a single record; the whole-block delegator in
8
+ shared/macros.md passes its data argument straight through.
9
+
10
+ No cross-block references — depth parameter accepted for shape-uniformity
11
+ with the renderer-registry call convention; no helpers from
12
+ shared/render-helpers.md are needed.
13
+ -#}
14
+
15
+ {% macro render_architecture_item(a, depth=0) %}
16
+ {% if a %}
17
+ ## Architecture
18
+ {% if a.overview %}{{ a.overview }}
19
+ {% endif %}
20
+ {% if a.modules %}
21
+ ### Modules
22
+ {% for m in a.modules %}- **{{ m.name }}** (`{{ m.file }}`{% if m.lines %}, {{ m.lines }} lines{% endif %}): {{ enforceBudget(m.responsibility, "architecture", "modules.items.responsibility") }}{% if m.dependencies %} — deps: {{ m.dependencies | join(", ") }}{% endif %}
23
+ {% endfor %}{% endif %}
24
+ {% if a.patterns %}
25
+ ### Patterns
26
+ {% for p in a.patterns %}- **{{ p.name }}**: {{ enforceBudget(p.description, "architecture", "patterns.items.description") }}{% if p.used_in %} — used in: {{ p.used_in | join(", ") }}{% endif %}
27
+ {% endfor %}{% endif %}
28
+ {% if a.boundaries %}
29
+ ### Boundaries
30
+ {% for b in a.boundaries %}- {{ b }}
31
+ {% endfor %}{% endif %}
32
+ {% endif %}
33
+ {% endmacro %}
@@ -0,0 +1,26 @@
1
+ {#-
2
+ Per-item macro for the `conformance-reference` block (Plan 8 / per-item-macros wave 4).
3
+
4
+ Block schema: .project/schemas/conformance-reference.schema.json. The
5
+ block holds a name, scope, and principles[]. Each principle has nested
6
+ rules[]. The "per-item" granularity here is one principle (with its
7
+ rules) — the natural unit for prompt injection per the substrate spec.
8
+
9
+ No cross-block references — references are to source material (sources[]
10
+ at the block level), not to other block items. Depth parameter accepted
11
+ for renderer-registry shape-uniformity.
12
+
13
+ Companion whole-block macro:
14
+ render_conformance(data) in shared/macros.md emits the block-level
15
+ name + scope header, then iterates principles through this macro.
16
+ -#}
17
+
18
+ {% macro render_conformance_principle(p, depth=0) %}
19
+ {% if p %}
20
+ ### {{ p.id }}: {{ p.name }}
21
+ {% if p.description %}{{ enforceBudget(p.description, "conformance-reference", "principles.items.description") }}{% endif %}
22
+ {% for r in p.rules %}- **{{ r.id }}**: {{ enforceBudget(r.rule, "conformance-reference", "principles.items.rules.items.rule") }}{% if r.severity %} [{{ r.severity }}]{% endif %}{% if r.check_method %} — check: {{ r.check_method }}{% endif %}
23
+ {% if r.anti_patterns %} Anti-patterns: {{ r.anti_patterns | join("; ") }}
24
+ {% endif %}{% endfor %}
25
+ {% endif %}
26
+ {% endmacro %}
@@ -0,0 +1,19 @@
1
+ {#-
2
+ Per-item macro for the `conventions` block (Plan 8 / per-item-macros wave 4).
3
+
4
+ Block schema: .project/schemas/conventions.schema.json. Each item is one
5
+ rule object inside data.rules[] (id, description, enforcement, severity).
6
+
7
+ No cross-block references — conventions are leaf rules. Depth parameter
8
+ accepted for shape-uniformity; reserved for future schema additions.
9
+
10
+ Companion whole-block macro:
11
+ render_conventions(data) in shared/macros.md emits the test_conventions
12
+ and lint_command/lint_scope header fields once, then iterates rules
13
+ through this macro.
14
+ -#}
15
+
16
+ {% macro render_convention(rule, depth=0) %}
17
+ {% if rule %}- **{{ rule.id }}** [{{ rule.severity }}, {{ rule.enforcement }}]: {{ enforceBudget(rule.description, "conventions", "rules.items.description") }}
18
+ {% endif %}
19
+ {% endmacro %}
@@ -0,0 +1,47 @@
1
+ {#-
2
+ Per-item macro for the `decisions` block.
3
+
4
+ Block schema: .project/schemas/decisions.schema.json (Plan 6 / per-item-macros wave 3).
5
+
6
+ Macro signature:
7
+ render_decision(dec, depth=0)
8
+ dec — single decision object matching .decisions[*] in the schema
9
+ depth — integer recursion budget for cross-block reference inlining
10
+
11
+ Cross-block reference recursion (supersedes, superseded_by, related_findings,
12
+ related_features, related_gaps) is delegated to shared/render-helpers.md —
13
+ see that file for the depth contract, ambient globals, and empty-array
14
+ convention shared across all per-item macros.
15
+
16
+ References array (`references[]`):
17
+ Labelled pointers (label + optional path/lines/commit). NOT recursable —
18
+ references point to code paths, research docs, commit SHAs, external specs,
19
+ none of which are project blocks. Rendered inline as one bullet per ref.
20
+ -#}
21
+ {% from "shared/render-helpers.md" import render_id_list_block, render_id_single_block, render_optional_scalar %}
22
+
23
+ {% macro render_decision(dec, depth=0) %}
24
+ ID: {{ dec.id }}
25
+ Title: {{ dec.title }}
26
+ Status: {{ dec.status }}
27
+ Created by: {{ dec.created_by }}
28
+ Created at: {{ dec.created_at }}
29
+ {{ render_optional_scalar("Enacted by", dec.enacted_by) }}{{ render_optional_scalar("Enacted at", dec.enacted_at) }}
30
+ Context:
31
+ {{ enforceBudget(dec.context, "decisions", "decisions.items.context") }}
32
+
33
+ Decision:
34
+ {{ enforceBudget(dec.decision, "decisions", "decisions.items.decision") }}
35
+
36
+ Consequences:
37
+ {% if dec.consequences and dec.consequences | length > 0 %}{% for c in dec.consequences %} - {{ enforceBudget(c, "decisions", "decisions.items.consequences.items") }}
38
+ {% endfor %}{% else %} (none)
39
+ {% endif %}{% if dec.options_considered is defined %}Options considered:
40
+ {% if dec.options_considered | length > 0 %}{% for opt in dec.options_considered %} - {{ opt.label }}: {{ opt.description }}
41
+ {% if opt.tradeoffs %} Tradeoffs: {{ opt.tradeoffs }}
42
+ {% endif %}{% if opt.rejected_reason %} Rejected reason: {{ opt.rejected_reason }}
43
+ {% endif %}{% endfor %}{% else %} (none)
44
+ {% endif %}{% endif %}{{ render_id_list_block("Supersedes", dec.supersedes, depth) }}{{ render_id_single_block("Superseded by", dec.superseded_by, depth) }}{{ render_id_list_block("Related findings", dec.related_findings, depth) }}{{ render_id_list_block("Related features", dec.related_features, depth) }}{{ render_id_list_block("Related gaps", dec.related_gaps, depth) }}{% if dec.references is defined %}References:
45
+ {% if dec.references | length > 0 %}{% for ref in dec.references %} - {{ ref.label }}{% if ref.path %} — path: {{ ref.path }}{% if ref.lines %}:{{ ref.lines }}{% endif %}{% endif %}{% if ref.commit %} — commit: {{ ref.commit }}{% endif %}
46
+ {% endfor %}{% else %} (none)
47
+ {% endif %}{% endif %}{% endmacro %}
@@ -0,0 +1,21 @@
1
+ {#-
2
+ Per-item macro for the `domain` block (Plan 8 / per-item-macros wave 4).
3
+
4
+ Block schema: .project/schemas/domain.schema.json. Each item is one
5
+ knowledge entry inside data.entries[]. Required: id, title, content,
6
+ category. Optional: source, confidence, related_requirements (array of
7
+ REQ- IDs), tags.
8
+
9
+ Cross-block reference recursion (related_requirements) is delegated to
10
+ shared/render-helpers.md — see that file for the depth contract, ambient
11
+ globals, and empty-array convention.
12
+ -#}
13
+ {% from "shared/render-helpers.md" import render_id_list_inline %}
14
+
15
+ {% macro render_domain_entry(e, depth=0) %}
16
+ {% if e %}- **{{ e.id }}** [{{ e.category }}]: {{ e.title }}
17
+ {{ enforceBudget(e.content, "domain", "entries.items.content") }}{% if e.tags %} — tags: {{ e.tags | join(", ") }}{% endif %}
18
+ {% if e.source %} Source: {{ e.source }}
19
+ {% endif %}{% if e.confidence %} Confidence: {{ e.confidence }}
20
+ {% endif %}{{ render_id_list_inline("Related requirements", e.related_requirements, depth) }}{% endif %}
21
+ {% endmacro %}
@@ -0,0 +1,63 @@
1
+ {#-
2
+ Per-item macro for the `features` block.
3
+
4
+ Block schema: .project/schemas/features.schema.json (Plan 7 / per-item-macros wave 4).
5
+
6
+ Cross-block reference recursion (dependencies, gates, blocks_resolved,
7
+ decisions) is delegated to shared/render-helpers.md — see that file for
8
+ the depth contract, ambient globals, and empty-array convention.
9
+
10
+ Nested embedded structures:
11
+ Each feature carries nested `stories[]` (with embedded `tasks[]`) and
12
+ `findings[]` (scoped-finding shape). These are NOT separate block kinds
13
+ — they are sub-shapes on the feature schema and have no per-item macro
14
+ of their own. They are rendered inline as sub-lists under the feature
15
+ body. Story-level `depends_on`/`gates` are rendered as bare-ID lists
16
+ (story IDs are scoped to the feature, not in the global index) and stay
17
+ inline because they use a deeper indent (4 spaces) than the helper
18
+ convention assumes.
19
+ -#}
20
+ {% from "shared/render-helpers.md" import render_id_list_block, render_optional_scalar %}
21
+
22
+ {% macro render_feature(feat, depth=0) %}
23
+ ID: {{ feat.id }}
24
+ Title: {{ feat.title }}
25
+ Status: {{ feat.status }}
26
+ Layer: {{ feat.layer }}
27
+ Created by: {{ feat.created_by }}
28
+ Created at: {{ feat.created_at }}
29
+ {{ render_optional_scalar("Modified by", feat.modified_by) }}{{ render_optional_scalar("Modified at", feat.modified_at) }}{{ render_optional_scalar("Approved by", feat.approved_by) }}{{ render_optional_scalar("Approved at", feat.approved_at) }}
30
+ Description:
31
+ {{ enforceBudget(feat.description, "features", "features.items.description") }}
32
+
33
+ {% if feat.motivation %}Motivation:
34
+ {{ enforceBudget(feat.motivation, "features", "features.items.motivation") }}
35
+
36
+ {% endif %}Acceptance criteria:
37
+ {% if feat.acceptance_criteria and feat.acceptance_criteria | length > 0 %}{% for ac in feat.acceptance_criteria %} - {{ ac }}
38
+ {% endfor %}{% else %} (none)
39
+ {% endif %}{{ render_id_list_block("Dependencies", feat.dependencies, depth) }}{{ render_id_list_block("Gates", feat.gates, depth) }}{{ render_id_list_block("Blocks resolved", feat.blocks_resolved, depth) }}{{ render_id_list_block("Decisions", feat.decisions, depth) }}Stories:
40
+ {% if feat.stories and feat.stories | length > 0 %}{% for s in feat.stories %} - {{ s.id }} [{{ s.status }}] {{ s.title }}
41
+ {% if s.description %} Description: {{ enforceBudget(s.description, "features", "features.items.stories.items.description") }}
42
+ {% endif %}{% if s.acceptance_criteria is defined %} Acceptance criteria: {% if s.acceptance_criteria | length > 0 %}{% for ac in s.acceptance_criteria %}{{ ac }}{% if not loop.last %}; {% endif %}{% endfor %}{% else %}(none){% endif %}
43
+ {% endif %}{% if s.depends_on is defined %} Depends on: {% if s.depends_on | length > 0 %}{% for dep in s.depends_on %}{{ dep }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
44
+ {% endif %}{% if s.gates is defined %} Gates: {% if s.gates | length > 0 %}{% for g in s.gates %}{{ g }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
45
+ {% endif %} Tasks:
46
+ {% if s.tasks and s.tasks | length > 0 %}{% for t in s.tasks %} - {{ t.id }} [{{ t.status }}] {{ t.title }}
47
+ {% if t.description %} Description: {{ t.description }}
48
+ {% endif %}{% if t.files is defined %} Files: {% if t.files | length > 0 %}{% for f in t.files %}{{ f }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
49
+ {% endif %}{% if t.acceptance %} Acceptance: {{ t.acceptance }}
50
+ {% endif %}{% if t.depends_on is defined %} Depends on: {% if t.depends_on | length > 0 %}{% for dep in t.depends_on %}{{ dep }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
51
+ {% endif %}{% if t.assigned_to %} Assigned to: {{ t.assigned_to }}
52
+ {% endif %}{% endfor %}{% else %} (none)
53
+ {% endif %}{% endfor %}{% else %} (none)
54
+ {% endif %}Findings:
55
+ {% if feat.findings and feat.findings | length > 0 %}{% for f in feat.findings %} - {{ f.id }} [{{ f.severity }}/{{ f.state }}] reporter={{ f.reporter }} at={{ f.created_at }}
56
+ Description: {{ enforceBudget(f.description, "features", "features.items.findings.items.description") }}
57
+ {% if f.evidence %} Evidence: {{ f.evidence }}
58
+ {% endif %}{% if f.category %} Category: {{ f.category }}
59
+ {% endif %}{% if f.resolution %} Resolution: {{ f.resolution }}
60
+ {% endif %}{% if f.resolved_by %} Resolved by: {{ f.resolved_by }}
61
+ {% endif %}{% if f.resolved_at %} Resolved at: {{ f.resolved_at }}
62
+ {% endif %}{% endfor %}{% else %} (none)
63
+ {% endif %}{% endmacro %}
@@ -0,0 +1,43 @@
1
+ {#-
2
+ Per-item macro for the `framework-gaps` block.
3
+
4
+ Block schema: .project/schemas/framework-gaps.schema.json (Plan 7 / per-item-macros wave 4).
5
+
6
+ Cross-block reference recursion (related_features, related_decisions,
7
+ related_issues) is delegated to shared/render-helpers.md — see that file
8
+ for the depth contract, ambient globals, and empty-array convention.
9
+
10
+ Naming note:
11
+ The canonical macro name is `render_framework_gap`. The legacy
12
+ `render_gap` macro lives in templates/shared/macros.md and retires
13
+ under Plan 8 (parallel). Plan 7 deliberately does NOT author
14
+ `render_gap` here.
15
+
16
+ Evidence array:
17
+ Each gap carries an embedded `evidence[]` of {file, lines, reference}
18
+ triples. These are file pointers, NOT block IDs — rendered inline as
19
+ sub-list, never recursed.
20
+ -#}
21
+ {% from "shared/render-helpers.md" import render_id_list_block, render_optional_scalar %}
22
+
23
+ {% macro render_framework_gap(gap, depth=0) %}
24
+ ID: {{ gap.id }}
25
+ Title: {{ gap.title }}
26
+ Status: {{ gap.status }}
27
+ Package: {{ gap.package }}
28
+ Created by: {{ gap.created_by }}
29
+ Created at: {{ gap.created_at }}
30
+ {{ render_optional_scalar("Priority", gap.priority) }}{{ render_optional_scalar("Layer", gap.layer) }}{{ render_optional_scalar("Canonical vocabulary", gap.canonical_vocabulary) }}{{ render_optional_scalar("Closed by", gap.closed_by) }}{{ render_optional_scalar("Closed at", gap.closed_at) }}
31
+ Description:
32
+ {{ enforceBudget(gap.description, "framework-gaps", "gaps.items.description") }}
33
+
34
+ Impact:
35
+ {{ enforceBudget(gap.impact, "framework-gaps", "gaps.items.impact") }}
36
+
37
+ Proposed resolution:
38
+ {{ enforceBudget(gap.proposed_resolution, "framework-gaps", "gaps.items.proposed_resolution") }}
39
+
40
+ Evidence:
41
+ {% if gap.evidence and gap.evidence | length > 0 %}{% for e in gap.evidence %} - {{ e.file }}{% if e.lines %}:{{ e.lines }}{% endif %} — {{ enforceBudget(e.reference, "framework-gaps", "gaps.items.evidence.items.reference") }}
42
+ {% endfor %}{% else %} (none)
43
+ {% endif %}{{ render_id_list_block("Related features", gap.related_features, depth) }}{{ render_id_list_block("Related decisions", gap.related_decisions, depth) }}{{ render_id_list_block("Related issues", gap.related_issues, depth) }}{% endmacro %}
@@ -0,0 +1,21 @@
1
+ {#-
2
+ Per-item macro for the `issues` block (Plan 8 / per-item-macros wave 4).
3
+
4
+ Block schema: .project/schemas/issues.schema.json. Each item is one issue
5
+ inside data.issues[]. Required: id (^issue-\d{3}$), title, body, location,
6
+ status, category, priority, package. Optional: source, resolved_by.
7
+
8
+ No cross-block references in current schema — resolved_by is a free-form
9
+ commit reference, not a project-block ID. Depth parameter accepted for
10
+ renderer-registry shape-uniformity; reserved for future schema additions
11
+ (e.g., resolved_by_pr or related_decisions[]).
12
+ -#}
13
+
14
+ {% macro render_issue(i, depth=0) %}
15
+ {% if i %}- **{{ i.id }}** [{{ i.priority }}, {{ i.status }}]: {{ i.title }}
16
+ {{ enforceBudget(i.body, "issues", "issues.items.body") }}{% if i.location %} — {{ i.location }}{% endif %}{% if i.package %} ({{ i.package }}){% endif %}
17
+ {% if i.category %} Category: {{ i.category }}
18
+ {% endif %}{% if i.source %} Source: {{ i.source }}
19
+ {% endif %}{% if i.resolved_by %} Resolved by: {{ i.resolved_by }}
20
+ {% endif %}{% endif %}
21
+ {% endmacro %}
@@ -0,0 +1,50 @@
1
+ {#-
2
+ Per-item macro for the `layer-plans` block.
3
+
4
+ Block schema: .project/schemas/layer-plans.schema.json (Plan 7 / per-item-macros wave 4).
5
+
6
+ Cross-block reference recursion (related_gaps, related_features,
7
+ related_decisions) is delegated to shared/render-helpers.md — see that
8
+ file for the depth contract, ambient globals, and empty-array convention.
9
+
10
+ Nested embedded structures:
11
+ Each plan carries `layers[]` (each with current_blocks/target_blocks
12
+ sub-arrays) and `migration_phases[]`. These are NOT separate block kinds
13
+ — they are sub-shapes on the plan schema and rendered inline. Phase
14
+ `depends_on` references are scoped to phase IDs within the same plan and
15
+ rendered as bare-ID lists (no recursion).
16
+ -#}
17
+ {% from "shared/render-helpers.md" import render_id_list_block %}
18
+
19
+ {% macro render_layer_plan(plan, depth=0) %}
20
+ ID: {{ plan.id }}
21
+ Title: {{ plan.title }}
22
+ Status: {{ plan.status }}
23
+ Model: {{ plan.model }}
24
+ Created by: {{ plan.created_by }}
25
+ Created at: {{ plan.created_at }}
26
+ {% if plan.description %}
27
+ Description:
28
+ {{ enforceBudget(plan.description, "layer-plans", "plans.items.description") }}
29
+
30
+ {% endif %}Layers:
31
+ {% if plan.layers and plan.layers | length > 0 %}{% for l in plan.layers %} - {{ l.id }}: {{ l.name }}
32
+ Purpose: {{ enforceBudget(l.purpose, "layer-plans", "plans.items.layers.items.purpose") }}
33
+ {% if l.canonical_vocabulary %} Canonical vocabulary: {{ l.canonical_vocabulary }}
34
+ {% endif %}{% if l.lifetime %} Lifetime: {{ l.lifetime }}
35
+ {% endif %}{% if l.ownership_principle %} Ownership principle: {{ enforceBudget(l.ownership_principle, "layer-plans", "plans.items.layers.items.ownership_principle") }}
36
+ {% endif %} Current blocks: {% if l.current_blocks | length > 0 %}{% for cb in l.current_blocks %}{{ cb }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
37
+ Target blocks:
38
+ {% if l.target_blocks and l.target_blocks | length > 0 %}{% for tb in l.target_blocks %} - {{ tb.name }} (shape: {{ tb.shape }}){% if tb.notes %} — {{ tb.notes }}{% endif %}
39
+ {% endfor %}{% else %} (none)
40
+ {% endif %}{% endfor %}{% else %} (none)
41
+ {% endif %}Migration phases:
42
+ {% if plan.migration_phases and plan.migration_phases | length > 0 %}{% for p in plan.migration_phases %} - {{ p.id }}: {{ p.name }}{% if p.status %} [{{ p.status }}]{% endif %}
43
+ Description: {{ enforceBudget(p.description, "layer-plans", "plans.items.migration_phases.items.description") }}
44
+ Depends on: {% if p.depends_on | length > 0 %}{% for dep in p.depends_on %}{{ dep }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
45
+ Exit criteria:
46
+ {% if p.exit_criteria | length > 0 %}{% for ec in p.exit_criteria %} - {{ enforceBudget(ec, "layer-plans", "plans.items.migration_phases.items.exit_criteria.items") }}
47
+ {% endfor %}{% else %} (none)
48
+ {% endif %}{% if p.produces is defined %} Produces: {% if p.produces | length > 0 %}{% for pr in p.produces %}{{ pr }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}(none){% endif %}
49
+ {% endif %}{% endfor %}{% else %} (none)
50
+ {% endif %}{{ render_id_list_block("Related gaps", plan.related_gaps, depth) }}{{ render_id_list_block("Related features", plan.related_features, depth) }}{{ render_id_list_block("Related decisions", plan.related_decisions, depth) }}{% endmacro %}