@zihanw/pi-forge 0.5.2 → 0.5.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +22 -21
  3. package/README.zh-CN.md +22 -21
  4. package/dist/agent-profile.js +5 -5
  5. package/dist/agent-profile.js.map +1 -1
  6. package/dist/codecs/agent-profile.js +4 -4
  7. package/dist/codecs/agent-profile.js.map +1 -1
  8. package/dist/codecs/prompt-stack.d.ts +2 -2
  9. package/dist/codecs/prompt-stack.js +20 -20
  10. package/dist/codecs/prompt-stack.js.map +1 -1
  11. package/dist/compile-cycle.d.ts +6 -1
  12. package/dist/compile-cycle.d.ts.map +1 -1
  13. package/dist/compile-cycle.js +2 -0
  14. package/dist/compile-cycle.js.map +1 -1
  15. package/dist/compiler.d.ts +7 -1
  16. package/dist/compiler.d.ts.map +1 -1
  17. package/dist/compiler.js +70 -2
  18. package/dist/compiler.js.map +1 -1
  19. package/dist/context-diff-history.d.ts +2 -0
  20. package/dist/context-diff-history.d.ts.map +1 -1
  21. package/dist/context-diff-history.js +9 -0
  22. package/dist/context-diff-history.js.map +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/lifecycle.d.ts.map +1 -1
  27. package/dist/lifecycle.js +12 -3
  28. package/dist/lifecycle.js.map +1 -1
  29. package/dist/preset-command.d.ts +2 -0
  30. package/dist/preset-command.d.ts.map +1 -1
  31. package/dist/preset-command.js +22 -14
  32. package/dist/preset-command.js.map +1 -1
  33. package/dist/preview.d.ts.map +1 -1
  34. package/dist/preview.js +3 -3
  35. package/dist/preview.js.map +1 -1
  36. package/dist/profile-command.d.ts +4 -1
  37. package/dist/profile-command.d.ts.map +1 -1
  38. package/dist/profile-command.js +15 -11
  39. package/dist/profile-command.js.map +1 -1
  40. package/dist/profile-service.js +4 -4
  41. package/dist/profile-service.js.map +1 -1
  42. package/dist/prompt-cache-warning.d.ts +23 -0
  43. package/dist/prompt-cache-warning.d.ts.map +1 -0
  44. package/dist/prompt-cache-warning.js +74 -0
  45. package/dist/prompt-cache-warning.js.map +1 -0
  46. package/dist/repositories/prompt-stack.js +8 -8
  47. package/dist/repositories/prompt-stack.js.map +1 -1
  48. package/dist/runtime/profile-runtime.js +3 -3
  49. package/dist/runtime/profile-runtime.js.map +1 -1
  50. package/dist/runtime/prompt-stack-runtime.js +1 -1
  51. package/dist/runtime/prompt-stack-runtime.js.map +1 -1
  52. package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
  53. package/dist/runtime/tool-policy-runtime.js +16 -4
  54. package/dist/runtime/tool-policy-runtime.js.map +1 -1
  55. package/dist/runtime/web-editor-runtime.js +7 -7
  56. package/dist/runtime/web-editor-runtime.js.map +1 -1
  57. package/dist/subagent-host.js +4 -4
  58. package/dist/subagent-host.js.map +1 -1
  59. package/dist/web-editor/client-script.generated.d.ts.map +1 -1
  60. package/dist/web-editor/client-script.generated.js +1 -1
  61. package/dist/web-editor/client-script.generated.js.map +1 -1
  62. package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
  63. package/dist/web-editor/client-styles.generated.js +1 -1
  64. package/dist/web-editor/client-styles.generated.js.map +1 -1
  65. package/dist/web-editor/server.js +4 -4
  66. package/dist/web-editor/server.js.map +1 -1
  67. package/dist/web-editor/styles.d.ts.map +1 -1
  68. package/dist/web-editor/styles.js +105 -2
  69. package/dist/web-editor/styles.js.map +1 -1
  70. package/dist/web-editor/types.d.ts +11 -1
  71. package/dist/web-editor/types.d.ts.map +1 -1
  72. package/dist/web-host.d.ts.map +1 -1
  73. package/dist/web-host.js +30 -14
  74. package/dist/web-host.js.map +1 -1
  75. package/docs/README.md +5 -5
  76. package/docs/concepts/prompt-stacks.md +17 -17
  77. package/docs/design/pi-forge-system-update-design-notes.md +229 -0
  78. package/docs/development/roadmap.md +4 -2
  79. package/docs/guides/use-cases.md +1 -1
  80. package/docs/guides/web-editor.md +10 -9
  81. package/docs/zh-CN/README.md +4 -4
  82. package/docs/zh-CN/concepts/prompt-stacks.md +11 -11
  83. package/docs/zh-CN/guides/web-editor.md +8 -7
  84. package/examples/custom-system-status-extension/README.md +5 -6
  85. package/examples/custom-system-status-extension/index.ts +11 -6
  86. package/examples/fake-assistant-direct-output-prompt-stack.json +48 -0
  87. package/examples/minimal-prompt-stack.json +7 -3
  88. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"web-host.js","sourceRoot":"","sources":["../src/web-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrI,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,oCAAoC,GAKpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACN,yBAAyB,EACzB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,GAGjB,MAAM,sBAAsB,CAAC;AA4C9B,MAAM,UAAU,mBAAmB,CAAC,GAAqB,EAAE,OAAuB;IACjF,OAAO;QACN,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAChF,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;QAC7D,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1E,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;QACnD,cAAc,EAAE,KAAK,IAAI,EAAE;YAC1B,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;QACzD,CAAC;QACD,eAAe,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC;QAC5G,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QAClF,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACpF,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;QACvE,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;QACtE,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACjD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjH,CAAC;QACD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;QAC9E,SAAS,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC;QAChE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;QACtD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC;QACpD,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC;YACrF,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9H,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACrG,CAAC;QACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE;QACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtD,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE;QAC1C,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE;QAC9C,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yBAAyB,QAAQ,EAAE,EAAE,CAAC;YAChH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACxH,CAAC;QACD,aAAa,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACxH,CAAC;QACD,YAAY,EAAE,KAAK,IAAI,EAAE;YACxB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACxH,CAAC;KACD,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,0BAA0B,CAAC,OAAuB,EAAE,QAAgB;IAC5E,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;IACjD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAqB,EAAE,OAAuB;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACpD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,OAAO;QACN,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE;QAC/B,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI;gBAChG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;gBACvD,CAAC,CAAC,EAAE,CAAC;YACN,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;YACnF,OAAO;gBACN,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO;gBACP,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;gBACvF,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;gBAC3F,WAAW,EAAE,WAAW,EAAE,UAAU,KAAK,MAAM,CAAC,QAAQ;aACxD,CAAC;QACH,CAAC,CAAC;QACF,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC;QACpE,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SAClE,CAAC,CAAC;QACH,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClD,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YACvB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,KAAK;SACnB,CAAC,CAAC;KACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,GAAqB,EACrB,OAAuB,EACvB,OAAqB,EACrB,UAAmB,EACnB,eAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,eAAe,GAAG,gBAAgB,EAAE,EAAE;QAC3C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpJ,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,eAAe,IAAI,SAAS,CAAC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzI,MAAM,WAAW,GAAG;QACnB,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAChC,GAAG,oCAAoC,CAAC,OAAO,EAAE,KAAK,CAAC;KACvD,CAAC;IACF,MAAM,aAAa,GAAG,QAAQ;QAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACrF,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAEvD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACtE,WAAW,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,yBAAyB,OAAO,CAAC,EAAE,kCAAkC;SAC9E,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,gCAAgC,QAAQ,EAAE;SACnD,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE,CAAC;QAClG,WAAW,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,oEAAoE;SAC7E,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACnH,MAAM,oBAAoB,GAAG,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI;QAChF,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;QACvD,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,wBAAwB,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC9G,OAAO;QACN,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM;QACvF,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM;KAC3F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC/B,GAAqB,EACrB,OAAuB,EACvB,OAAqB,EACrB,QAA8B,SAAS;IAEvC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAC;IACxG,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACxG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iCAAiC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAClF,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAEjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;IAC/B,OAAO;QACN,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,QAAQ;KAC7B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,GAAqB,EACrB,OAAuB,EACvB,EAAU,EACV,OAAqB;IAErB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0DAA0D,EAAE,CAAC;IACtG,CAAC;IACD,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC;IACnG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,CAAC;IAChH,CAAC;IACD,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kFAAkF,EAAE,CAAC;IAC9H,CAAC;IACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtH,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAEjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;QAClD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ;QAC9B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;IAC/B,OAAO;QACN,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC,QAAQ;KAC7B,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CACjC,QAAuC,EACvC,OAAqB,EACrB,KAA2B,EAC3B,SAAkB;IAElB,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAC7G,CAAC;IACF,OAAO,QAAQ;QACd,CAAC,CAAC,YAAY,KAAK,mFAAmF,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI;QAC7H,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,GAAqB,EACrB,OAAuB,EACvB,EAAU;IAEV,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2DAA2D,EAAE,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2EAA2E,EAAE,CAAC;IACvH,CAAC;IACD,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC;IACnG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8BAA8B,EAAE,qCAAqC,EAAE,CAAC;IACjH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACrD,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,mDAAmD,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM;YAC5C,CAAC,CAAC,uBAAuB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC5D,CAAC,CAAC,uCAAuC,CAAC;QAC3C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAE,EAAE,CAAC;IAClH,CAAC;IACD,OAAO;QACN,EAAE,EAAE,IAAI;QACR,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC;QAC3C,YAAY,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ;KAClC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC/B,GAAqB,EACrB,OAAuB,EACvB,EAAU;IAEV,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAC;IACxG,CAAC;IACD,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAAC;IACnG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,CAAC;IAClH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mDAAmD,EAAE,CAAC;QACpI,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kCAAkC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC/H,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,+CAA+C,EAAE,CAAC;QAC9G,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,kCAAkC,EAAE,GAAG,EAAE,CAAC;IACnG,CAAC;IACD,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO;QACN,EAAE,EAAE,IAAI;QACR,UAAU;QACV,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE;KACpD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,EAAU,EACV,MAAmE;IAEnE,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,EAAE,CAAC;IAChH,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,kDAAkD,EAAE,CAAC;IACnJ,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,iCAAiC,EAAE,GAAG,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB,EAAE,EAAU;IAC7C,OAAO,GAAG,QAAQ,KAAK,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,OAAuB,EAAE,QAAgB;IAC9D,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,uBAAuB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAyB,EAAE,MAAqC;IAC5F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAChF,OAAO;QACN,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QACnB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,KAAK,MAAM;QACzB,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;QACvC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;QACpC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QACpC,MAAM;QACN,QAAQ;QACR,WAAW,EAAE,MAAM,CAAC,WAAW;KAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAA2B,EAAE,MAAqC;IAChG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AASD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAE7E,MAAM,UAAU,qBAAqB,CAAC,GAAqB;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,UAAU;YACV,QAAQ,EAAE,CAAC,4BAA4B,UAAU,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SACtI,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;YACN,UAAU;YACV,QAAQ,EAAE,CAAC,aAAa,UAAU,gDAAgD,CAAC;SACnF,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjE,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,MAAM,OAAO,GAAG,eAAe,EAAE,IAAI,IAAI,GAAG,CAAC,aAAa,CAAC;IAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YAClG,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,UAAU,qFAAqF,CAAC,CAAC;QACtI,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,EAAE,MAAM,CAAC;IAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAA4B,CAAC,EAAE,CAAC;YAC3F,QAAQ,CAAC,MAAM,GAAG,SAA4B,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,UAAU,mEAAmE,CAAC,CAAC;QACpH,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAqB,EAAE,MAAuB;IAC1E,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6DAA6D,EAAE,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,GAAG,GAA4B,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,UAAU,iEAAiE,EAAE,CAAC;YACpI,CAAC;YACD,GAAG,GAAG,MAAM,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,4BAA4B,UAAU,6CAA6C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACvL,CAAC;IACF,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC;;QAC1C,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;;QAC5D,OAAO,GAAG,CAAC,SAAS,CAAC;IAE1B,IAAI,CAAC;QACJ,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,uBAAuB,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6BAA6B,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAChJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,OAAe;IACjE,MAAM,QAAQ,GAAG,IAAI,CACpB,OAAO,CAAC,QAAQ,CAAC,EACjB,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAC3D,CAAC;IACF,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACJ,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,SAAS,CAAC,UAAU,CAAC,CAAC;QACtB,UAAU,GAAG,SAAS,CAAC;QACvB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,UAAU,KAAK,SAAS;YAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,KAAK,UAAU,aAAa,CAC3B,GAAqB,EACrB,OAAuB,EACvB,EAAU,EACV,KAAkB;IAElB,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC;IACrG,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC/D,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,uEAAuE,EAAE,CAAC;IACnH,CAAC;IACD,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACf,kFAAkF;QAClF,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACnH,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;WAC7H,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;IAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AACxI,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,GAAqB,EACrB,OAAuB,EACvB,KAAkB,EAClB,OAAoC;IAEpC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2DAA2D,EAAE,CAAC;IACvG,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3H,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gCAAgC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IACtF,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,IAAI,OAAO,CAAC,SAAS;QACnD,CAAC,CAAC,YAAY,CAAC,QAAQ;QACvB,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACjH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACxD,MAAM,eAAe,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;IACxH,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;IAC/F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AAC1I,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,GAAqB,EACrB,OAAuB,EACvB,EAAU;IAEV,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2DAA2D,EAAE,CAAC;IACvG,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAAC;IACrF,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,MAAM,CAAC;IACjD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AACxH,CAAC;AAID,2FAA2F;AAC3F,MAAM,UAAU,mBAAmB,CAAC,MAAkC;IACrE,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,cAAc;YAClB,OAAO,GAAG,CAAC;QACZ,KAAK,QAAQ;YACZ,OAAO,GAAG,CAAC;QACZ,KAAK,SAAS;YACb,OAAO,GAAG,CAAC;QACZ;YACC,OAAO,GAAG,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAU;IACrC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,6BAA6B,CAAC;IACrD,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/B,OAAO,gHAAgH,CAAC;IACzH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"web-host.js","sourceRoot":"","sources":["../src/web-host.ts"],"names":[],"mappings":"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"}
package/docs/README.md CHANGED
@@ -6,14 +6,14 @@ Use this page as the documentation map. Each subject has one authoritative home;
6
6
 
7
7
  ## Start here
8
8
 
9
- - [Getting started](getting-started.md) — install pi-forge, create a stack, open the editor, and save a profile.
10
- - [Prompt stacks](concepts/prompt-stacks.md) — the prompt-composition and policy model.
11
- - [Agent profiles](concepts/agent-profiles.md) — one-shot model, thinking, and stack presets.
9
+ - [Getting started](getting-started.md) — install pi-forge, create a Preset, open the editor, and save a Profile.
10
+ - [Presets and Stacks](concepts/prompt-stacks.md) — complete Presets and their ordered Block/Slot composition.
11
+ - [Agent profiles](concepts/agent-profiles.md) — one-shot model, thinking, and Preset bundles.
12
12
 
13
13
  ## Guides
14
14
 
15
15
  - [Web editor](guides/web-editor.md)
16
- - [Prompt-stack patterns and examples](guides/use-cases.md)
16
+ - [Preset patterns and examples](guides/use-cases.md)
17
17
  - [Migrating to 0.5](guides/migrating-to-0.5.md)
18
18
  - [Foreground delegation](guides/delegation.md) — experimental; read the security boundary before enabling it.
19
19
  - [Custom macros and slots](guides/custom-macros-and-slots.md)
@@ -22,7 +22,7 @@ Use this page as the documentation map. Each subject has one authoritative home;
22
22
  ## Reference
23
23
 
24
24
  - [Commands](reference/commands.md)
25
- - [Prompt-stack schema and policy](reference/stack-schema.md)
25
+ - [Preset schema and policy](reference/stack-schema.md)
26
26
  - [Macros and runtime slots](reference/macros-and-slots.md)
27
27
  - [Configuration](reference/configuration.md)
28
28
  - [Implemented feature inventory](reference/features.md)
@@ -1,10 +1,10 @@
1
- # Prompt stacks
1
+ # Presets and Stacks
2
2
 
3
3
  [Documentation](../README.md) · [中文](../zh-CN/concepts/prompt-stacks.md)
4
4
 
5
- A prompt stack is an ordered, declarative description of the prompt and policy Pi should use. It combines static **blocks** with dynamic **slots**.
5
+ A **Preset** is the complete declarative resource Pi Forge applies. Its **Stack** is the ordered prompt composition made from static **Blocks** and dynamic **Slots**; the same Preset also carries policy, Regex, parameters, and extension references.
6
6
 
7
- > **Naming note.** Prompt stacks are managed by the `/preset` command family: a stack file bundles composition and policy together, behaving like a complete preset. The names will converge in a future release; this document keeps "prompt stack" for the resource.
7
+ > **0.5.3 compatibility note.** The UI uses Preset → Stack terminology. The file path, JSON type, profile field, API route, and internal type names retain their existing `prompt-stack` / `promptStack` spellings in this patch.
8
8
 
9
9
  ## Blocks and slots
10
10
 
@@ -42,22 +42,22 @@ Slots cover conversation history, tools, tool guidance, skills, project context,
42
42
  For each new user turn, pi-forge:
43
43
 
44
44
  1. Orders enabled blocks and slots exactly as written.
45
- 2. Builds `system` content and applies the stack's `replace`, `append`, or `prepend` mode.
45
+ 2. Builds `system` content and applies the Preset's `replace`, `append`, or `prepend` mode.
46
46
  3. Inserts synthetic user/assistant messages around the movable `chat-history` slot.
47
47
  4. Compiles forge-v1 templates over `runtime.*`, `parameters.*`, and `extensions.*`.
48
- 5. Applies the stack's tool policy to Pi and filters skills rendered by pi-forge.
48
+ 5. Applies the Preset's tool policy to Pi and filters skills rendered by pi-forge.
49
49
  6. Applies outgoing history/compiled regex rules.
50
50
  7. Optionally applies destructive finalize rules when an assistant message completes.
51
51
 
52
52
  The context rewrite happens only on the first provider request for a user-submitted turn. Pi can then continue its normal tool loop without repeatedly rebuilding the same context.
53
53
 
54
- Stacks can optionally merge runs of consecutive same-role stack items into a single message with `context.mergeConsecutiveRoles` (and an optional `context.mergeSeparator`); chat-history output and custom-role items are never merged. See the [stack schema](../reference/stack-schema.md#context-options).
54
+ A Stack can optionally merge runs of consecutive same-role items into a single message with `context.mergeConsecutiveRoles` (and an optional `context.mergeSeparator`); chat-history output and custom-role items are never merged. See the [Preset schema](../reference/stack-schema.md#context-options).
55
55
 
56
56
  ## System modes
57
57
 
58
- - `replace` is the default and gives the stack complete control. An empty replacement falls back to Pi's base prompt.
59
- - `append` adds stack system content after Pi's base prompt.
60
- - `prepend` adds stack system content before Pi's base prompt.
58
+ - `replace` is the default and gives the Preset complete control. An empty replacement falls back to Pi's base prompt.
59
+ - `append` adds the Stack's system content after Pi's base prompt.
60
+ - `prepend` adds the Stack's system content before Pi's base prompt.
61
61
 
62
62
  Use `replace` when the model-visible skill list must be controlled. With `append` or `prepend`, Pi's base prompt may already contain an unfiltered skill listing.
63
63
 
@@ -74,26 +74,26 @@ This preserves prior context while presenting the current request once, in an ex
74
74
 
75
75
  ## Tool and skill policy
76
76
 
77
- Stacks may use either `allow` or `deny` patterns for each resource. Tool policy changes Pi's active tools and is guarded at tool-call time; it remains enforced while the stack is selected. Skill policy only filters skills rendered by pi-forge—it does not prevent explicit skill invocation and is not a security boundary.
77
+ Presets may use either `allow` or `deny` patterns for each resource. Tool policy changes Pi's active tools and is guarded at tool-call time; it remains enforced while the Preset is selected. Skill policy only filters skills rendered by pi-forge—it does not prevent explicit skill invocation and is not a security boundary.
78
78
 
79
- External tool additions are preserved in the baseline restored when a restrictive stack is disabled. See the exact behavior in [stack policy reference](../reference/stack-schema.md#tool-and-skill-policy).
79
+ External tool additions are preserved in the baseline restored when a restrictive Preset is disabled. See the exact behavior in the [Preset policy reference](../reference/stack-schema.md#tool-and-skill-policy).
80
80
 
81
81
  ## Scopes and shadowing
82
82
 
83
- Stacks may live in the user-global `~/.pi/forge/prompt-stacks/` or the project `.pi/forge/prompt-stacks/`. A project stack shadows a same-ID global stack for unqualified commands. Selectors are `reviewer`, `project:reviewer`, or `global:reviewer`. Duplicate IDs are errors only within one scope.
83
+ Presets currently live in the compatibility paths `~/.pi/forge/prompt-stacks/` or `.pi/forge/prompt-stacks/`. A project Preset shadows a same-ID global Preset for unqualified commands. Selectors are `reviewer`, `project:reviewer`, or `global:reviewer`. Duplicate IDs are errors only within one scope.
84
84
 
85
85
  ## Activation and session behavior
86
86
 
87
- - A stack may set `autoActivate: true`; conflicting auto-activation in one scope is invalid and fails closed.
87
+ - A Preset may set `autoActivate: true`; conflicting auto-activation in one scope is invalid and fails closed.
88
88
  - `default.json` has no special filename role anymore; missing `autoActivate` yields a migration warning.
89
89
  - `/preset use none` records an explicit session opt-out.
90
- - Active stack selection follows Pi's session-tree branch.
90
+ - Active Preset selection follows Pi's session-tree branch.
91
91
  - Restored branch state takes precedence over fresh-session auto-activation.
92
- - Project auto-activation candidates take precedence over global ones; an invalid or ambiguous project candidate never falls back to a global stack.
93
- - An auto-activated agent profile takes precedence over standalone stack autoload.
92
+ - Project auto-activation candidates take precedence over global ones; an invalid or ambiguous project candidate never falls back to a global Preset.
93
+ - An auto-activated Agent Profile takes precedence over standalone Preset autoload.
94
94
 
95
95
  ## Extensions and transforms
96
96
 
97
- Immutable `parameters` support forge-v1 interpolation and pure filters; tool/slot conditionals use `runtime.tool.*` / `runtime.slot.*` booleans. Trusted JavaScript/TypeScript registration modules can add macros and slots without putting executable code in stack JSON. Deterministic regex rules can transform model-bound prompt text or, with an explicit warning, replace finalized assistant transcript text.
97
+ Immutable `parameters` support forge-v1 interpolation and pure filters; tool/slot conditionals use `runtime.tool.*` / `runtime.slot.*` booleans. Trusted JavaScript/TypeScript registration modules can add macros and slots without putting executable code in Preset JSON. Deterministic Regex rules can transform model-bound prompt text or, with an explicit warning, replace finalized assistant transcript text.
98
98
 
99
99
  See [custom macros and slots](../guides/custom-macros-and-slots.md), [macro reference](../reference/macros-and-slots.md), and [regex schema](../reference/stack-schema.md#regex-transforms).
@@ -0,0 +1,229 @@
1
+ # pi-forge `system_update` Design Notes
2
+
3
+ **Status:** Current plan (revised 2026-09-12). Supersedes the 2026-09-10
4
+ exploration draft, which assumed pi-forge would implement the full
5
+ persistence/projection/transport stack itself. Upstream Pi has since started
6
+ building the primitive natively, so pi-forge's scope shrinks to the
7
+ workflow layer.
8
+
9
+ **Target:** 0.5.5+, blocked on an upstream Pi redo (see §2).
10
+
11
+ ---
12
+
13
+ ## 1. TL;DR — Current Plan
14
+
15
+ `system_update` is a **session-timeline event**, not a mutation of the
16
+ top-level system prompt. That core decision from the original draft survives.
17
+ What changed is who builds what:
18
+
19
+ - **Upstream Pi is building the primitive**: a first-class `SystemMessage`
20
+ (`role: "system"`) appended to the transcript, rendered natively on models
21
+ that support mid-conversation system messages and as a tagged user turn
22
+ elsewhere. Persistence, resume, compaction, and provider rendering are all
23
+ owned by the harness.
24
+ - **pi-forge builds only the workflow layer**: an append-only event log, a
25
+ reducer over it, the `/system-update` command family, preset-declared
26
+ dormant instruction blocks, and a permission-gated agent tool.
27
+ - **Integration is declarative**: pi-forge renders its active update set into
28
+ `systemPromptOptions.sections` and lets the harness diff engine emit the
29
+ deltas. pi-forge no longer returns a fully-compiled replacement string for
30
+ this path.
31
+
32
+ Discarded from the original draft: the custom-entry + self-written projector
33
+ design, the `custom_message` transport, the provider transport matrix, and
34
+ the six-phase rollout. See §5 for why.
35
+
36
+ ---
37
+
38
+ ## 2. Upstream Landscape (snapshot 2026-09-12)
39
+
40
+ ### 2.1 The PRs
41
+
42
+ - **PR #9116** (`system-role` branch, pi-ai layer): adds `SystemMessage` to
43
+ the `Message` union. Appended to the transcript, never folded into
44
+ `Context.systemPrompt`. Persisted as ordinary message entries; compaction
45
+ cut points and summaries understand them (rendered as `[System]:` in
46
+ summaries); interactive mode hides them.
47
+ - **PR #9117** (`system-tool-deltas` branch, stacked, coding-agent layer):
48
+ the first rendered prompt of a session becomes a stored **baseline**;
49
+ anything that changes afterwards is appended as a provider-neutral system
50
+ message delta. On resume/tree navigation the stored baseline is reinstated
51
+ so a resumed session sends byte-identical cached prefixes. After
52
+ compaction, the effective prompt folds into a fresh baseline at no extra
53
+ cost.
54
+
55
+ **Both PRs were closed by the author on 2026-09-11 with "I will redo this."**
56
+ Direction is alive; implementation is being redone; timeline unknown.
57
+ Community testing (13-scenario harness, all green) flagged two design
58
+ issues likely motivating the redo: ~10 KB per-prompt-entry session bloat
59
+ from storing rendered baselines, and silent tool disappearance on
60
+ non-supporting models across resume.
61
+
62
+ ### 2.2 Verified behavior of the PR branch (local clone: `~/programming/pi-pr9117`)
63
+
64
+ Measured against the actual `system-tool-deltas` build:
65
+
66
+ - `sections: Record<string, string>` on `systemPromptOptions` renders as
67
+ XML-wrapped blocks (`<name>\n...\n</name>`), diff-keyed as `section:name`.
68
+ - `diffSystemPrompts` behavior matrix:
69
+ - identical pieces → `unchanged` (no cost)
70
+ - section added → update delta: "The following `<name>` system guidance
71
+ now applies: ..."
72
+ - section removed → retraction: "The previous `<name>` system guidance no
73
+ longer applies."
74
+ - section content changed → "The `<name>` system guidance has changed. The
75
+ following supersedes..."
76
+ - literals changed or `forceSystemPrompt` changed → `replace`
77
+ (deliberate full cache miss)
78
+ - **`forceSystemPrompt` short-circuits everything**: when set, pieces are
79
+ only the forced prompt; sections are not rendered at all. Any extension
80
+ returning a full replacement string from `before_agent_start` gets this
81
+ path, and every content change is a full prefix miss.
82
+ - **`customPrompt` is a value piece** (keyed `customPrompt`, diff-friendly)
83
+ and does NOT short-circuit sections. This is pi-forge's integration point
84
+ for `mode = replace` stacks.
85
+ - Mid-run timing: the diff runs before every LLM request
86
+ (`agent-loop.ts`), including mid-tool-loop, so an agent tool that mutates
87
+ sections gets its delta delivered after the tool batch and before the next
88
+ inference. The tool-call adjacency problem from the original draft is
89
+ handled by the harness.
90
+ - Fallback rendering for unsupported providers:
91
+ `<system_update>\n{text}\n</system_update>` as a user-role message
92
+ (`pi-ai/utils/system-messages.ts`); Gemini confirmed user-role.
93
+ - Native support matrix (upstream compat flags): Anthropic Opus 4.8/5,
94
+ Fable 5/5.1, Mythos 5/5.1 get real system messages (Anthropic requires a
95
+ system message to directly precede an assistant turn; pending messages are
96
+ held). OpenAI transports get `developer`/`system` items. Everything else
97
+ gets the tagged user turn.
98
+ - `BeforeAgentStartEventResult.message` only accepts `CustomMessage`
99
+ (customType/content/display/details) — there is **no imperative
100
+ append-SystemMessage extension API** in the PR as written. The declarative
101
+ sections path is the intended extension surface.
102
+ - The PR branch itself had two TypeScript errors (`openrouter.ts`,
103
+ `xai.ts`) when we built it; dist artifacts were still produced.
104
+
105
+ ### 2.3 Trigger to resume this work
106
+
107
+ When the redone PR appears: verify the sections/diff semantics survived the
108
+ redo (re-run the §2.2 matrix), then wire pi-forge's workflow layer to it.
109
+ If the redo removes the declarative sections surface, reassess; the escape
110
+ hatch is splicing `SystemMessage` in the context hook (see §5).
111
+
112
+ ---
113
+
114
+ ## 3. pi-forge Design (workflow layer)
115
+
116
+ These decisions survive from the original draft and remain the plan.
117
+
118
+ ### 3.1 Event model
119
+
120
+ - Updates are **append-only custom session entries**
121
+ (`pi-forge-system-update`, schemaVersion 1), written via the existing
122
+ `session-adapter.ts` pattern (`pi.appendEntry` / `getCurrentBranchEntries`).
123
+ Branch semantics come for free.
124
+ - Entry payload: `{ updateId, op: "apply" | "revoke" | "reset", source,
125
+ presetId?, contentSnapshot, createdAt }`.
126
+ - **Snapshot content, not file paths**: file-backed presets are rendered at
127
+ activation time and the rendered text is persisted. Editing a preset file
128
+ tomorrow must not alter yesterday's session.
129
+ - Logical state is a **reducer view** over the branch's events, never
130
+ canonical mutable state. Powers `/system-update status`, badges, and
131
+ section rendering.
132
+ - Revoke/reset are new events, never history rewrites. In practice the
133
+ harness retraction wording ("no longer applies") is generated for us once
134
+ the section disappears; the event log only records intent.
135
+
136
+ ### 3.2 Rendering (the declarative bridge)
137
+
138
+ - The reducer's active set is rendered into
139
+ `systemPromptOptions.sections["pi-forge-update-<id>"]` during
140
+ `before_agent_start` (and picked up mid-run by the harness's per-request
141
+ diff).
142
+ - pi-forge's stack compilation moves off the legacy "return one big string"
143
+ path: `mode = replace` stacks go into `systemPromptOptions.customPrompt`,
144
+ additive content into keyed `sections`. This is a prerequisite refactor,
145
+ and it upgrades cache behavior for the whole stack system, not just
146
+ updates.
147
+ - Transport is not pi-forge's concern: native vs fallback rendering is the
148
+ harness's compatibility layer.
149
+
150
+ ### 3.3 Commands
151
+
152
+ - `/system-update <text>` — apply a freeform update (auto-id `update-N`).
153
+ - `/system-update status` — reducer view of active updates.
154
+ - `/system-update reset` — deactivate all (new event, append-only).
155
+ - 0.5.5+ with presets: `/system-update list|use <id>|off <id>`.
156
+ - No command deletes history. None of these trigger an agent turn.
157
+
158
+ ### 3.4 Presets and the agent tool
159
+
160
+ - Presets declare dormant runtime blocks:
161
+ `{ "systemUpdates": [{ "id", "name", "description", "modelCallable",
162
+ "content" | "file" }] }`.
163
+ - The base system prompt carries only a compact inventory; full blocks load
164
+ on activation (lazy privileged prompt loading).
165
+ - Agent-facing tool `forge_system_update({action, id})` references declared
166
+ preset IDs only. **No arbitrary file elevation, no arbitrary agent-provided
167
+ privileged text.** Repository content is untrusted; elevation requires an
168
+ explicit preset declaration.
169
+ - Source-aware deactivation: the agent may only deactivate agent-activated
170
+ modes; the user may deactivate anything.
171
+ - Mid-turn activation rides the harness's per-request diff — no
172
+ pending-commit machinery on our side.
173
+
174
+ ### 3.5 Compaction, resume, branching
175
+
176
+ All owned by the harness under the new architecture: update sections are part
177
+ of the effective prompt, folded into the post-compaction baseline; stored
178
+ baseline is reinstated on resume; events live on the branch. pi-forge's only
179
+ job is to re-derive the active set from the branch's event log on session
180
+ start/branch switch (same restore pattern as the active-stack state today).
181
+
182
+ ---
183
+
184
+ ## 4. Version Plan
185
+
186
+ - **0.5.4 (done, pushed):** web editor fixes and visual work; prompt-cache
187
+ features — cache-impact warning on `/preset use` / `/profile use`
188
+ (common-prefix estimate + last-request cacheRead), and compile-time
189
+ diagnostics for cache-sensitive content (`{{time}}`, date slots with
190
+ `includeTime`, `{{date}}` info).
191
+ - **0.5.5:** system update workflow layer per §3, gated on the upstream redo
192
+ landing in a released Pi. Build the upstream-touching code behind a small
193
+ isolated module so a redo API change rewrites one file, not the feature.
194
+
195
+ ---
196
+
197
+ ## 5. Discarded Designs (recorded so we don't re-litigate)
198
+
199
+ - **Custom entry + self-written projector** (original draft's main design):
200
+ required replicating Pi's session-entry→context translation rules
201
+ (compaction truncation, deferred-message filtering) to compute splice
202
+ positions, plus a compaction checkpoint synthesizer. Real maintenance
203
+ coupling to Pi internals. Killed by the upstream `SystemMessage`.
204
+ - **`pi.sendMessage` custom_message transport**: zero projection code, but
205
+ `custom_message` entries evaporate at compaction (the compaction path
206
+ doesn't recognize them) and render only as user-role. Viable fallback if
207
+ the upstream redo dies entirely; otherwise obsolete.
208
+ - **Provider transport matrix / native lowering in pi-forge**: the wire role
209
+ is the harness's compatibility layer. pi-forge stores semantics
210
+ (`op`, `presetId`) so a future transport change needs no data migration.
211
+ - **Context-hook SystemMessage splicing**: possible once upstream keeps
212
+ `role: "system"` messages, but brings back per-request projection, position
213
+ mapping, and Anthropic placement-rule handling. Escape hatch only.
214
+
215
+ ---
216
+
217
+ ## 6. Open Questions for the Redo
218
+
219
+ 1. Did sections survive the redo, and did their diff semantics change?
220
+ 2. Is there an imperative append path for extensions after all, or is
221
+ declarative sections still the only surface?
222
+ 3. How does the redo store baselines (the session-bloat feedback)?
223
+ 4. Does `customPrompt` remain a non-short-circuiting value piece?
224
+ 5. Timing: which Pi release carries it, and what's our minimum-version
225
+ dependency story for the feature?
226
+
227
+ Community posture: when the redo PR opens, comment as a downstream consumer
228
+ with the runtime-instruction-modes use case (do not file a new issue;
229
+ feature-request issues get auto-closed while a PR is in flight).
@@ -49,9 +49,11 @@ Stable 0.4 does not imply that the subagent adapter or runtime has become stable
49
49
 
50
50
  ### Naming convergence (preset/stack)
51
51
 
52
- Target model: **stack** names the composition section (ordered blocks/slots), **preset** names the file that bundles composition with tool/skill/regex policy, **profile** remains the model/thinking/preset bundle. The `/preset` command family already matches the target; the stored resource does not.
52
+ Target model: **stack** names the composition section (ordered blocks/slots), **preset** names the file that bundles composition with tool/skill/regex policy, **profile** remains the model/thinking/preset bundle. The `/preset` command family already matches the target.
53
53
 
54
- When scheduled (bundle with other breaking cleanup, never as a standalone release):
54
+ 0.5.3 starts with the non-breaking user-visible layer: the web editor calls the complete resource a **Preset**, calls its ordered Block/Slot composition the **Stack**, and labels the old whole-resource Stack tab **Advanced**. User-facing diagnostics follow the same terminology. Compatibility identifiers remain unchanged in this phase: `/api/stacks`, TypeScript `PromptStack` names, `.pi/forge/prompt-stacks/`, JSON type `pi-forge.prompt-stack`, profile field `promptStack`, and the subagent wire contract.
55
+
56
+ The remaining storage/schema convergence must be bundled with breaking cleanup, never shipped as an implicit patch migration:
55
57
 
56
58
  - Migrate `.pi/forge/prompt-stacks/` to `.pi/forge/presets/` byte-preserving, reusing the legacy stack-migration path; read-compat for the `"pi-forge.prompt-stack"` type, write `"pi-forge.preset"`.
57
59
  - Profile field `promptStack` becomes `preset` with read-compat for the old field.
@@ -60,4 +60,4 @@ Allow read/search tools, include the `pi-docs` and project-context slots, and ke
60
60
 
61
61
  ## Trusted runtime status
62
62
 
63
- The [custom system-status example](../../examples/custom-system-status-extension/README.md) captures host data once when its trusted module registers, then exposes that immutable snapshot through `{{ extensions.cpuLoad }}` and a `machine-status` slot. Use this pattern when registration-time data is sufficient; reload the extension to capture a new snapshot.
63
+ The [custom system-status example](../../examples/custom-system-status-extension/README.md) samples host data when its trusted macro or slot renders during prompt compilation, then exposes that fresh snapshot through `{{ extensions.cpuLoad }}` and a `machine-status` slot. Use this pattern when a new user turn should see current machine state; it is compile-time telemetry, not a continuous background monitor.
@@ -14,7 +14,7 @@ Use `/preset ui restart` to replace its server or `/preset ui stop` to close it.
14
14
 
15
15
  The editor binds to an available `127.0.0.1` port and uses a session token. Multiple Pi projects can run editors simultaneously. Lifecycle reinitialization reuses the existing editor URL for the same project when possible.
16
16
 
17
- Reads, preview, resources, and payload inspection remain available as appropriate, but writes require Pi to trust the project. Files are constrained to pi-forge's stack/profile storage. Never expose or proxy the editor URL to an untrusted network.
17
+ Reads, preview, resources, and payload inspection remain available as appropriate, but writes require Pi to trust the project. Files are constrained to Pi Forge's Preset/Profile storage. Never expose or proxy the editor URL to an untrusted network.
18
18
 
19
19
  Choose a preferred port in `.pi/forge/config.json`:
20
20
 
@@ -30,14 +30,15 @@ If that port is unavailable, pi-forge selects another and shows the actual URL.
30
30
 
31
31
  ## Interface language
32
32
 
33
- The editor interface is available in English and Chinese. Use the language selector in the top bar (Auto / English / 中文); the choice is written to `webEditor.locale` in the project config. `Auto` (the default) follows the browser language, and the initial page render also honors the browser's `Accept-Language` header. Interface chrome, built-in stack/profile surfaces, and the preview/diff dock are localized; compiler diagnostics, provider-contributed settings pages, and stack content (item names, block text) stay in their authored language.
33
+ The editor interface is available in English and Chinese. Use the language selector in the top bar (Auto / English / 中文); the choice is written to `webEditor.locale` in the project config. `Auto` (the default) follows the browser language, and the initial page render also honors the browser's `Accept-Language` header. Interface chrome, built-in Preset/Profile surfaces, and the preview/diff dock are localized; compiler diagnostics, provider-contributed settings pages, and authored Preset content stay in their authored language.
34
34
 
35
- ## Prompt-stack workspace
35
+ ## Preset workspace
36
36
 
37
- The stack workspace provides:
37
+ The Preset workspace provides:
38
38
 
39
39
  - creation from the default Pi-mirror layout;
40
- - structured metadata, item, policy, variables, context, and regex editing;
40
+ - an ordered **Stack** tab for Block/Slot composition;
41
+ - structured metadata, policy, parameters, context, and Regex editing;
41
42
  - drag-and-drop item order and enable/disable controls;
42
43
  - validation and a full compiled preview;
43
44
  - registered-tool and loaded-skill search with exact-name chips and wildcard patterns;
@@ -47,15 +48,15 @@ The stack workspace provides:
47
48
  - payload arming and redacted captured-payload inspection;
48
49
  - light and dark themes.
49
50
 
50
- Existing IDs are immutable during edit. Use **More → Fork** to create a different ID without breaking profile references or the active selection. The compact selector attached to **New stack** (default `Project`) chooses where new stacks, imports, and forks are written: `Global` targets the user-global `~/.pi/forge/prompt-stacks`, `Project` targets `.pi/forge/prompt-stacks`. Less-used capture, fork, import, export, and delete actions live under **More** so the stack and Preview/Diff panes keep the available viewport. Stack rows show a `global` badge, and save/delete routes use `global:<id>` for exact global mutations. Legacy stacks remain editable in place.
51
+ Existing IDs are immutable during edit. Use **More → Fork** to create a different ID without breaking Profile references or the active selection. The compact selector attached to **New preset** (default `Project`) chooses where new Presets, imports, and forks are written: `Global` targets the user-global `~/.pi/forge/prompt-stacks`, `Project` targets `.pi/forge/prompt-stacks`. Those paths keep their pre-0.5.3 names for compatibility. Less-used capture, fork, import, export, and delete actions live under **More** so the Stack and Preview/Diff panes keep the available viewport. Preset rows show a `global` badge, and save/delete routes use `global:<id>` for exact global mutations. Legacy resources remain editable in place.
51
52
 
52
- Saves, imports, forks, and deletes reload stack state into the current Pi session. When another surface changes a referenced stack, returning to profiles refreshes profile resolution.
53
+ Saves, imports, forks, and deletes reload Preset state into the current Pi session. When another surface changes a referenced Preset, returning to Profiles refreshes Profile resolution.
53
54
 
54
55
  ## Agent-profile workspace
55
56
 
56
- The profile list shows each profile's ID, display metadata, model, thinking level, stack, resolution state, auto-activation, last-applied provenance, and a `project`/`global` scope badge. Same-ID shadow pairs are marked `shadows global:<id>` or `shadowed by project:<id>`.
57
+ The Profile list shows each Profile's ID, display metadata, model, thinking level, Preset, resolution state, auto-activation, last-applied provenance, and a `project`/`global` scope badge. Same-ID shadow pairs are marked `shadows global:<id>` or `shadowed by project:<id>`.
57
58
 
58
- Trusted projects can create profiles in either scope: the scope selector beside **New profile** (default `project`) chooses whether to write the user-global `~/.pi/forge/agent-profiles` or the project `.pi/forge/agent-profiles`. Global profiles can be edited, validated, saved, applied once, and deleted through explicit `global:<id>` routes; unqualified routes stay project-only. When editing a global profile, the prompt-stack dropdown offers only global stacks. Model choices come from Pi's model registry, thinking choices reflect model support, and stack choices come from the shared repository. The editor rejects a second auto-activation profile within the same scope.
59
+ Trusted projects can create Profiles in either scope: the scope selector beside **New profile** (default `project`) chooses whether to write the user-global `~/.pi/forge/agent-profiles` or the project `.pi/forge/agent-profiles`. Global Profiles can be edited, validated, saved, applied once, and deleted through explicit `global:<id>` routes; unqualified routes stay project-only. When editing a global Profile, the Preset dropdown offers only global Presets. Model choices come from Pi's model registry, thinking choices reflect model support, and Preset choices come from the shared repository. The editor rejects a second auto-activation Profile within the same scope.
59
60
 
60
61
  The runtime/provenance card separates current runtime state, last-applied snapshot, source-definition changes, and field-level runtime drift.
61
62
 
@@ -4,16 +4,16 @@
4
4
 
5
5
  ## 从这里开始
6
6
 
7
- - [快速上手](getting-started.md):安装、创建 stack、打开编辑器并保存 profile。
8
- - [Prompt stack](concepts/prompt-stacks.md):prompt 组合、历史布局和策略模型。
9
- - [Agent profile](concepts/agent-profiles.md):一次性模型/思考等级/stack 预设。
7
+ - [快速上手](getting-started.md):安装、创建预设、打开编辑器并保存 Profile。
8
+ - [预设与堆栈](concepts/prompt-stacks.md):完整预设及其有序 Block/Slot 编排。
9
+ - [Agent Profile](concepts/agent-profiles.md):一次性模型/思考等级/预设组合。
10
10
 
11
11
  ## 指南
12
12
 
13
13
  - [Web 编辑器](guides/web-editor.md)
14
14
  - [迁移到 0.5](guides/migrating-to-0.5.md)
15
15
  - [实验性前台 delegation](guides/delegation.md):启用前请先阅读安全边界。
16
- - [Prompt stack 使用场景(英文)](../guides/use-cases.md)
16
+ - [预设使用场景(英文)](../guides/use-cases.md)
17
17
 
18
18
  自定义 macros/slots 和调试的完整说明目前以英文版为准:
19
19
 
@@ -1,12 +1,12 @@
1
- # Prompt stack
1
+ # 预设与堆栈
2
2
 
3
3
  [中文文档](../README.md) · [English](../../concepts/prompt-stacks.md)
4
4
 
5
- Prompt stack 是一份有序、声明式的 prompt 与策略描述,由固定 **block** 和动态 **slot** 组成。
5
+ **Preset(预设)**是 Pi Forge 应用的完整声明式资源;其中由固定 **Block** 和动态 **Slot** 组成的有序 prompt 编排叫 **Stack(堆栈)**。同一份预设还会携带策略、Regex、参数和扩展引用。
6
6
 
7
- > **命名说明。** Prompt stack 由 `/preset` 命令族管理:stack 文件把编排与策略打包在一起,实际作用相当于一份完整预设。命名将在未来版本统一;本文档沿用"prompt stack/提示词栈"指代该资源。
7
+ > **0.5.3 兼容说明。** UI 使用“预设 → 堆栈”术语。这个补丁版本仍保留文件路径、JSON type、Profile 字段、API 路由和内部类型中的 `prompt-stack` / `promptStack` 拼写。
8
8
 
9
- Stack 可以放在项目 `.pi/forge/prompt-stacks/`,也可以放在用户全局 `~/.pi/forge/prompt-stacks/`。命令接受 `reviewer`、`project:reviewer` 和 `global:reviewer`;未限定 ID 优先解析项目 stack,项目 stack 会遮蔽同 ID 全局 stack。重复 ID 只在同一 scope 内算错误。
9
+ 预设当前放在兼容路径 `.pi/forge/prompt-stacks/` 或用户全局 `~/.pi/forge/prompt-stacks/`。命令接受 `reviewer`、`project:reviewer` 和 `global:reviewer`;未限定 ID 优先解析项目预设,项目预设会遮蔽同 ID 全局预设。重复 ID 只在同一 scope 内算错误。
10
10
 
11
11
  ## 编译模型
12
12
 
@@ -29,20 +29,20 @@ Stack 可以放在项目 `.pi/forge/prompt-stacks/`,也可以放在用户全
29
29
 
30
30
  这样既保留旧上下文,又只在最后明确出现一次当前请求。History 还可以过滤 summary/role、去掉旧工具消息、移除 assistant thinking,并限制消息数或字符数。
31
31
 
32
- Stack 还可以通过 `context.mergeConsecutiveRoles`(及可选的 `context.mergeSeparator`)把连续的同角色条目合并成一条消息;chat-history 输出和 custom 角色条目永远不会被合并。详见英文 [stack schema](../../reference/stack-schema.md#context-options)。
32
+ 堆栈还可以通过 `context.mergeConsecutiveRoles`(及可选的 `context.mergeSeparator`)把连续的同角色条目合并成一条消息;chat-history 输出和 custom 角色条目永远不会被合并。详见英文 [Preset schema](../../reference/stack-schema.md#context-options)。
33
33
 
34
34
  ## 策略边界
35
35
 
36
- 工具 `allow`/`deny` 会修改 Pi active tools,并在 tool call 时再次检查。具体的 `allow` 列表会从 Pi 的完整已注册工具目录中选择,因此可以启用 stack 激活前处于 inactive 状态的工具;`deny` 只从原 active baseline 中移除工具,`allow: ["*"]` 仍表示不限制且不会启用全部工具。Skill policy 只过滤 pi-forge 渲染给模型的列表;它不能阻止明确调用,也不是安全边界。若必须控制模型可见 skill 列表,请使用 `replace`,因为 Pi 的基础 prompt 可能已经在 `append`/`prepend` 内容之前列出 skills。
36
+ 工具 `allow`/`deny` 会修改 Pi active tools,并在 tool call 时再次检查。具体的 `allow` 列表会从 Pi 的完整已注册工具目录中选择,因此可以启用预设激活前处于 inactive 状态的工具;`deny` 只从原 active baseline 中移除工具,`allow: ["*"]` 仍表示不限制且不会启用全部工具。Skill policy 只过滤 pi-forge 渲染给模型的列表;它不能阻止明确调用,也不是安全边界。若必须控制模型可见 skill 列表,请使用 `replace`,因为 Pi 的基础 prompt 可能已经在 `append`/`prepend` 内容之前列出 skills。
37
37
 
38
38
  ## Scope 与自动启用
39
39
 
40
- - 只有显式设置 `"autoActivate": true` 的 stack 参与自动启用;文件名(包括 `default.json`)没有特殊作用。
41
- - 项目 stack 优先于全局 stack;项目 scope 存在候选时,即使项目候选无效或冲突也会 fail closed,不会回退到全局 stack。
42
- - 同 ID 项目 stack 会遮蔽全局 stack,包括无效 shadow 或显式 opt-out。
40
+ - 只有显式设置 `"autoActivate": true` 的预设参与自动启用;文件名(包括 `default.json`)没有特殊作用。
41
+ - 项目预设优先于全局预设;项目 scope 存在候选时,即使项目候选无效或冲突也会 fail closed,不会回退到全局预设。
42
+ - 同 ID 项目预设会遮蔽全局预设,包括无效 shadow 或显式 opt-out。
43
43
  - `/preset use none` 会记录 session branch 的 opt-out。
44
- - Active stack 选择会跟随 Pi session tree branch。
44
+ - Active Preset 选择会跟随 Pi session tree branch。
45
45
  - 恢复的 branch 状态优先于新 session 自动启用。
46
- - 自动启用的 agent profile 优先于独立 stack autoload。
46
+ - 自动启用的 Agent Profile 优先于独立预设 autoload。
47
47
 
48
48
  完整字段见英文 [stack schema](../../reference/stack-schema.md)(schema v2 使用 `parameters`),模板语法见[参考](../../reference/macros-and-slots.md)。