@opengsd/gsd-pi 1.3.0-dev.65546769 → 1.3.0-dev.eed73bea

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 (183) hide show
  1. package/dist/resources/.managed-resources-content-hash +1 -1
  2. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +11 -2
  3. package/dist/resources/extensions/google-cli/stream-adapter.js +82 -15
  4. package/dist/resources/extensions/gsd/auto/orchestrator.js +12 -3
  5. package/dist/resources/extensions/gsd/auto-dispatch.js +17 -14
  6. package/dist/resources/extensions/gsd/auto-prompts.js +43 -12
  7. package/dist/resources/extensions/gsd/auto-recovery.js +13 -6
  8. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +103 -13
  9. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +6 -1
  10. package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +2 -0
  11. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +8 -3
  12. package/dist/resources/extensions/gsd/bootstrap/system-context.js +46 -19
  13. package/dist/resources/extensions/gsd/bootstrap/tool-call-loop-guard.js +75 -1
  14. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +1 -1
  15. package/dist/resources/extensions/gsd/commands-context.js +19 -1
  16. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +16 -10
  17. package/dist/resources/extensions/gsd/commands-worktree.js +12 -10
  18. package/dist/resources/extensions/gsd/dashboard-overlay.js +32 -3
  19. package/dist/resources/extensions/gsd/db/queries.js +60 -0
  20. package/dist/resources/extensions/gsd/doctor-providers.js +92 -8
  21. package/dist/resources/extensions/gsd/exec-sandbox.js +45 -9
  22. package/dist/resources/extensions/gsd/forensics.js +2 -32
  23. package/dist/resources/extensions/gsd/git-service.js +4 -4
  24. package/dist/resources/extensions/gsd/guided-flow-queue.js +59 -5
  25. package/dist/resources/extensions/gsd/health-widget.js +55 -29
  26. package/dist/resources/extensions/gsd/markdown-renderer.js +6 -2
  27. package/dist/resources/extensions/gsd/memory-consolidation-scanner.js +44 -21
  28. package/dist/resources/extensions/gsd/milestone-implementation-evidence.js +26 -20
  29. package/dist/resources/extensions/gsd/quick.js +45 -2
  30. package/dist/resources/extensions/gsd/session-forensics.js +11 -1
  31. package/dist/resources/extensions/gsd/state-reconciliation/drift/stale-render.js +52 -3
  32. package/dist/resources/extensions/gsd/tools/complete-slice.js +34 -3
  33. package/dist/resources/extensions/gsd/tools/complete-task.js +78 -16
  34. package/dist/resources/extensions/gsd/tools/exec-tool.js +7 -2
  35. package/dist/resources/extensions/gsd/unit-context-composer.js +23 -7
  36. package/dist/resources/extensions/gsd/unit-registry.js +25 -3
  37. package/dist/resources/extensions/gsd/unmerged-milestone-guard.js +33 -3
  38. package/dist/resources/extensions/gsd/validation-block-guard.js +9 -4
  39. package/dist/resources/extensions/gsd/workspace-git-preflight.js +30 -1
  40. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  41. package/dist/web/standalone/.next/BUILD_ID +1 -1
  42. package/dist/web/standalone/.next/app-path-routes-manifest.json +14 -14
  43. package/dist/web/standalone/.next/build-manifest.json +3 -3
  44. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  45. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  46. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  47. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  48. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  51. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  52. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  53. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  55. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  61. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  62. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/index.html +1 -1
  64. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  65. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  66. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  67. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  68. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  69. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  70. package/dist/web/standalone/.next/server/app-paths-manifest.json +14 -14
  71. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  72. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  73. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  74. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  75. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  76. package/dist/web/standalone/.next/static/chunks/{796.e0bdc932325d7e03.js → 796.3976108148518f7d.js} +3 -3
  77. package/dist/web/standalone/.next/static/chunks/{webpack-f46ea08200a0227e.js → webpack-7c1d97e39be2da11.js} +1 -1
  78. package/package.json +1 -1
  79. package/packages/cloud-mcp-gateway/package.json +2 -2
  80. package/packages/contracts/dist/workflow.d.ts +1 -0
  81. package/packages/contracts/dist/workflow.d.ts.map +1 -1
  82. package/packages/contracts/dist/workflow.js +2 -0
  83. package/packages/contracts/dist/workflow.js.map +1 -1
  84. package/packages/contracts/package.json +1 -1
  85. package/packages/daemon/package.json +4 -4
  86. package/packages/gsd-agent-core/package.json +5 -5
  87. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  88. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +21 -9
  89. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  90. package/packages/gsd-agent-modes/package.json +7 -7
  91. package/packages/mcp-server/README.md +1 -1
  92. package/packages/mcp-server/dist/server.d.ts +1 -1
  93. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  94. package/packages/mcp-server/dist/server.js +3 -3
  95. package/packages/mcp-server/dist/server.js.map +1 -1
  96. package/packages/mcp-server/dist/workflow-tools.d.ts +13 -1
  97. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  98. package/packages/mcp-server/dist/workflow-tools.js +34 -20
  99. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  100. package/packages/mcp-server/package.json +4 -4
  101. package/packages/native/package.json +1 -1
  102. package/packages/pi-agent-core/package.json +1 -1
  103. package/packages/pi-ai/package.json +1 -1
  104. package/packages/pi-coding-agent/package.json +7 -7
  105. package/packages/pi-tui/package.json +2 -2
  106. package/packages/rpc-client/package.json +2 -2
  107. package/pkg/package.json +1 -1
  108. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +20 -2
  109. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +80 -0
  110. package/src/resources/extensions/google-cli/stream-adapter.ts +106 -19
  111. package/src/resources/extensions/gsd/auto/orchestrator.ts +25 -11
  112. package/src/resources/extensions/gsd/auto-dispatch.ts +18 -17
  113. package/src/resources/extensions/gsd/auto-prompts.ts +54 -12
  114. package/src/resources/extensions/gsd/auto-recovery.ts +13 -6
  115. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +125 -12
  116. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +6 -1
  117. package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +2 -0
  118. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +9 -3
  119. package/src/resources/extensions/gsd/bootstrap/system-context.ts +52 -18
  120. package/src/resources/extensions/gsd/bootstrap/tool-call-loop-guard.ts +82 -1
  121. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +1 -1
  122. package/src/resources/extensions/gsd/commands-context.ts +18 -1
  123. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +14 -9
  124. package/src/resources/extensions/gsd/commands-worktree.ts +12 -10
  125. package/src/resources/extensions/gsd/dashboard-overlay.ts +32 -3
  126. package/src/resources/extensions/gsd/db/queries.ts +79 -0
  127. package/src/resources/extensions/gsd/doctor-providers.ts +103 -9
  128. package/src/resources/extensions/gsd/exec-sandbox.ts +49 -9
  129. package/src/resources/extensions/gsd/forensics.ts +2 -33
  130. package/src/resources/extensions/gsd/git-service.ts +5 -5
  131. package/src/resources/extensions/gsd/guided-flow-queue.ts +82 -4
  132. package/src/resources/extensions/gsd/health-widget.ts +69 -32
  133. package/src/resources/extensions/gsd/markdown-renderer.ts +6 -1
  134. package/src/resources/extensions/gsd/memory-consolidation-scanner.ts +51 -19
  135. package/src/resources/extensions/gsd/milestone-implementation-evidence.ts +35 -21
  136. package/src/resources/extensions/gsd/quick.ts +43 -2
  137. package/src/resources/extensions/gsd/session-forensics.ts +11 -1
  138. package/src/resources/extensions/gsd/state-reconciliation/drift/stale-render.ts +76 -8
  139. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +111 -1
  140. package/src/resources/extensions/gsd/tests/commands-context.test.ts +26 -0
  141. package/src/resources/extensions/gsd/tests/commands-worktree-clean.test.ts +80 -0
  142. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +11 -0
  143. package/src/resources/extensions/gsd/tests/complete-task-rollback-evidence.test.ts +48 -8
  144. package/src/resources/extensions/gsd/tests/complete-task.test.ts +75 -0
  145. package/src/resources/extensions/gsd/tests/dashboard-overlay.test.ts +55 -2
  146. package/src/resources/extensions/gsd/tests/dispatch-rule-coverage.test.ts +26 -1
  147. package/src/resources/extensions/gsd/tests/doctor-forensics-db-open-regression.test.ts +70 -2
  148. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +107 -0
  149. package/src/resources/extensions/gsd/tests/exec-graceful-kill.test.ts +38 -0
  150. package/src/resources/extensions/gsd/tests/exec-tool.test.ts +45 -1
  151. package/src/resources/extensions/gsd/tests/forensics-error-filter.test.ts +88 -0
  152. package/src/resources/extensions/gsd/tests/guided-discuss-milestone-prompt-rendering.test.ts +42 -0
  153. package/src/resources/extensions/gsd/tests/health-widget.test.ts +268 -3
  154. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +119 -1
  155. package/src/resources/extensions/gsd/tests/integration/queue-active-milestone-context-budget.test.ts +93 -0
  156. package/src/resources/extensions/gsd/tests/integration/quick-branch-lifecycle.test.ts +56 -9
  157. package/src/resources/extensions/gsd/tests/knowledge-cold-start.test.ts +14 -0
  158. package/src/resources/extensions/gsd/tests/memory-consolidation-scanner.test.ts +78 -0
  159. package/src/resources/extensions/gsd/tests/orchestrator-logs.test.ts +43 -1
  160. package/src/resources/extensions/gsd/tests/parallel-research-dispatch.test.ts +26 -0
  161. package/src/resources/extensions/gsd/tests/pipeline-variant-dispatch.test.ts +1 -1
  162. package/src/resources/extensions/gsd/tests/prefs-wizard-coverage.test.ts +54 -1
  163. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +195 -1
  164. package/src/resources/extensions/gsd/tests/read-uat-gate-verdict.test.ts +185 -0
  165. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +87 -0
  166. package/src/resources/extensions/gsd/tests/state-reconciliation-drift.test.ts +76 -0
  167. package/src/resources/extensions/gsd/tests/tool-call-loop-guard.test.ts +68 -0
  168. package/src/resources/extensions/gsd/tests/tool-param-optionality.test.ts +26 -0
  169. package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +193 -14
  170. package/src/resources/extensions/gsd/tests/unmerged-milestone-guard.test.ts +25 -0
  171. package/src/resources/extensions/gsd/tests/validation-block-guard.test.ts +79 -0
  172. package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +66 -0
  173. package/src/resources/extensions/gsd/tests/workspace-git-preflight.test.ts +151 -2
  174. package/src/resources/extensions/gsd/tools/complete-slice.ts +30 -3
  175. package/src/resources/extensions/gsd/tools/complete-task.ts +86 -16
  176. package/src/resources/extensions/gsd/tools/exec-tool.ts +7 -3
  177. package/src/resources/extensions/gsd/unit-context-composer.ts +33 -7
  178. package/src/resources/extensions/gsd/unit-registry.ts +25 -3
  179. package/src/resources/extensions/gsd/unmerged-milestone-guard.ts +41 -5
  180. package/src/resources/extensions/gsd/validation-block-guard.ts +13 -7
  181. package/src/resources/extensions/gsd/workspace-git-preflight.ts +31 -0
  182. /package/dist/web/standalone/.next/static/{BTKtGFF1Y-hvVJEGhBRo9 → SzEuqWX37DR9MEpEuQjP1}/_buildManifest.js +0 -0
  183. /package/dist/web/standalone/.next/static/{BTKtGFF1Y-hvVJEGhBRo9 → SzEuqWX37DR9MEpEuQjP1}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (()=>{"use strict";var e,d,a,f,c,b,t,r,o,n={},i={};function l(e){var d=i[e];if(void 0!==d)return d.exports;var a=i[e]={exports:{}},f=!0;try{n[e].call(a.exports,a,a.exports,l),f=!1}finally{f&&delete i[e]}return a.exports}l.m=n,e=[],l.O=(d,a,f,c)=>{if(a){c=c||0;for(var b=e.length;b>0&&e[b-1][2]>c;b--)e[b]=e[b-1];e[b]=[a,f,c];return}for(var t=1/0,b=0;b<e.length;b++){for(var[a,f,c]=e[b],r=!0,o=0;o<a.length;o++)(!1&c||t>=c)&&Object.keys(l.O).every(e=>l.O[e](a[o]))?a.splice(o--,1):(r=!1,c<t&&(t=c));if(r){e.splice(b--,1);var n=f();void 0!==n&&(d=n)}}return d},l.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return l.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,f){if(1&f&&(e=this(e)),8&f||"object"==typeof e&&e&&(4&f&&e.__esModule||16&f&&"function"==typeof e.then))return e;var c=Object.create(null);l.r(c);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(d=>b[d]=()=>e[d]);return b.default=()=>e,l.d(c,b),c},l.d=(e,d)=>{for(var a in d)l.o(d,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((d,a)=>(l.f[a](e,d),d),[])),l.u=e=>5395===e?"static/chunks/5395-712c8b12d97fd36f.js":"static/chunks/"+(({1077:"3969fbf3",1444:"65aac708",2378:"654b0707",2415:"95b71484",2445:"b07d4d74",4408:"4b0d4931",4432:"2070ac3a",5002:"38a9ebc2",5400:"817dbc02",5745:"762f9c27",5992:"59e88d55",7110:"ff8cc638",7178:"cf3a91ff",8151:"e93892bd"})[e]||e)+"."+({126:"9ba2b9f3bc2decd1",129:"1c38353c1c400672",152:"1cffac9c3e622387",162:"3092aea0f592a5c8",179:"883699416402e239",207:"f66184b363f09cc6",287:"8209489f74af51fc",338:"72226320f355ae45",390:"19e95f0dff471e06",521:"d218eead5637baa4",592:"e0dc54386e138164",597:"687ca88aab4878a8",607:"389356bce0bec389",623:"9d7a30953efb9041",628:"ce453e3867eacdb0",652:"adc4c63df50976d9",655:"af70b892d9ee7ff0",722:"6b0f9ede4792fdb2",743:"e0182df2d265e5d6",760:"22f2b7b4675cc37c",764:"7b85222921596e25",796:"e0bdc932325d7e03",854:"8e11a99837f41820",860:"f5bd652b07d26589",873:"d55eae71db4fdae4",885:"a2eda74573a6b7d5",919:"ca6561eb1b7f14b6",941:"ed6bac59022f3080",945:"63ba715dc6e4fea3",1077:"9b07abe025da44ba",1123:"f7f3ad40134d8e99",1136:"2f76140d08eada66",1153:"048157f0fff9e01e",1206:"9baa9dd13a543ddb",1214:"2056b3a6e6552f7a",1250:"07796cdda0cd2444",1261:"e4d2bba8cd005033",1315:"3d55775d86c54851",1322:"c4c89a279a52df74",1345:"a4cf42ea9b13c909",1351:"7ee94d2f73451e23",1361:"4f4a1888e523849e",1423:"7cad9e54180af25d",1444:"d079243ca36c5ea2",1473:"a6b64091fe87340e",1482:"9689d3f766caf505",1495:"614c12ff10a7e552",1571:"7d29379eb7395921",1669:"6274d62b0b7a0b48",1695:"3bd5062799f8d633",1718:"160d45447ee37ec6",1743:"17835c4ac8e5ccd5",1874:"a76b2f83e3692ed0",1884:"8b25180bb68977e8",1912:"6c18c811ab80a30b",2070:"972cc52aecb08f83",2112:"8ecf08fc933fda55",2216:"bef68d39d583e498",2268:"104fd1e51f9091e9",2310:"573f48b61ab7f1c3",2331:"af7117be987990f3",2338:"a00ee44a19bee4d9",2365:"3d9a40778b3035bc",2378:"673f7e2ed249e9ac",2381:"7801777a8df06b9d",2397:"119f6bec0d803dc9",2415:"cb591d7769c93747",2445:"e34a3c703203c8a1",2474:"f820659ebb687bd5",2510:"24179d76deadadc7",2514:"3272efa11f4cabf5",2546:"1f2445595be11d8c",2598:"1df225a5dcc14011",2599:"bfc3f47c5f83c1cb",2659:"b7b129ee6a769448",2661:"f9009d1618461a73",2686:"fc7ea5c1eee5a2a8",2740:"92d294a92e7d850a",2755:"282d43af08df2f84",2759:"edfe5f37338ad459",2772:"bfa657f49f955239",2780:"02c859ba77180283",2786:"a9688cc5fe6b1c38",2819:"84bfdb28b9c3f9f5",2918:"a2f8d785597a319c",2921:"030672c0326dd867",2930:"40ef631ca72bb6d9",2967:"9216a21dcf13c273",2996:"618f0444a810fe91",3009:"f86fd5262e3248d8",3011:"6b7a2b1cdf640f37",3050:"15d6b994e9ba45f6",3090:"94a59ca356662efa",3096:"1135d2c0caf0226d",3166:"8607f1a8a3e9ce29",3211:"e54601c5020211c0",3225:"ec603e751e9e2675",3238:"eaeace056cf95a31",3271:"675adb98e68d6675",3338:"397da6ca541ffabd",3367:"9ff7dfd30b60f0b9",3459:"b19b5fb587be680c",3475:"31918bc1df82570e",3549:"5fa9a69d3e72cbc5",3565:"97dbecedec5aa86f",3605:"e6efa3efb3ea2838",3606:"c9441114c48a7815",3616:"3c60753b8ffcbd2e",3626:"5941c941868c4fa8",3676:"467ce1e6a1891598",3703:"b38f3e26f586a6aa",3726:"17cdcaae372b7230",3783:"e5bbeed5b0dd959f",3813:"46cde9b866a32a7f",3842:"54fd91b4e63d1012",3859:"b20f5f8e7372b1c7",3876:"614c12ff10a7e552",3903:"b8cf9b1681e071cd",3915:"a9e8cf78d79c6fe8",3957:"19008089a14b9721",4015:"b1bc267728bc0e2e",4017:"cd6aafccbc8a5e12",4033:"45786a60d513a2a1",4046:"48caa601045e2e89",4055:"610fdd174210a882",4084:"b1c0e215bb966f15",4135:"bf2b662e89fa9c68",4221:"a9909c11be2eeb3c",4263:"1ccab47318fedba3",4279:"35af682f7b26217e",4283:"8e446784528ed9dc",4299:"d971e70cc188496c",4310:"85e674ad8ee69a44",4312:"3f57c4272be6993f",4369:"6934f56ee86a8304",4400:"7c5baaa08cb92ee3",4408:"ec26e3162e59e1dd",4432:"4684627aebae47be",4469:"3c155fdefafbeac6",4489:"8e74b0a7841998bb",4500:"75ec698780c458a3",4527:"f98d84e6a3fefd9b",4531:"236d7761b344aa8e",4556:"14611bd48f6e6b1a",4580:"8b21303ba8c17b40",4599:"853e8906611708d8",4605:"3fdedf487b53ad50",4607:"d3a39503f7ada32c",4665:"3126cd18619abaaa",4688:"edb09f1d5243212b",4692:"e94d1622b2a7af47",4735:"15c4dc9989dc0c48",4739:"93da5ac1a266e99c",4745:"3b1cd948aa85140e",4771:"8afee58317ca8820",4785:"c69323ddb2466dd8",4803:"9c22573110c833c2",4804:"1f6298ef85b61a54",4853:"0f266e143041f851",4861:"55f11124e2b01b24",4864:"0a4f49ce4630b8bb",4866:"41b99152f0c51f4b",4872:"16772f4c5aa2b6a7",4912:"4a896e1d83eaa89b",4949:"5dda0f80f5194ff4",4961:"f65af5ad4c40e445",4980:"23b955704d3685ea",5002:"e67f676b4ef0838a",5027:"8337dcfe6eed9b0e",5038:"844d2aa705a41935",5070:"719b31da3890ad9f",5085:"7718342da25f214c",5104:"b878b75861e1b371",5105:"8257972ee4d137cc",5134:"cedbfd63d65c7eeb",5142:"74bc377e596dba8a",5146:"8c2a145b6c08d3f3",5151:"716e0bef5b829eae",5220:"baabab50a7e52b0f",5270:"e4955d0ca95de492",5290:"87c54425f7d924ac",5315:"cca12f675faf2924",5323:"935348720adb1d4b",5331:"0b7d0c72ec8da097",5380:"3a2fe1150cd5cfef",5400:"28b6e9abcbbd2557",5411:"3f8f37be9655e773",5444:"af7e242c7457254f",5504:"2edf0833e947dc1d",5577:"bb3f81f2c408e4c3",5665:"0860090e30838620",5668:"0bd93611a3ff4f2a",5678:"a239c70dc8ec7d8c",5707:"8b562162c503157c",5745:"488b55f511068b38",5782:"e86f388ced29aa87",5826:"a46ecdd1cfe8dabc",5827:"c822e70f3d43bb6c",5941:"e2a61bd1f0fc65fb",5992:"82ae77105fe4dcf3",6051:"0ab65c096f692a42",6060:"e9b71068a93cba84",6063:"194b823374fd9c16",6065:"69030ecc96ee5829",6256:"0024d6cdbdaabb80",6312:"cf845477965a9183",6377:"fff6670a1759c9bb",6416:"f3dfee279b1572cc",6419:"038812086fdebf95",6467:"3a11d073b387ad12",6473:"9e963ae0b1628f43",6478:"697eab7a0fa21e82",6482:"f5ef60e285fa0d1f",6515:"1b82f729a9a0dde5",6559:"5bff64ac811186e1",6666:"f3f23d326569033b",6734:"fc8332529bdf41a1",6808:"643c09c4c01c8290",6841:"b5728e150f722169",6941:"ea8e2c9c71fd2cd0",6962:"112712eec82c5fad",6964:"0662b8072a44a3a6",7007:"7ef64327e1e42a17",7075:"3f7a6832ccc2dbe8",7086:"b713f78c1940ed4f",7110:"e57b30faf568a97e",7170:"16c4c2d8390e7cdf",7178:"5000c510258cf59b",7220:"0d05ce4590e86996",7228:"b3c3c9a814277ca7",7243:"49a137f606af7436",7261:"11dbc0180fbeae09",7262:"af8c8aba42d990fd",7297:"f2e305e4ce4d6702",7369:"5dbdfce41fb966c3",7377:"1a2ecf5a0c739873",7442:"72f474c7a32ffbf2",7471:"1132b103963d5fe4",7483:"f100f7dfce9431da",7553:"bc417df10b98ab1c",7578:"20d5d4e28e5d5a4b",7618:"96a41c270cdeb199",7638:"74b89c0a7bdf1ec8",7649:"9d8449840e323ea6",7672:"044ef970373de035",7684:"b48a9d5a3e104ce9",7686:"0ecda170d92f7c4e",7700:"306f4f14afb8f968",7756:"869b916ffa9b76c2",7781:"81ecc647deef0cca",7782:"61500afd4448c579",7785:"7000da1e2563cbb7",7788:"9b4f158263603eee",7790:"e33b1b03b35fedd6",7821:"2ed1ed0bbba0c7a0",7834:"71cf3c773b7ee0a8",7858:"250d64a985f6e4a7",7881:"a0cb60288b12f49a",7882:"2dfaedf0ae29d207",7905:"42c1464b38b8689c",7908:"b2110aab2c2c875a",7914:"4fb198fb5f5d135f",7915:"eaa5c56a7a6d3cf3",8013:"4f60a29f86748b7f",8029:"0958bda6fa108971",8077:"8f546fac0418c4bb",8114:"d4ae3814aa14ef0d",8135:"375e00a47d8a5268",8141:"57b2214799d878db",8150:"4b423a101d0b144b",8151:"53d0131855c7fa0c",8216:"a8ce0716eb650868",8222:"69f21959d892b776",8230:"19ca527d74bf10ed",8294:"a132a7a174a21659",8297:"ace10997725e096b",8343:"ae355f353bfaaf03",8355:"14bf1e0f561d91d3",8359:"ed1285561fe3ad31",8402:"b0f22d7eef4994ae",8412:"20d56a7d288a956a",8418:"c7c4ddbaadf85f19",8468:"b5657f4c281580a8",8477:"2290b6016a1b17c8",8668:"8896b07da8d7d96d",8705:"5be5ebdc43a9a420",8751:"d0b568b914ffbfa5",8770:"a97126f1f3a9b4e2",8785:"481aa5869991b760",8790:"f19e4db908478e1a",8896:"7e3f3cf029b5db75",8899:"1a8dfdb581aed370",8916:"a9e0829115188fd3",8945:"7b20fc20debe768f",9044:"3187ff246dcd1b78",9046:"1e28d52982f425ef",9052:"a55c33d156aa70f2",9114:"614c12ff10a7e552",9160:"f7deac955caf6a4f",9221:"281cc760f1370692",9293:"9ddf213e52267513",9299:"52c007a28e886ab4",9331:"368ea567d63fdf3c",9339:"1acf9e17e3123140",9386:"452f3e344fcfcb71",9477:"50a92b2b535540b7",9482:"3557a55c151b9921",9503:"768da88f4b56bd52",9504:"bd652590ec1e8283",9510:"8bf1926d9f577451",9519:"4e7fac0240299c0e",9531:"a3c12da2280caaa2",9543:"33777036c8886f6f",9571:"89d2beccb4237857",9572:"ba1ea7694a5b0c21",9579:"0e7f9c150e345f3a",9622:"76af19fdfdf8b510",9635:"e3c114e207c1af16",9646:"896fe7beac2909ce",9684:"ffb5e0e3bcb7df84",9695:"530c0c12a9f06089",9723:"7f9f73336bdf3d88",9731:"a1eaf64717f7fccc",9740:"18d3fff3bcd9452d",9778:"cd22c6d56df0ee93",9840:"05ba47aa17ee6185",9929:"6faefd225ec8d02f",9996:"036f15bb95080f44"})[e]+".js",l.miniCssF=e=>"static/css/659eccb5db697b76.css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),f={},l.l=(e,d,a,c)=>{if(f[e])return void f[e].push(d);if(void 0!==a)for(var b,t,r=document.getElementsByTagName("script"),o=0;o<r.length;o++){var n=r[o];if(n.getAttribute("src")==e||n.getAttribute("data-webpack")=="_N_E:"+a){b=n;break}}b||(t=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,l.nc&&b.setAttribute("nonce",l.nc),b.setAttribute("data-webpack","_N_E:"+a),b.src=l.tu(e)),f[e]=[d];var i=(d,a)=>{b.onerror=b.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach(e=>e(a)),d)return d(a)},s=setTimeout(i.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=i.bind(null,b.onerror),b.onload=i.bind(null,b.onload),t&&document.head.appendChild(b)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),l.tu=e=>l.tt().createScriptURL(e),l.p="/_next/",b={8068:0},l.f.miniCss=(e,d)=>{if(b[e])d.push(b[e]);else 0!==b[e]&&({4825:1})[e]&&d.push(b[e]=new Promise((d,a)=>{var f=l.miniCssF(e),c=l.p+f;if(((e,d)=>{for(var a=document.getElementsByTagName("link"),f=0;f<a.length;f++){var c=a[f],b=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(b===e||b===d))return c}for(var t=document.getElementsByTagName("style"),f=0;f<t.length;f++){var c=t[f],b=c.getAttribute("data-href");if(b===e||b===d)return c}})(f,c))return d();((e,d,a,f)=>{var c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.onerror=c.onload=b=>{if(c.onerror=c.onload=null,"load"===b.type)a();else{var t=b&&("load"===b.type?"missing":b.type),r=b&&b.target&&b.target.href||d,o=Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=t,o.request=r,c.parentNode.removeChild(c),f(o)}},c.href=d;if("function"==typeof _N_E_STYLE_LOAD){var b=c.href,t=c.onload,r=c.onerror;_N_E_STYLE_LOAD(0===b.indexOf(window.location.origin)?new URL(b).pathname:b).then(function(){t&&t.call(c,{type:"load"})},function(){r&&r.call(c,{})})}else document.head.appendChild(c)})(e,c,d,a)}).then(()=>{b[e]=0},d=>{throw delete b[e],d}))},t={8068:0,4337:0},l.f.j=(e,d)=>{var a=l.o(t,e)?t[e]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(4337|4825|8068)$/.test(e))t[e]=0;else{var f=new Promise((d,f)=>a=t[e]=[d,f]);d.push(a[2]=f);var c=l.p+l.u(e),b=Error();l.l(c,d=>{if(l.o(t,e)&&(0!==(a=t[e])&&(t[e]=void 0),a)){var f=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;b.message="Loading chunk "+e+" failed.\n("+f+": "+c+")",b.name="ChunkLoadError",b.type=f,b.request=c,a[1](b)}},"chunk-"+e,e)}},l.O.j=e=>0===t[e],r=(e,d)=>{var a,f,[c,b,r]=d,o=0;if(c.some(e=>0!==t[e])){for(a in b)l.o(b,a)&&(l.m[a]=b[a]);if(r)var n=r(l)}for(e&&e(d);o<c.length;o++)f=c[o],l.o(t,f)&&t[f]&&t[f][0](),t[f]=0;return l.O(n)},(o=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o)),l.nc=void 0})();
1
+ (()=>{"use strict";var e,d,a,f,c,b,t,r,o,n={},i={};function l(e){var d=i[e];if(void 0!==d)return d.exports;var a=i[e]={exports:{}},f=!0;try{n[e].call(a.exports,a,a.exports,l),f=!1}finally{f&&delete i[e]}return a.exports}l.m=n,e=[],l.O=(d,a,f,c)=>{if(a){c=c||0;for(var b=e.length;b>0&&e[b-1][2]>c;b--)e[b]=e[b-1];e[b]=[a,f,c];return}for(var t=1/0,b=0;b<e.length;b++){for(var[a,f,c]=e[b],r=!0,o=0;o<a.length;o++)(!1&c||t>=c)&&Object.keys(l.O).every(e=>l.O[e](a[o]))?a.splice(o--,1):(r=!1,c<t&&(t=c));if(r){e.splice(b--,1);var n=f();void 0!==n&&(d=n)}}return d},l.n=e=>{var d=e&&e.__esModule?()=>e.default:()=>e;return l.d(d,{a:d}),d},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,f){if(1&f&&(e=this(e)),8&f||"object"==typeof e&&e&&(4&f&&e.__esModule||16&f&&"function"==typeof e.then))return e;var c=Object.create(null);l.r(c);var b={};d=d||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~d.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach(d=>b[d]=()=>e[d]);return b.default=()=>e,l.d(c,b),c},l.d=(e,d)=>{for(var a in d)l.o(d,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:d[a]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((d,a)=>(l.f[a](e,d),d),[])),l.u=e=>5395===e?"static/chunks/5395-712c8b12d97fd36f.js":"static/chunks/"+(({1077:"3969fbf3",1444:"65aac708",2378:"654b0707",2415:"95b71484",2445:"b07d4d74",4408:"4b0d4931",4432:"2070ac3a",5002:"38a9ebc2",5400:"817dbc02",5745:"762f9c27",5992:"59e88d55",7110:"ff8cc638",7178:"cf3a91ff",8151:"e93892bd"})[e]||e)+"."+({126:"9ba2b9f3bc2decd1",129:"1c38353c1c400672",152:"1cffac9c3e622387",162:"3092aea0f592a5c8",179:"883699416402e239",207:"f66184b363f09cc6",287:"8209489f74af51fc",338:"72226320f355ae45",390:"19e95f0dff471e06",521:"d218eead5637baa4",592:"e0dc54386e138164",597:"687ca88aab4878a8",607:"389356bce0bec389",623:"9d7a30953efb9041",628:"ce453e3867eacdb0",652:"adc4c63df50976d9",655:"af70b892d9ee7ff0",722:"6b0f9ede4792fdb2",743:"e0182df2d265e5d6",760:"22f2b7b4675cc37c",764:"7b85222921596e25",796:"3976108148518f7d",854:"8e11a99837f41820",860:"f5bd652b07d26589",873:"d55eae71db4fdae4",885:"a2eda74573a6b7d5",919:"ca6561eb1b7f14b6",941:"ed6bac59022f3080",945:"63ba715dc6e4fea3",1077:"9b07abe025da44ba",1123:"f7f3ad40134d8e99",1136:"2f76140d08eada66",1153:"048157f0fff9e01e",1206:"9baa9dd13a543ddb",1214:"2056b3a6e6552f7a",1250:"07796cdda0cd2444",1261:"e4d2bba8cd005033",1315:"3d55775d86c54851",1322:"c4c89a279a52df74",1345:"a4cf42ea9b13c909",1351:"7ee94d2f73451e23",1361:"4f4a1888e523849e",1423:"7cad9e54180af25d",1444:"d079243ca36c5ea2",1473:"a6b64091fe87340e",1482:"9689d3f766caf505",1495:"614c12ff10a7e552",1571:"7d29379eb7395921",1669:"6274d62b0b7a0b48",1695:"3bd5062799f8d633",1718:"160d45447ee37ec6",1743:"17835c4ac8e5ccd5",1874:"a76b2f83e3692ed0",1884:"8b25180bb68977e8",1912:"6c18c811ab80a30b",2070:"972cc52aecb08f83",2112:"8ecf08fc933fda55",2216:"bef68d39d583e498",2268:"104fd1e51f9091e9",2310:"573f48b61ab7f1c3",2331:"af7117be987990f3",2338:"a00ee44a19bee4d9",2365:"3d9a40778b3035bc",2378:"673f7e2ed249e9ac",2381:"7801777a8df06b9d",2397:"119f6bec0d803dc9",2415:"cb591d7769c93747",2445:"e34a3c703203c8a1",2474:"f820659ebb687bd5",2510:"24179d76deadadc7",2514:"3272efa11f4cabf5",2546:"1f2445595be11d8c",2598:"1df225a5dcc14011",2599:"bfc3f47c5f83c1cb",2659:"b7b129ee6a769448",2661:"f9009d1618461a73",2686:"fc7ea5c1eee5a2a8",2740:"92d294a92e7d850a",2755:"282d43af08df2f84",2759:"edfe5f37338ad459",2772:"bfa657f49f955239",2780:"02c859ba77180283",2786:"a9688cc5fe6b1c38",2819:"84bfdb28b9c3f9f5",2918:"a2f8d785597a319c",2921:"030672c0326dd867",2930:"40ef631ca72bb6d9",2967:"9216a21dcf13c273",2996:"618f0444a810fe91",3009:"f86fd5262e3248d8",3011:"6b7a2b1cdf640f37",3050:"15d6b994e9ba45f6",3090:"94a59ca356662efa",3096:"1135d2c0caf0226d",3166:"8607f1a8a3e9ce29",3211:"e54601c5020211c0",3225:"ec603e751e9e2675",3238:"eaeace056cf95a31",3271:"675adb98e68d6675",3338:"397da6ca541ffabd",3367:"9ff7dfd30b60f0b9",3459:"b19b5fb587be680c",3475:"31918bc1df82570e",3549:"5fa9a69d3e72cbc5",3565:"97dbecedec5aa86f",3605:"e6efa3efb3ea2838",3606:"c9441114c48a7815",3616:"3c60753b8ffcbd2e",3626:"5941c941868c4fa8",3676:"467ce1e6a1891598",3703:"b38f3e26f586a6aa",3726:"17cdcaae372b7230",3783:"e5bbeed5b0dd959f",3813:"46cde9b866a32a7f",3842:"54fd91b4e63d1012",3859:"b20f5f8e7372b1c7",3876:"614c12ff10a7e552",3903:"b8cf9b1681e071cd",3915:"a9e8cf78d79c6fe8",3957:"19008089a14b9721",4015:"b1bc267728bc0e2e",4017:"cd6aafccbc8a5e12",4033:"45786a60d513a2a1",4046:"48caa601045e2e89",4055:"610fdd174210a882",4084:"b1c0e215bb966f15",4135:"bf2b662e89fa9c68",4221:"a9909c11be2eeb3c",4263:"1ccab47318fedba3",4279:"35af682f7b26217e",4283:"8e446784528ed9dc",4299:"d971e70cc188496c",4310:"85e674ad8ee69a44",4312:"3f57c4272be6993f",4369:"6934f56ee86a8304",4400:"7c5baaa08cb92ee3",4408:"ec26e3162e59e1dd",4432:"4684627aebae47be",4469:"3c155fdefafbeac6",4489:"8e74b0a7841998bb",4500:"75ec698780c458a3",4527:"f98d84e6a3fefd9b",4531:"236d7761b344aa8e",4556:"14611bd48f6e6b1a",4580:"8b21303ba8c17b40",4599:"853e8906611708d8",4605:"3fdedf487b53ad50",4607:"d3a39503f7ada32c",4665:"3126cd18619abaaa",4688:"edb09f1d5243212b",4692:"e94d1622b2a7af47",4735:"15c4dc9989dc0c48",4739:"93da5ac1a266e99c",4745:"3b1cd948aa85140e",4771:"8afee58317ca8820",4785:"c69323ddb2466dd8",4803:"9c22573110c833c2",4804:"1f6298ef85b61a54",4853:"0f266e143041f851",4861:"55f11124e2b01b24",4864:"0a4f49ce4630b8bb",4866:"41b99152f0c51f4b",4872:"16772f4c5aa2b6a7",4912:"4a896e1d83eaa89b",4949:"5dda0f80f5194ff4",4961:"f65af5ad4c40e445",4980:"23b955704d3685ea",5002:"e67f676b4ef0838a",5027:"8337dcfe6eed9b0e",5038:"844d2aa705a41935",5070:"719b31da3890ad9f",5085:"7718342da25f214c",5104:"b878b75861e1b371",5105:"8257972ee4d137cc",5134:"cedbfd63d65c7eeb",5142:"74bc377e596dba8a",5146:"8c2a145b6c08d3f3",5151:"716e0bef5b829eae",5220:"baabab50a7e52b0f",5270:"e4955d0ca95de492",5290:"87c54425f7d924ac",5315:"cca12f675faf2924",5323:"935348720adb1d4b",5331:"0b7d0c72ec8da097",5380:"3a2fe1150cd5cfef",5400:"28b6e9abcbbd2557",5411:"3f8f37be9655e773",5444:"af7e242c7457254f",5504:"2edf0833e947dc1d",5577:"bb3f81f2c408e4c3",5665:"0860090e30838620",5668:"0bd93611a3ff4f2a",5678:"a239c70dc8ec7d8c",5707:"8b562162c503157c",5745:"488b55f511068b38",5782:"e86f388ced29aa87",5826:"a46ecdd1cfe8dabc",5827:"c822e70f3d43bb6c",5941:"e2a61bd1f0fc65fb",5992:"82ae77105fe4dcf3",6051:"0ab65c096f692a42",6060:"e9b71068a93cba84",6063:"194b823374fd9c16",6065:"69030ecc96ee5829",6256:"0024d6cdbdaabb80",6312:"cf845477965a9183",6377:"fff6670a1759c9bb",6416:"f3dfee279b1572cc",6419:"038812086fdebf95",6467:"3a11d073b387ad12",6473:"9e963ae0b1628f43",6478:"697eab7a0fa21e82",6482:"f5ef60e285fa0d1f",6515:"1b82f729a9a0dde5",6559:"5bff64ac811186e1",6666:"f3f23d326569033b",6734:"fc8332529bdf41a1",6808:"643c09c4c01c8290",6841:"b5728e150f722169",6941:"ea8e2c9c71fd2cd0",6962:"112712eec82c5fad",6964:"0662b8072a44a3a6",7007:"7ef64327e1e42a17",7075:"3f7a6832ccc2dbe8",7086:"b713f78c1940ed4f",7110:"e57b30faf568a97e",7170:"16c4c2d8390e7cdf",7178:"5000c510258cf59b",7220:"0d05ce4590e86996",7228:"b3c3c9a814277ca7",7243:"49a137f606af7436",7261:"11dbc0180fbeae09",7262:"af8c8aba42d990fd",7297:"f2e305e4ce4d6702",7369:"5dbdfce41fb966c3",7377:"1a2ecf5a0c739873",7442:"72f474c7a32ffbf2",7471:"1132b103963d5fe4",7483:"f100f7dfce9431da",7553:"bc417df10b98ab1c",7578:"20d5d4e28e5d5a4b",7618:"96a41c270cdeb199",7638:"74b89c0a7bdf1ec8",7649:"9d8449840e323ea6",7672:"044ef970373de035",7684:"b48a9d5a3e104ce9",7686:"0ecda170d92f7c4e",7700:"306f4f14afb8f968",7756:"869b916ffa9b76c2",7781:"81ecc647deef0cca",7782:"61500afd4448c579",7785:"7000da1e2563cbb7",7788:"9b4f158263603eee",7790:"e33b1b03b35fedd6",7821:"2ed1ed0bbba0c7a0",7834:"71cf3c773b7ee0a8",7858:"250d64a985f6e4a7",7881:"a0cb60288b12f49a",7882:"2dfaedf0ae29d207",7905:"42c1464b38b8689c",7908:"b2110aab2c2c875a",7914:"4fb198fb5f5d135f",7915:"eaa5c56a7a6d3cf3",8013:"4f60a29f86748b7f",8029:"0958bda6fa108971",8077:"8f546fac0418c4bb",8114:"d4ae3814aa14ef0d",8135:"375e00a47d8a5268",8141:"57b2214799d878db",8150:"4b423a101d0b144b",8151:"53d0131855c7fa0c",8216:"a8ce0716eb650868",8222:"69f21959d892b776",8230:"19ca527d74bf10ed",8294:"a132a7a174a21659",8297:"ace10997725e096b",8343:"ae355f353bfaaf03",8355:"14bf1e0f561d91d3",8359:"ed1285561fe3ad31",8402:"b0f22d7eef4994ae",8412:"20d56a7d288a956a",8418:"c7c4ddbaadf85f19",8468:"b5657f4c281580a8",8477:"2290b6016a1b17c8",8668:"8896b07da8d7d96d",8705:"5be5ebdc43a9a420",8751:"d0b568b914ffbfa5",8770:"a97126f1f3a9b4e2",8785:"481aa5869991b760",8790:"f19e4db908478e1a",8896:"7e3f3cf029b5db75",8899:"1a8dfdb581aed370",8916:"a9e0829115188fd3",8945:"7b20fc20debe768f",9044:"3187ff246dcd1b78",9046:"1e28d52982f425ef",9052:"a55c33d156aa70f2",9114:"614c12ff10a7e552",9160:"f7deac955caf6a4f",9221:"281cc760f1370692",9293:"9ddf213e52267513",9299:"52c007a28e886ab4",9331:"368ea567d63fdf3c",9339:"1acf9e17e3123140",9386:"452f3e344fcfcb71",9477:"50a92b2b535540b7",9482:"3557a55c151b9921",9503:"768da88f4b56bd52",9504:"bd652590ec1e8283",9510:"8bf1926d9f577451",9519:"4e7fac0240299c0e",9531:"a3c12da2280caaa2",9543:"33777036c8886f6f",9571:"89d2beccb4237857",9572:"ba1ea7694a5b0c21",9579:"0e7f9c150e345f3a",9622:"76af19fdfdf8b510",9635:"e3c114e207c1af16",9646:"896fe7beac2909ce",9684:"ffb5e0e3bcb7df84",9695:"530c0c12a9f06089",9723:"7f9f73336bdf3d88",9731:"a1eaf64717f7fccc",9740:"18d3fff3bcd9452d",9778:"cd22c6d56df0ee93",9840:"05ba47aa17ee6185",9929:"6faefd225ec8d02f",9996:"036f15bb95080f44"})[e]+".js",l.miniCssF=e=>"static/css/659eccb5db697b76.css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,d)=>Object.prototype.hasOwnProperty.call(e,d),f={},l.l=(e,d,a,c)=>{if(f[e])return void f[e].push(d);if(void 0!==a)for(var b,t,r=document.getElementsByTagName("script"),o=0;o<r.length;o++){var n=r[o];if(n.getAttribute("src")==e||n.getAttribute("data-webpack")=="_N_E:"+a){b=n;break}}b||(t=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,l.nc&&b.setAttribute("nonce",l.nc),b.setAttribute("data-webpack","_N_E:"+a),b.src=l.tu(e)),f[e]=[d];var i=(d,a)=>{b.onerror=b.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),c&&c.forEach(e=>e(a)),d)return d(a)},s=setTimeout(i.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=i.bind(null,b.onerror),b.onload=i.bind(null,b.onload),t&&document.head.appendChild(b)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),l.tu=e=>l.tt().createScriptURL(e),l.p="/_next/",b={8068:0},l.f.miniCss=(e,d)=>{if(b[e])d.push(b[e]);else 0!==b[e]&&({4825:1})[e]&&d.push(b[e]=new Promise((d,a)=>{var f=l.miniCssF(e),c=l.p+f;if(((e,d)=>{for(var a=document.getElementsByTagName("link"),f=0;f<a.length;f++){var c=a[f],b=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(b===e||b===d))return c}for(var t=document.getElementsByTagName("style"),f=0;f<t.length;f++){var c=t[f],b=c.getAttribute("data-href");if(b===e||b===d)return c}})(f,c))return d();((e,d,a,f)=>{var c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.onerror=c.onload=b=>{if(c.onerror=c.onload=null,"load"===b.type)a();else{var t=b&&("load"===b.type?"missing":b.type),r=b&&b.target&&b.target.href||d,o=Error("Loading CSS chunk "+e+" failed.\n("+r+")");o.code="CSS_CHUNK_LOAD_FAILED",o.type=t,o.request=r,c.parentNode.removeChild(c),f(o)}},c.href=d;if("function"==typeof _N_E_STYLE_LOAD){var b=c.href,t=c.onload,r=c.onerror;_N_E_STYLE_LOAD(0===b.indexOf(window.location.origin)?new URL(b).pathname:b).then(function(){t&&t.call(c,{type:"load"})},function(){r&&r.call(c,{})})}else document.head.appendChild(c)})(e,c,d,a)}).then(()=>{b[e]=0},d=>{throw delete b[e],d}))},t={8068:0,4337:0},l.f.j=(e,d)=>{var a=l.o(t,e)?t[e]:void 0;if(0!==a)if(a)d.push(a[2]);else if(/^(4337|4825|8068)$/.test(e))t[e]=0;else{var f=new Promise((d,f)=>a=t[e]=[d,f]);d.push(a[2]=f);var c=l.p+l.u(e),b=Error();l.l(c,d=>{if(l.o(t,e)&&(0!==(a=t[e])&&(t[e]=void 0),a)){var f=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;b.message="Loading chunk "+e+" failed.\n("+f+": "+c+")",b.name="ChunkLoadError",b.type=f,b.request=c,a[1](b)}},"chunk-"+e,e)}},l.O.j=e=>0===t[e],r=(e,d)=>{var a,f,[c,b,r]=d,o=0;if(c.some(e=>0!==t[e])){for(a in b)l.o(b,a)&&(l.m[a]=b[a]);if(r)var n=r(l)}for(e&&e(d);o<c.length;o++)f=c[o],l.o(t,f)&&t[f]&&t[f][0](),t[f]=0;return l.O(n)},(o=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o)),l.nc=void 0})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/gsd-pi",
3
- "version": "1.3.0-dev.65546769",
3
+ "version": "1.3.0-dev.eed73bea",
4
4
  "description": "GSD Pi local-first coding agent",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/cloud-mcp-gateway",
3
- "version": "1.3.0-dev.65546769",
3
+ "version": "1.3.0-dev.eed73bea",
4
4
  "description": "Cloud MCP gateway for brokering remote MCP clients to local GSD runtimes",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@modelcontextprotocol/sdk": "^1.27.1",
32
- "@opengsd/mcp-server": "^1.3.0-dev.65546769",
32
+ "@opengsd/mcp-server": "^1.3.0-dev.eed73bea",
33
33
  "ws": "^8.20.0",
34
34
  "zod": "^4.0.0"
35
35
  },
@@ -7,6 +7,7 @@ export interface WorkflowToolContractMetadata {
7
7
  writePolicy: WorkflowToolWritePolicy;
8
8
  auditEvent: string;
9
9
  }
10
+ export declare const SUMMARY_SAVE_CONTENT_MAX_LENGTH = 50000;
10
11
  export declare const WORKFLOW_TOOL_CONTRACTS: readonly [{
11
12
  readonly canonicalName: "gsd_decision_save";
12
13
  readonly aliases: readonly ["gsd_save_decision"];
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,4BAA4B;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiPwB,CAAC;AAE7D,mJAAmJ;AACnJ,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;AAElG,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhG,eAAO,MAAM,mBAAmB,EAG1B,SAAS,MAAM,EAAE,CAAC;AAExB,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAErC,SAAS,MAAM,EAAE,CAAC;AAEvB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAEjC,SAAS,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,4BAA4B;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiPwB,CAAC;AAE7D,mJAAmJ;AACnJ,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;AAElG,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhG,eAAO,MAAM,mBAAmB,EAG1B,SAAS,MAAM,EAAE,CAAC;AAExB,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAErC,SAAS,MAAM,EAAE,CAAC;AAEvB;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAEjC,SAAS,MAAM,EAAE,CAAC"}
@@ -1,5 +1,7 @@
1
1
  // Project/App: gsd-pi
2
2
  // File Purpose: Canonical workflow MCP tool metadata shared across package boundaries.
3
+ // Bounds single streamed tool arguments so large artifacts are saved incrementally.
4
+ export const SUMMARY_SAVE_CONTENT_MAX_LENGTH = 50_000;
3
5
  export const WORKFLOW_TOOL_CONTRACTS = [
4
6
  {
5
7
  canonicalName: "gsd_decision_save",
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Canonical workflow MCP tool metadata shared across package boundaries.\n\nexport type WorkflowToolWritePolicy = \"read\" | \"write\";\n\nexport interface WorkflowToolContractMetadata {\n\tcanonicalName: string;\n\taliases: readonly string[];\n\tschemaId: string;\n\texecutorId: string;\n\twritePolicy: WorkflowToolWritePolicy;\n\tauditEvent: string;\n}\n\nexport const WORKFLOW_TOOL_CONTRACTS = [\n\t{\n\t\tcanonicalName: \"gsd_decision_save\",\n\t\taliases: [\"gsd_save_decision\"],\n\t\tschemaId: \"workflow.decision.save\",\n\t\texecutorId: \"executeDecisionSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.decision.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_requirement_update\",\n\t\taliases: [\"gsd_update_requirement\"],\n\t\tschemaId: \"workflow.requirement.update\",\n\t\texecutorId: \"executeRequirementUpdate\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.requirement.update\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_requirement_save\",\n\t\taliases: [\"gsd_save_requirement\"],\n\t\tschemaId: \"workflow.requirement.save\",\n\t\texecutorId: \"executeRequirementSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.requirement.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_generate_id\",\n\t\taliases: [\"gsd_generate_milestone_id\"],\n\t\tschemaId: \"workflow.milestone.generate_id\",\n\t\texecutorId: \"executeMilestoneGenerateId\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.milestone.generate_id\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_milestone\",\n\t\taliases: [\"gsd_milestone_plan\"],\n\t\tschemaId: \"workflow.milestone.plan\",\n\t\texecutorId: \"executePlanMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_slice\",\n\t\taliases: [\"gsd_slice_plan\"],\n\t\tschemaId: \"workflow.slice.plan\",\n\t\texecutorId: \"executePlanSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_task\",\n\t\taliases: [\"gsd_task_plan\"],\n\t\tschemaId: \"workflow.task.plan\",\n\t\texecutorId: \"executePlanTask\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_replan_slice\",\n\t\taliases: [\"gsd_slice_replan\"],\n\t\tschemaId: \"workflow.slice.replan\",\n\t\texecutorId: \"executeReplanSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.replan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_slice_complete\",\n\t\taliases: [\"gsd_complete_slice\"],\n\t\tschemaId: \"workflow.slice.complete\",\n\t\texecutorId: \"executeSliceComplete\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_skip_slice\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.slice.skip\",\n\t\texecutorId: \"executeSkipSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.skip\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_complete_milestone\",\n\t\taliases: [\"gsd_milestone_complete\"],\n\t\tschemaId: \"workflow.milestone.complete\",\n\t\texecutorId: \"executeCompleteMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_validate_milestone\",\n\t\taliases: [\"gsd_milestone_validate\"],\n\t\tschemaId: \"workflow.milestone.validate\",\n\t\texecutorId: \"executeValidateMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.validate\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_reassess_roadmap\",\n\t\taliases: [\"gsd_roadmap_reassess\"],\n\t\tschemaId: \"workflow.roadmap.reassess\",\n\t\texecutorId: \"executeReassessRoadmap\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.roadmap.reassess\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_save_gate_result\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.gate.save_result\",\n\t\texecutorId: \"executeSaveGateResult\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.gate.save_result\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_uat_result_save\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.uat.result.save\",\n\t\texecutorId: \"executeUatResultSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.uat.result.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_summary_save\",\n\t\taliases: [\"gsd_save_summary\"],\n\t\tschemaId: \"workflow.summary.save\",\n\t\texecutorId: \"executeSummarySave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.summary.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_task_complete\",\n\t\taliases: [\"gsd_complete_task\"],\n\t\tschemaId: \"workflow.task.complete\",\n\t\texecutorId: \"executeTaskComplete\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_task_reopen\",\n\t\taliases: [\"gsd_reopen_task\"],\n\t\tschemaId: \"workflow.task.reopen\",\n\t\texecutorId: \"executeTaskReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_slice_reopen\",\n\t\taliases: [\"gsd_reopen_slice\"],\n\t\tschemaId: \"workflow.slice.reopen\",\n\t\texecutorId: \"executeSliceReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_reopen\",\n\t\taliases: [\"gsd_reopen_milestone\"],\n\t\tschemaId: \"workflow.milestone.reopen\",\n\t\texecutorId: \"executeMilestoneReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_status\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.milestone.status\",\n\t\texecutorId: \"executeMilestoneStatus\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.milestone.status\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_checkpoint_db\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.database.checkpoint\",\n\t\texecutorId: \"executeCheckpointDb\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.database.checkpoint\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_journal_query\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.journal.query\",\n\t\texecutorId: \"executeJournalQuery\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.journal.query\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_uat_exec\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.uat.exec\",\n\t\texecutorId: \"executeUatExec\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.uat.exec\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_exec\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.exec.run\",\n\t\texecutorId: \"executeGsdExec\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.exec.run\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_exec_search\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.exec.search\",\n\t\texecutorId: \"executeGsdExecSearch\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.exec.search\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_resume\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.resume\",\n\t\texecutorId: \"executeGsdResume\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.resume\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_capture_thought\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.capture_thought\",\n\t\texecutorId: \"executeCaptureThought\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.memory.capture_thought\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_memory_query\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.query\",\n\t\texecutorId: \"executeMemoryQuery\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.memory.query\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_memory_graph\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.graph\",\n\t\texecutorId: \"executeMemoryGraph\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.memory.graph\",\n\t},\n] as const satisfies readonly WorkflowToolContractMetadata[];\n\n/** Literal union of canonical workflow tool names. Typing a name list with this union makes drift from WORKFLOW_TOOL_CONTRACTS a compile error. */\nexport type CanonicalWorkflowToolName = (typeof WORKFLOW_TOOL_CONTRACTS)[number][\"canonicalName\"];\n\n/** Literal union of backwards-compatibility alias names. */\nexport type WorkflowToolAliasName = (typeof WORKFLOW_TOOL_CONTRACTS)[number][\"aliases\"][number];\n\nexport const WORKFLOW_TOOL_NAMES = WORKFLOW_TOOL_CONTRACTS.flatMap((tool) => [\n\ttool.canonicalName,\n\t...tool.aliases,\n]) as readonly string[];\n\n/** Canonical tool names only (excludes backwards-compatibility aliases). */\nexport const CANONICAL_WORKFLOW_TOOL_NAMES = WORKFLOW_TOOL_CONTRACTS.map(\n\t(tool) => tool.canonicalName,\n) as readonly string[];\n\n/**\n * Backwards-compatibility alias names (each forwards to a canonical twin).\n * Callers may exclude these from an advertised tool surface to save tokens —\n * see registerWorkflowTools({ advertiseAliases }).\n */\nexport const WORKFLOW_TOOL_ALIAS_NAMES = WORKFLOW_TOOL_CONTRACTS.flatMap(\n\t(tool) => tool.aliases,\n) as readonly string[];\n"]}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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","sourcesContent":["// Project/App: gsd-pi\n// File Purpose: Canonical workflow MCP tool metadata shared across package boundaries.\n\nexport type WorkflowToolWritePolicy = \"read\" | \"write\";\n\nexport interface WorkflowToolContractMetadata {\n\tcanonicalName: string;\n\taliases: readonly string[];\n\tschemaId: string;\n\texecutorId: string;\n\twritePolicy: WorkflowToolWritePolicy;\n\tauditEvent: string;\n}\n\n// Bounds single streamed tool arguments so large artifacts are saved incrementally.\nexport const SUMMARY_SAVE_CONTENT_MAX_LENGTH = 50_000;\n\nexport const WORKFLOW_TOOL_CONTRACTS = [\n\t{\n\t\tcanonicalName: \"gsd_decision_save\",\n\t\taliases: [\"gsd_save_decision\"],\n\t\tschemaId: \"workflow.decision.save\",\n\t\texecutorId: \"executeDecisionSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.decision.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_requirement_update\",\n\t\taliases: [\"gsd_update_requirement\"],\n\t\tschemaId: \"workflow.requirement.update\",\n\t\texecutorId: \"executeRequirementUpdate\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.requirement.update\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_requirement_save\",\n\t\taliases: [\"gsd_save_requirement\"],\n\t\tschemaId: \"workflow.requirement.save\",\n\t\texecutorId: \"executeRequirementSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.requirement.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_generate_id\",\n\t\taliases: [\"gsd_generate_milestone_id\"],\n\t\tschemaId: \"workflow.milestone.generate_id\",\n\t\texecutorId: \"executeMilestoneGenerateId\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.milestone.generate_id\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_milestone\",\n\t\taliases: [\"gsd_milestone_plan\"],\n\t\tschemaId: \"workflow.milestone.plan\",\n\t\texecutorId: \"executePlanMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_slice\",\n\t\taliases: [\"gsd_slice_plan\"],\n\t\tschemaId: \"workflow.slice.plan\",\n\t\texecutorId: \"executePlanSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_plan_task\",\n\t\taliases: [\"gsd_task_plan\"],\n\t\tschemaId: \"workflow.task.plan\",\n\t\texecutorId: \"executePlanTask\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.plan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_replan_slice\",\n\t\taliases: [\"gsd_slice_replan\"],\n\t\tschemaId: \"workflow.slice.replan\",\n\t\texecutorId: \"executeReplanSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.replan\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_slice_complete\",\n\t\taliases: [\"gsd_complete_slice\"],\n\t\tschemaId: \"workflow.slice.complete\",\n\t\texecutorId: \"executeSliceComplete\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_skip_slice\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.slice.skip\",\n\t\texecutorId: \"executeSkipSlice\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.skip\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_complete_milestone\",\n\t\taliases: [\"gsd_milestone_complete\"],\n\t\tschemaId: \"workflow.milestone.complete\",\n\t\texecutorId: \"executeCompleteMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_validate_milestone\",\n\t\taliases: [\"gsd_milestone_validate\"],\n\t\tschemaId: \"workflow.milestone.validate\",\n\t\texecutorId: \"executeValidateMilestone\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.validate\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_reassess_roadmap\",\n\t\taliases: [\"gsd_roadmap_reassess\"],\n\t\tschemaId: \"workflow.roadmap.reassess\",\n\t\texecutorId: \"executeReassessRoadmap\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.roadmap.reassess\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_save_gate_result\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.gate.save_result\",\n\t\texecutorId: \"executeSaveGateResult\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.gate.save_result\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_uat_result_save\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.uat.result.save\",\n\t\texecutorId: \"executeUatResultSave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.uat.result.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_summary_save\",\n\t\taliases: [\"gsd_save_summary\"],\n\t\tschemaId: \"workflow.summary.save\",\n\t\texecutorId: \"executeSummarySave\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.summary.save\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_task_complete\",\n\t\taliases: [\"gsd_complete_task\"],\n\t\tschemaId: \"workflow.task.complete\",\n\t\texecutorId: \"executeTaskComplete\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.complete\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_task_reopen\",\n\t\taliases: [\"gsd_reopen_task\"],\n\t\tschemaId: \"workflow.task.reopen\",\n\t\texecutorId: \"executeTaskReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.task.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_slice_reopen\",\n\t\taliases: [\"gsd_reopen_slice\"],\n\t\tschemaId: \"workflow.slice.reopen\",\n\t\texecutorId: \"executeSliceReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.slice.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_reopen\",\n\t\taliases: [\"gsd_reopen_milestone\"],\n\t\tschemaId: \"workflow.milestone.reopen\",\n\t\texecutorId: \"executeMilestoneReopen\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.milestone.reopen\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_milestone_status\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.milestone.status\",\n\t\texecutorId: \"executeMilestoneStatus\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.milestone.status\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_checkpoint_db\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.database.checkpoint\",\n\t\texecutorId: \"executeCheckpointDb\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.database.checkpoint\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_journal_query\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.journal.query\",\n\t\texecutorId: \"executeJournalQuery\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.journal.query\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_uat_exec\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.uat.exec\",\n\t\texecutorId: \"executeUatExec\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.uat.exec\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_exec\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.exec.run\",\n\t\texecutorId: \"executeGsdExec\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.exec.run\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_exec_search\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.exec.search\",\n\t\texecutorId: \"executeGsdExecSearch\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.exec.search\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_resume\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.resume\",\n\t\texecutorId: \"executeGsdResume\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.resume\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_capture_thought\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.capture_thought\",\n\t\texecutorId: \"executeCaptureThought\",\n\t\twritePolicy: \"write\",\n\t\tauditEvent: \"workflow.memory.capture_thought\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_memory_query\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.query\",\n\t\texecutorId: \"executeMemoryQuery\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.memory.query\",\n\t},\n\t{\n\t\tcanonicalName: \"gsd_memory_graph\",\n\t\taliases: [],\n\t\tschemaId: \"workflow.memory.graph\",\n\t\texecutorId: \"executeMemoryGraph\",\n\t\twritePolicy: \"read\",\n\t\tauditEvent: \"workflow.memory.graph\",\n\t},\n] as const satisfies readonly WorkflowToolContractMetadata[];\n\n/** Literal union of canonical workflow tool names. Typing a name list with this union makes drift from WORKFLOW_TOOL_CONTRACTS a compile error. */\nexport type CanonicalWorkflowToolName = (typeof WORKFLOW_TOOL_CONTRACTS)[number][\"canonicalName\"];\n\n/** Literal union of backwards-compatibility alias names. */\nexport type WorkflowToolAliasName = (typeof WORKFLOW_TOOL_CONTRACTS)[number][\"aliases\"][number];\n\nexport const WORKFLOW_TOOL_NAMES = WORKFLOW_TOOL_CONTRACTS.flatMap((tool) => [\n\ttool.canonicalName,\n\t...tool.aliases,\n]) as readonly string[];\n\n/** Canonical tool names only (excludes backwards-compatibility aliases). */\nexport const CANONICAL_WORKFLOW_TOOL_NAMES = WORKFLOW_TOOL_CONTRACTS.map(\n\t(tool) => tool.canonicalName,\n) as readonly string[];\n\n/**\n * Backwards-compatibility alias names (each forwards to a canonical twin).\n * Callers may exclude these from an advertised tool surface to save tokens —\n * see registerWorkflowTools({ advertiseAliases }).\n */\nexport const WORKFLOW_TOOL_ALIAS_NAMES = WORKFLOW_TOOL_CONTRACTS.flatMap(\n\t(tool) => tool.aliases,\n) as readonly string[];\n"]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/contracts",
3
- "version": "1.3.0-dev.65546769",
3
+ "version": "1.3.0-dev.eed73bea",
4
4
  "description": "Shared public contracts for GSD workspace boundaries",
5
5
  "license": "MIT",
6
6
  "gsd": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengsd/daemon",
3
- "version": "1.3.0-dev.65546769",
3
+ "version": "1.3.0-dev.eed73bea",
4
4
  "description": "GSD daemon — background process for project monitoring and Discord integration",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -31,9 +31,9 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@anthropic-ai/sdk": "^0.52.0",
34
- "@opengsd/contracts": "^1.3.0-dev.65546769",
35
- "@opengsd/mcp-server": "^1.3.0-dev.65546769",
36
- "@opengsd/rpc-client": "^1.3.0-dev.65546769",
34
+ "@opengsd/contracts": "^1.3.0-dev.eed73bea",
35
+ "@opengsd/mcp-server": "^1.3.0-dev.eed73bea",
36
+ "@opengsd/rpc-client": "^1.3.0-dev.eed73bea",
37
37
  "discord.js": "^14.25.1",
38
38
  "ws": "^8.20.0",
39
39
  "yaml": "^2.8.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gsd/agent-core",
3
- "version": "1.3.0-dev.65546769",
3
+ "version": "1.3.0-dev.eed73bea",
4
4
  "description": "GSD session orchestration layer on top of @gsd/pi-coding-agent",
5
5
  "type": "module",
6
6
  "gsd": {
@@ -25,9 +25,9 @@
25
25
  "test": "node --import ../../src/resources/extensions/gsd/tests/resolve-ts.mjs --experimental-strip-types --test src/*.test.ts src/**/*.test.ts"
26
26
  },
27
27
  "dependencies": {
28
- "@gsd/native": "^1.3.0-dev.65546769",
29
- "@gsd/pi-agent-core": "^1.3.0-dev.65546769",
30
- "@gsd/pi-ai": "^1.3.0-dev.65546769",
31
- "@gsd/pi-coding-agent": "^1.3.0-dev.65546769"
28
+ "@gsd/native": "^1.3.0-dev.eed73bea",
29
+ "@gsd/pi-agent-core": "^1.3.0-dev.eed73bea",
30
+ "@gsd/pi-ai": "^1.3.0-dev.eed73bea",
31
+ "@gsd/pi-coding-agent": "^1.3.0-dev.eed73bea"
32
32
  }
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-controller.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/controllers/chat-controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAiInG,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAc7F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAO1E;AAyBD,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1D;AA2CD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzF;AAiFD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACrD,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC,MAAM,GAAG,SAAS,CAkBpB;AA0HD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ/D;AA6CD,wBAAgB,4BAA4B,CAC3C,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB/C;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAExE;AAgJD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,GAAG;IACvE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,4BAA4B,EAAE,MAAM,GAAG,CAAC;IACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACxD,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,2BAA2B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;IACvD,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,oBAAoB,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,4BAA4B,EAAE,MAAM,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,wBAAwB,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAChD,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgzB7C"}
1
+ {"version":3,"file":"chat-controller.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/controllers/chat-controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAiInG,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAc7F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAO1E;AAyBD,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAK1D;AA2CD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzF;AA6FD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACrD,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC,MAAM,GAAG,SAAS,CAkBpB;AA0HD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ/D;AA6CD,wBAAgB,4BAA4B,CAC3C,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,GACvB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB/C;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAExE;AAgJD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,GAAG;IACvE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,4BAA4B,EAAE,MAAM,GAAG,CAAC;IACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACxD,qBAAqB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IACpD,2BAA2B,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;IACvD,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,oBAAoB,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,4BAA4B,EAAE,MAAM,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,wBAAwB,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAChD,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwzB7C"}
@@ -180,7 +180,7 @@ function isSubTurnTextReplacement(blocks, rendered) {
180
180
  const oldText = (seg.cachedText ?? "").trim();
181
181
  if (!oldText)
182
182
  continue;
183
- const newText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex).trim();
183
+ const newText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex, seg.contentType).trim();
184
184
  if (!newText || newText === oldText)
185
185
  continue;
186
186
  // Streaming growth extends prior text; a new sub-turn replaces it wholesale.
@@ -189,13 +189,19 @@ function isSubTurnTextReplacement(blocks, rendered) {
189
189
  }
190
190
  return null;
191
191
  }
192
- function getTextFromContentBlocks(blocks, startIndex, endIndex) {
192
+ function getTextFromContentBlocks(blocks, startIndex, endIndex, contentType = "text") {
193
193
  const parts = [];
194
194
  for (let i = startIndex; i <= endIndex && i < blocks.length; i++) {
195
195
  const block = blocks[i];
196
- if (block?.type === "text" && typeof block.text === "string" && block.text.trim()) {
196
+ if (contentType === "text" && block?.type === "text" && typeof block.text === "string" && block.text.trim()) {
197
197
  parts.push(block.text.trim());
198
198
  }
199
+ else if (contentType === "thinking"
200
+ && block?.type === "thinking"
201
+ && typeof block.thinking === "string"
202
+ && block.thinking.trim()) {
203
+ parts.push(block.thinking.trim());
204
+ }
199
205
  }
200
206
  return parts.join("\n\n");
201
207
  }
@@ -824,12 +830,14 @@ export async function handleAgentEvent(host, event) {
824
830
  // text-run segment
825
831
  const existing = renderedSegments.find((s) => s.kind === "text-run" && s.startIndex === seg.startIndex && s.contentType === seg.contentType);
826
832
  if (!existing) {
827
- const segmentText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex);
828
- if (shouldSuppressRedundantHandoffText(host.session.messages, segmentText, orphanedSegments, renderedSegments)) {
833
+ const segmentText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex, seg.contentType);
834
+ if (seg.contentType === "text" &&
835
+ shouldSuppressRedundantHandoffText(host.session.messages, segmentText, orphanedSegments, renderedSegments)) {
829
836
  continue;
830
837
  }
831
838
  const comp = new AssistantMessageComponent(undefined, host.hideThinkingBlock, host.getMarkdownThemeWithSettings(), timestampFormat, { startIndex: seg.startIndex, endIndex: seg.endIndex });
832
839
  host.chatContainer.addChild(comp);
840
+ comp.updateContent(host.streamingMessage);
833
841
  markFirstVisibleAssistantOutput(host, seg.contentType, {
834
842
  contentIndex: seg.startIndex,
835
843
  });
@@ -856,8 +864,11 @@ export async function handleAgentEvent(host, event) {
856
864
  seg.endIndex = d.endIndex;
857
865
  seg.component.setRange({ startIndex: seg.startIndex, endIndex: seg.endIndex });
858
866
  }
859
- seg.cachedText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex);
860
- seg.component.updateContent(host.streamingMessage);
867
+ const newText = getTextFromContentBlocks(blocks, seg.startIndex, seg.endIndex, seg.contentType);
868
+ if (newText !== seg.cachedText) {
869
+ seg.cachedText = newText;
870
+ seg.component.updateContent(host.streamingMessage);
871
+ }
861
872
  }
862
873
  }
863
874
  // Keep streamingComponent pointing at the last text-run for message_end compatibility.
@@ -1008,8 +1019,9 @@ export async function handleAgentEvent(host, event) {
1008
1019
  }
1009
1020
  const comp = new AssistantMessageComponent(undefined, host.hideThinkingBlock, host.getMarkdownThemeWithSettings(), timestampFormat, { startIndex: seg.startIndex, endIndex: seg.endIndex });
1010
1021
  comp.updateContent(host.streamingMessage);
1011
- const segmentText = getTextFromContentBlocks(finalBlocks, seg.startIndex, seg.endIndex);
1012
- if (shouldSuppressRedundantHandoffText(host.session.messages, segmentText, orphanedSegments, renderedSegments)) {
1022
+ const segmentText = getTextFromContentBlocks(finalBlocks, seg.startIndex, seg.endIndex, seg.contentType);
1023
+ if (seg.contentType === "text" &&
1024
+ shouldSuppressRedundantHandoffText(host.session.messages, segmentText, orphanedSegments, renderedSegments)) {
1013
1025
  continue;
1014
1026
  }
1015
1027
  host.chatContainer.addChild(comp);