@ikie-dev/cli 9.8.1

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 (2522) hide show
  1. package/.envrc +3 -0
  2. package/.github/CODEOWNERS +16 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.yml +85 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.yml +24 -0
  6. package/.github/ISSUE_TEMPLATE/question.yml +16 -0
  7. package/.github/actions/setup/action.yml +49 -0
  8. package/.github/pull_request_template.md +18 -0
  9. package/.github/release.yml +17 -0
  10. package/.github/workflows/acp-e2e.yml +52 -0
  11. package/.github/workflows/arc-terminal-bench-poc.yml +157 -0
  12. package/.github/workflows/auto-label-pr.yml +90 -0
  13. package/.github/workflows/canary.yml +302 -0
  14. package/.github/workflows/ci.yml +114 -0
  15. package/.github/workflows/close-stale.yml +21 -0
  16. package/.github/workflows/release.yml +288 -0
  17. package/.github/workflows/require-linked-issue.yml +21 -0
  18. package/.github/workflows/stale.yml +32 -0
  19. package/.github/workflows/tui-e2e.yml +52 -0
  20. package/.github/workflows/welcome.yml +21 -0
  21. package/.gitmodules +3 -0
  22. package/.husky/pre-commit +1 -0
  23. package/.ikie/ferments/019f2735-088f-75e4-9a8f-7d7b037c2a59/runtime.json +11 -0
  24. package/.ikie/ferments/019f2735-08b3-70fe-88df-8dd1494f6a8e/runtime.json +11 -0
  25. package/.ikie/ferments/019f2735-08d3-7041-8d5e-a153e2937274/runtime.json +11 -0
  26. package/.ikie/ferments/019f2735-08f8-7591-bf1a-6c1324842331/runtime.json +12 -0
  27. package/.ikie/ferments/019f2735-0913-73d5-82b4-37012a5c1148/runtime.json +11 -0
  28. package/.ikie/ferments/019f2735-0940-76dc-b667-964b9cd9294d/runtime.json +11 -0
  29. package/.ikie/ferments/019f2735-0971-7094-92e3-b8ea4cdb9390/runtime.json +15 -0
  30. package/.ikie/ferments/019f2735-0999-72aa-9727-f6e8c3427ed6/runtime.json +15 -0
  31. package/.ikie/ferments/019f2735-09bf-76dd-88a2-c7e574b45636/runtime.json +15 -0
  32. package/.ikie/ferments/019f2735-09f1-77af-8820-89c0b3b5a182/runtime.json +13 -0
  33. package/.ikie/ferments/019f2735-0a49-77d9-b4c7-5a80bbbbafd9/runtime.json +15 -0
  34. package/.ikie/ferments/019f2735-0a79-73c3-977b-0c9164267b94/runtime.json +15 -0
  35. package/.ikie/ferments/019f2735-0abd-70ba-a794-fbb63fbf23de/runtime.json +11 -0
  36. package/.ikie/ferments/019f2735-0ad6-7079-8576-8fb651b4b698/runtime.json +15 -0
  37. package/.ikie/ferments/019f2735-0b03-70db-b5e5-59b1869aa2dc/runtime.json +15 -0
  38. package/.ikie/ferments/019f2735-0b34-7675-a4ed-39a15333e3b8/runtime.json +15 -0
  39. package/.ikie/ferments/019f2735-0b6c-716e-9f92-c391d6acb6f0/runtime.json +15 -0
  40. package/.ikie/ferments/019f2735-0b90-72be-a60d-3dd4c514d1c3/runtime.json +15 -0
  41. package/.ikie/ferments/019f2735-0baf-72e7-b5c5-99d8533b8343/runtime.json +15 -0
  42. package/.ikie/ferments/019f2735-0bd8-70f8-9d83-1a2b9152a013/runtime.json +15 -0
  43. package/.ikie/ferments/019f2735-0bfa-70de-ad20-7fe8c41b968e/runtime.json +15 -0
  44. package/.ikie/ferments/019f2735-0c26-7246-a2ab-f24f5a76fc5f/runtime.json +15 -0
  45. package/.ikie/ferments/019f2735-0c49-771b-934f-4afdb5664666/runtime.json +11 -0
  46. package/.ikie/ferments/019f2735-0c63-73f8-944e-14d19e69ba41/runtime.json +11 -0
  47. package/.ikie/ferments/019f2735-0c80-772b-8530-2df4d15b9d7a/reviews/phase-phase-1-1.json +63 -0
  48. package/.ikie/ferments/019f2735-0c80-772b-8530-2df4d15b9d7a/runtime.json +17 -0
  49. package/.ikie/ferments/019f2735-0dfc-7551-b147-aa46815027f5/reviews/phase-phase-1-1.json +63 -0
  50. package/.ikie/ferments/019f2735-0dfc-7551-b147-aa46815027f5/runtime.json +17 -0
  51. package/.ikie/ferments/019f2735-0f74-70f6-804c-e4d2145b32e1/runtime.json +11 -0
  52. package/.ikie/ferments/019f2735-1354-7041-854e-e6a577467dd0/runtime.json +11 -0
  53. package/.ikie/ferments/019f2735-1371-749f-8ea9-01f7f8734568/runtime.json +11 -0
  54. package/.ikie/ferments/019f2735-138f-72f2-ba7b-7912ad4cd7b9/runtime.json +11 -0
  55. package/.ikie/ferments/019f2735-13ad-710a-9c4d-38a30a0f4b37/runtime.json +11 -0
  56. package/.ikie/ferments/019f2735-13cb-7698-88c1-890fba497dc0/pending-proposal.json +45 -0
  57. package/.ikie/ferments/019f2735-13da-77dd-a916-8d82348671d2/pending-proposal.json +45 -0
  58. package/.ikie/ferments/019f2735-14d3-727a-81db-347c03cb2919/pending-proposal.json +45 -0
  59. package/.ikie/ferments/019f2735-1521-736e-8b75-22e94a8775f7/pending-proposal.json +45 -0
  60. package/.ikie/ferments/019f2735-1542-777c-a3a7-bc7f1edf1922/pending-proposal.json +45 -0
  61. package/.ikie/ferments/019f2735-3528-75bc-b100-8deb63dfde55/runtime.json +13 -0
  62. package/.ikie/ferments/019f2735-3553-72d8-a60d-9357420e110a/runtime.json +11 -0
  63. package/.ikie/ferments/019f2735-3569-756b-bc90-01c9ab00e413/runtime.json +11 -0
  64. package/.ikie/ferments/019f2735-3583-71d0-83f9-fc40b292190b/runtime.json +11 -0
  65. package/.ikie/ferments/019f2735-3597-7571-8332-47b3443395a6/runtime.json +11 -0
  66. package/.ikie/ferments/019f2735-35b3-74fe-a5db-82651a97cf0d/runtime.json +11 -0
  67. package/.ikie/ferments/019f2735-35de-741a-94e7-7b89c4eaaa43/runtime.json +11 -0
  68. package/.ikie/ferments/019f2735-35f5-713c-9892-f6179e783d02/runtime.json +11 -0
  69. package/.ikie/ferments/019f2735-360d-7056-a5e0-43fb3eb0f98e/runtime.json +9 -0
  70. package/.ikie/ferments/019f2735-362e-756c-b848-34f3c3c4602b/runtime.json +13 -0
  71. package/.ikie/ferments/019f2735-364a-76f9-bfba-ba52ca3852fd/runtime.json +11 -0
  72. package/.ikie/ferments/019f2735-3662-754c-8a88-807a68e0790e/runtime.json +11 -0
  73. package/.ikie/ferments/019f2735-36c2-71f9-a003-2921a1792be1/runtime.json +11 -0
  74. package/.ikie/ferments/019f2735-36d6-751d-9776-1e1def988d2d/runtime.json +9 -0
  75. package/.ikie/ferments/019f2735-36ef-70bf-a6b2-f2a0944f1b7e/runtime.json +9 -0
  76. package/.ikie/ferments/019f2735-3712-77e3-a46e-c69470e4e850/runtime.json +11 -0
  77. package/.ikie/ferments/019f2735-37cf-712f-bfaa-8fc9e29da513/runtime.json +11 -0
  78. package/.ikie/ferments/019f2735-37ed-727a-8a74-fe716d22571d/runtime.json +12 -0
  79. package/.ikie/ferments/019f2735-3810-7370-b587-eef0bb9d4d81/runtime.json +11 -0
  80. package/.ikie/ferments/019f2735-3828-71ad-9ee9-62fa0f46cad7/runtime.json +11 -0
  81. package/.ikie/ferments/019f2735-383f-722b-8d96-5038b9c9aa5a/runtime.json +11 -0
  82. package/.ikie/ferments/019f2735-385a-72c8-b269-a87a416c5a10/runtime.json +11 -0
  83. package/.ikie/ferments/019f2735-386d-73fe-be0a-1bc89a0264c4/runtime.json +13 -0
  84. package/.ikie/ferments/019f2735-388a-7276-9bee-81dcd177953f/runtime.json +11 -0
  85. package/.ikie/ferments/019f2735-82ed-74e8-870d-d8678feaf7bb/reviews/phase-phase-1-1.json +41 -0
  86. package/.ikie/ferments/019f2735-82ed-74e8-870d-d8678feaf7bb/runtime.json +11 -0
  87. package/.ikie/ferments/019f2735-831e-70aa-b9d6-1214165775d0/reviews/phase-phase-1-1.json +47 -0
  88. package/.ikie/ferments/019f2735-831e-70aa-b9d6-1214165775d0/runtime.json +13 -0
  89. package/.ikie/ferments/019f2735-835e-73b3-bb48-2d0080526fc3/reviews/phase-phase-1-1.json +40 -0
  90. package/.ikie/ferments/019f2735-835e-73b3-bb48-2d0080526fc3/runtime.json +9 -0
  91. package/.ikie/ferments/019f2735-8379-74b6-b62f-816bb5276a85/reviews/phase-phase-1-1.json +40 -0
  92. package/.ikie/ferments/019f2735-8379-74b6-b62f-816bb5276a85/runtime.json +9 -0
  93. package/.ikie/ferments/019f2735-8391-7385-bab6-03362866622a/reviews/phase-phase-1-1.json +40 -0
  94. package/.ikie/ferments/019f2735-8391-7385-bab6-03362866622a/runtime.json +9 -0
  95. package/.ikie/ferments/019f2735-83ad-7251-8280-aa6f7f3bfc5e/reviews/phase-phase-1-1.json +40 -0
  96. package/.ikie/ferments/019f2735-83ad-7251-8280-aa6f7f3bfc5e/runtime.json +9 -0
  97. package/.ikie/ferments/019f2735-83d2-77be-984e-fb65263a3a5b/reviews/phase-phase-1-1.json +40 -0
  98. package/.ikie/ferments/019f2735-83d2-77be-984e-fb65263a3a5b/runtime.json +9 -0
  99. package/.ikie/ferments/019f2735-83ec-7743-acc5-b2bf14c3cc54/reviews/phase-phase-1-1.json +62 -0
  100. package/.ikie/ferments/019f2735-83ec-7743-acc5-b2bf14c3cc54/runtime.json +9 -0
  101. package/.ikie/ferments/019f2740-c8c5-720f-b641-214bb99d8a83/runtime.json +11 -0
  102. package/.ikie/ferments/019f2740-c8fb-763f-8310-88c7e558e410/runtime.json +11 -0
  103. package/.ikie/ferments/019f2740-c917-70d2-8be6-15f376c60a70/runtime.json +11 -0
  104. package/.ikie/ferments/019f2740-c984-711f-a903-4b2251918413/runtime.json +12 -0
  105. package/.ikie/ferments/019f2740-ca09-71cf-93a5-86efc136ecd5/runtime.json +11 -0
  106. package/.ikie/ferments/019f2740-ca46-77f4-ae02-88e42f2153fb/runtime.json +15 -0
  107. package/.ikie/ferments/019f2740-ca74-72dd-8855-3feedfa071db/runtime.json +15 -0
  108. package/.ikie/ferments/019f2740-ca9a-710b-9bb7-feffa42cdb36/runtime.json +15 -0
  109. package/.ikie/ferments/019f2740-cac9-7518-ae93-973e4cf364ce/runtime.json +13 -0
  110. package/.ikie/ferments/019f2740-cb04-71c1-83a7-a448fefc6764/runtime.json +15 -0
  111. package/.ikie/ferments/019f2740-cb35-743b-bc18-434c7c233a08/runtime.json +15 -0
  112. package/.ikie/ferments/019f2740-cb6e-742c-970b-1893b4bf4e87/runtime.json +11 -0
  113. package/.ikie/ferments/019f2740-cb92-76a7-bd20-fd4f3f17664f/runtime.json +15 -0
  114. package/.ikie/ferments/019f2740-cbc1-7509-8542-302d2d1d3084/runtime.json +15 -0
  115. package/.ikie/ferments/019f2740-cbfa-719d-94c0-9d03a864e7e1/runtime.json +15 -0
  116. package/.ikie/ferments/019f2740-cc31-75f8-82a0-7d8078979000/runtime.json +15 -0
  117. package/.ikie/ferments/019f2740-cc58-765b-9f0c-c3aa2e09f27b/runtime.json +15 -0
  118. package/.ikie/ferments/019f2740-cc7c-7375-99b4-e90496e819e3/runtime.json +15 -0
  119. package/.ikie/ferments/019f2740-cca3-704a-bc20-e8c35cff6cec/runtime.json +15 -0
  120. package/.ikie/ferments/019f2740-ccd1-71cf-b8e8-be3527117f9a/runtime.json +15 -0
  121. package/.ikie/ferments/019f2740-cd0c-771f-ba4a-9188c31f3ee4/runtime.json +15 -0
  122. package/.ikie/ferments/019f2740-cd39-778e-a052-cc7f522f022d/runtime.json +11 -0
  123. package/.ikie/ferments/019f2740-cd5f-725e-8ec7-48a624398d2f/runtime.json +11 -0
  124. package/.ikie/ferments/019f2740-cd7f-713e-b20f-2321c13a86a8/reviews/phase-phase-1-1.json +63 -0
  125. package/.ikie/ferments/019f2740-cd7f-713e-b20f-2321c13a86a8/runtime.json +17 -0
  126. package/.ikie/ferments/019f2740-cf49-72fc-94b1-a262676c1136/reviews/phase-phase-1-1.json +63 -0
  127. package/.ikie/ferments/019f2740-cf49-72fc-94b1-a262676c1136/runtime.json +17 -0
  128. package/.ikie/ferments/019f2740-d16a-763d-b668-7c7cebc74c16/runtime.json +11 -0
  129. package/.ikie/ferments/019f2740-d675-747d-aa4c-b60d1616d218/runtime.json +11 -0
  130. package/.ikie/ferments/019f2740-d6ad-72de-bab7-e6344d568636/runtime.json +11 -0
  131. package/.ikie/ferments/019f2740-d6db-751a-bf3b-09d1c7ba989b/runtime.json +11 -0
  132. package/.ikie/ferments/019f2740-d712-75c8-b209-efc11bb1a22a/runtime.json +11 -0
  133. package/.ikie/ferments/019f2740-d745-764f-b758-99b0df2d6c01/pending-proposal.json +45 -0
  134. package/.ikie/ferments/019f2740-d76b-74a8-94c1-3d0cabd8cacf/pending-proposal.json +45 -0
  135. package/.ikie/ferments/019f2740-d88d-722b-8265-c8b89e1e59db/pending-proposal.json +45 -0
  136. package/.ikie/ferments/019f2740-d8f6-756a-b704-8a64a28290e8/pending-proposal.json +45 -0
  137. package/.ikie/ferments/019f2740-d90b-730f-87b9-85bee8e00a55/pending-proposal.json +45 -0
  138. package/.ikie/ferments/019f2740-f11f-76ff-9bd0-1e449804cc12/runtime.json +13 -0
  139. package/.ikie/ferments/019f2740-f155-767e-96db-6cf60c8b8dc1/runtime.json +11 -0
  140. package/.ikie/ferments/019f2740-f172-755f-a741-8e55858f5362/runtime.json +11 -0
  141. package/.ikie/ferments/019f2740-f18f-7328-b679-49f91b3c558c/runtime.json +11 -0
  142. package/.ikie/ferments/019f2740-f1b4-7289-b2f3-46f2bedf0e8f/runtime.json +11 -0
  143. package/.ikie/ferments/019f2740-f1dc-769b-bfe1-abcbcfd8ff2f/runtime.json +11 -0
  144. package/.ikie/ferments/019f2740-f1ed-760b-91dc-3bf7950fc112/runtime.json +11 -0
  145. package/.ikie/ferments/019f2740-f1fd-72dd-9c40-e6ab17b819ef/runtime.json +11 -0
  146. package/.ikie/ferments/019f2740-f23d-7588-95af-66be8cae9529/runtime.json +9 -0
  147. package/.ikie/ferments/019f2740-f269-7334-9c82-6554d9fc595a/runtime.json +13 -0
  148. package/.ikie/ferments/019f2740-f2bf-7147-9e68-cd8cb74d1604/runtime.json +11 -0
  149. package/.ikie/ferments/019f2740-f2f3-73db-9542-23a91c3632e5/runtime.json +11 -0
  150. package/.ikie/ferments/019f2740-f387-77e6-99f2-7cabb6f1ef37/runtime.json +11 -0
  151. package/.ikie/ferments/019f2740-f3af-722d-92a8-b49ab2e974fd/runtime.json +9 -0
  152. package/.ikie/ferments/019f2740-f3e6-7142-870c-ec1ee626cef4/runtime.json +9 -0
  153. package/.ikie/ferments/019f2740-f408-74f3-b1a2-3187af4e7bf8/runtime.json +11 -0
  154. package/.ikie/ferments/019f2740-f535-7419-8dc5-3c00bfeb566e/runtime.json +11 -0
  155. package/.ikie/ferments/019f2740-f546-7749-b0bd-cc0ec724f9c4/runtime.json +12 -0
  156. package/.ikie/ferments/019f2740-f576-7649-a468-cc473a719123/runtime.json +11 -0
  157. package/.ikie/ferments/019f2740-f599-7239-aa50-4bde87b6fe17/runtime.json +11 -0
  158. package/.ikie/ferments/019f2740-f5b8-7236-9b88-a0abe214d6b6/runtime.json +11 -0
  159. package/.ikie/ferments/019f2740-f5d1-73fc-9eea-06cf527069f2/runtime.json +11 -0
  160. package/.ikie/ferments/019f2740-f5fb-757e-b89e-52aeb00d53a0/runtime.json +13 -0
  161. package/.ikie/ferments/019f2740-f616-7770-96df-c4d02e293b96/runtime.json +11 -0
  162. package/.ikie/ferments/019f2741-09b2-777a-960c-544786151af2/reviews/phase-phase-1-1.json +41 -0
  163. package/.ikie/ferments/019f2741-09b2-777a-960c-544786151af2/runtime.json +11 -0
  164. package/.ikie/ferments/019f2741-0a0a-735a-b158-6a1f99b53082/reviews/phase-phase-1-1.json +47 -0
  165. package/.ikie/ferments/019f2741-0a0a-735a-b158-6a1f99b53082/runtime.json +13 -0
  166. package/.ikie/ferments/019f2741-0a87-74ec-bcb1-e88127e8739b/reviews/phase-phase-1-1.json +40 -0
  167. package/.ikie/ferments/019f2741-0a87-74ec-bcb1-e88127e8739b/runtime.json +9 -0
  168. package/.ikie/ferments/019f2741-0aaa-7399-905b-0c8f62000e15/reviews/phase-phase-1-1.json +40 -0
  169. package/.ikie/ferments/019f2741-0aaa-7399-905b-0c8f62000e15/runtime.json +9 -0
  170. package/.ikie/ferments/019f2741-0acc-7062-86e9-0d2d365446d9/reviews/phase-phase-1-1.json +40 -0
  171. package/.ikie/ferments/019f2741-0acc-7062-86e9-0d2d365446d9/runtime.json +9 -0
  172. package/.ikie/ferments/019f2741-0b14-709e-a5aa-80efb5a3c7d7/reviews/phase-phase-1-1.json +40 -0
  173. package/.ikie/ferments/019f2741-0b14-709e-a5aa-80efb5a3c7d7/runtime.json +9 -0
  174. package/.ikie/ferments/019f2741-0b3d-77ed-bdd9-322103b094e2/reviews/phase-phase-1-1.json +40 -0
  175. package/.ikie/ferments/019f2741-0b3d-77ed-bdd9-322103b094e2/runtime.json +9 -0
  176. package/.ikie/ferments/019f2741-0b7b-70ab-b3d6-ada61a3e0a92/reviews/phase-phase-1-1.json +62 -0
  177. package/.ikie/ferments/019f2741-0b7b-70ab-b3d6-ada61a3e0a92/runtime.json +9 -0
  178. package/.ikie/ferments/019f2742-b177-74a8-90f2-c1130a6ddae7/runtime.json +11 -0
  179. package/.ikie/ferments/019f2742-b193-72cf-9826-86ede671e061/runtime.json +11 -0
  180. package/.ikie/ferments/019f2742-b1af-76d9-972c-b67a2f5854d1/runtime.json +11 -0
  181. package/.ikie/ferments/019f2742-b1de-763e-8e31-a14505f9b64d/runtime.json +12 -0
  182. package/.ikie/ferments/019f2742-b25b-71fe-81de-89fc3b431b39/runtime.json +11 -0
  183. package/.ikie/ferments/019f2742-b291-7078-ba58-d4b50df3dd81/runtime.json +15 -0
  184. package/.ikie/ferments/019f2742-b2db-71a8-9d5d-da4bccc3e572/runtime.json +15 -0
  185. package/.ikie/ferments/019f2742-b305-7323-86c6-39adaa181f18/runtime.json +15 -0
  186. package/.ikie/ferments/019f2742-b330-77ad-9315-8ca801c973e8/runtime.json +13 -0
  187. package/.ikie/ferments/019f2742-b377-703f-9781-394729f9fe89/runtime.json +15 -0
  188. package/.ikie/ferments/019f2742-b3af-75aa-9bb7-750cb6af56e4/runtime.json +15 -0
  189. package/.ikie/ferments/019f2742-b3fb-7159-a969-be0073f90b6d/runtime.json +11 -0
  190. package/.ikie/ferments/019f2742-b41a-730e-ae6e-89421276e69d/runtime.json +15 -0
  191. package/.ikie/ferments/019f2742-b44e-75ec-824c-f6b77f643438/runtime.json +15 -0
  192. package/.ikie/ferments/019f2742-b47d-70c6-af2f-04922c1aef02/runtime.json +15 -0
  193. package/.ikie/ferments/019f2742-b4ad-748b-86db-3c8ae8907dbc/runtime.json +15 -0
  194. package/.ikie/ferments/019f2742-b4d5-72ff-a1b0-0da356ab94e6/runtime.json +15 -0
  195. package/.ikie/ferments/019f2742-b508-71fd-8181-7bb013178e5e/runtime.json +15 -0
  196. package/.ikie/ferments/019f2742-b536-7129-8b5c-2e132b38a98e/runtime.json +15 -0
  197. package/.ikie/ferments/019f2742-b55d-738b-8663-88a05c1e44b5/runtime.json +15 -0
  198. package/.ikie/ferments/019f2742-b587-714c-b043-f0a553a22404/runtime.json +15 -0
  199. package/.ikie/ferments/019f2742-b5b5-74ff-a850-a24ff317c1df/runtime.json +11 -0
  200. package/.ikie/ferments/019f2742-b5f5-72ba-b6b8-a4d62df39a2c/runtime.json +11 -0
  201. package/.ikie/ferments/019f2742-b621-7530-8e63-d252ae47ffd6/reviews/phase-phase-1-1.json +63 -0
  202. package/.ikie/ferments/019f2742-b621-7530-8e63-d252ae47ffd6/runtime.json +17 -0
  203. package/.ikie/ferments/019f2742-b7c0-756d-8014-e96fec9713ee/reviews/phase-phase-1-1.json +63 -0
  204. package/.ikie/ferments/019f2742-b7c0-756d-8014-e96fec9713ee/runtime.json +17 -0
  205. package/.ikie/ferments/019f2742-b95b-76bb-a4a6-e5cc31788fe3/runtime.json +11 -0
  206. package/.ikie/ferments/019f2742-be6b-759b-ba34-29d0245dc929/runtime.json +11 -0
  207. package/.ikie/ferments/019f2742-be98-73ba-aac5-07ad4f7d887d/runtime.json +11 -0
  208. package/.ikie/ferments/019f2742-beba-703c-aadb-32c590404bfa/runtime.json +11 -0
  209. package/.ikie/ferments/019f2742-bee0-76ad-9e47-81cff634877f/runtime.json +11 -0
  210. package/.ikie/ferments/019f2742-bf10-742f-a792-7aa3836d81ad/pending-proposal.json +45 -0
  211. package/.ikie/ferments/019f2742-bf36-779c-b126-2ccb8ec97138/pending-proposal.json +45 -0
  212. package/.ikie/ferments/019f2742-c098-74ee-9a07-575f50989d9f/pending-proposal.json +45 -0
  213. package/.ikie/ferments/019f2742-c135-74fe-aefa-d1a5db536132/pending-proposal.json +45 -0
  214. package/.ikie/ferments/019f2742-c19a-779c-a175-27330932470d/pending-proposal.json +45 -0
  215. package/.ikie/ferments/019f2742-db2a-745f-b7c8-8fb383e044e7/runtime.json +13 -0
  216. package/.ikie/ferments/019f2742-db83-77ac-b1d2-a422571fbcf6/runtime.json +11 -0
  217. package/.ikie/ferments/019f2742-dba7-779e-9560-7df90ddab3c4/runtime.json +11 -0
  218. package/.ikie/ferments/019f2742-dbd2-740c-9f94-9f313c07ee52/runtime.json +11 -0
  219. package/.ikie/ferments/019f2742-dbfb-77b3-8e3f-b0d20bd29689/runtime.json +11 -0
  220. package/.ikie/ferments/019f2742-dc10-769d-b9a2-bab4851f5cf5/runtime.json +11 -0
  221. package/.ikie/ferments/019f2742-dc23-7235-a215-8b86d261566a/runtime.json +11 -0
  222. package/.ikie/ferments/019f2742-dc37-762d-a5da-87ff3f2206b0/runtime.json +11 -0
  223. package/.ikie/ferments/019f2742-dc65-73c8-aa07-f803b1066c8b/runtime.json +9 -0
  224. package/.ikie/ferments/019f2742-dc91-7165-bbfe-4659f754c4a6/runtime.json +13 -0
  225. package/.ikie/ferments/019f2742-dcd1-7252-ad9b-12c0dab633e6/runtime.json +11 -0
  226. package/.ikie/ferments/019f2742-dceb-75ba-b8cb-557e60aa4a9b/runtime.json +11 -0
  227. package/.ikie/ferments/019f2742-dd2f-77a6-b71c-a9543ac1145f/runtime.json +11 -0
  228. package/.ikie/ferments/019f2742-dd6a-70ab-aff3-ae678e8be52f/runtime.json +9 -0
  229. package/.ikie/ferments/019f2742-dd85-7529-90c0-2cb497df7711/runtime.json +9 -0
  230. package/.ikie/ferments/019f2742-dda0-715e-ae24-693bfa79f191/runtime.json +11 -0
  231. package/.ikie/ferments/019f2742-deb9-7319-9599-d96743413a8c/runtime.json +11 -0
  232. package/.ikie/ferments/019f2742-dee3-705e-9550-b7701bc8dfbf/runtime.json +12 -0
  233. package/.ikie/ferments/019f2742-df10-71bf-8ac0-8e4a8c40cfa8/runtime.json +11 -0
  234. package/.ikie/ferments/019f2742-df29-735f-817c-2819becd5092/runtime.json +11 -0
  235. package/.ikie/ferments/019f2742-df46-7592-b070-7bdf50095ce2/runtime.json +11 -0
  236. package/.ikie/ferments/019f2742-df66-75e4-9926-4d5dacd457f4/runtime.json +11 -0
  237. package/.ikie/ferments/019f2742-df96-71c4-973e-045dc4f272e0/runtime.json +13 -0
  238. package/.ikie/ferments/019f2742-dfca-7353-bfd3-f010ec0726e8/runtime.json +11 -0
  239. package/.ikie/ferments/019f2742-f0fb-77cb-9a95-25a7231702b7/reviews/phase-phase-1-1.json +41 -0
  240. package/.ikie/ferments/019f2742-f0fb-77cb-9a95-25a7231702b7/runtime.json +11 -0
  241. package/.ikie/ferments/019f2742-f145-77ec-a4c7-fafd1605d492/reviews/phase-phase-1-1.json +47 -0
  242. package/.ikie/ferments/019f2742-f145-77ec-a4c7-fafd1605d492/runtime.json +13 -0
  243. package/.ikie/ferments/019f2742-f1dc-74bd-8452-067d9c1b909d/reviews/phase-phase-1-1.json +40 -0
  244. package/.ikie/ferments/019f2742-f1dc-74bd-8452-067d9c1b909d/runtime.json +9 -0
  245. package/.ikie/ferments/019f2742-f1fd-745d-b989-9a2d3ec7594d/reviews/phase-phase-1-1.json +40 -0
  246. package/.ikie/ferments/019f2742-f1fd-745d-b989-9a2d3ec7594d/runtime.json +9 -0
  247. package/.ikie/ferments/019f2742-f21a-7398-9190-8bba01c6248e/reviews/phase-phase-1-1.json +40 -0
  248. package/.ikie/ferments/019f2742-f21a-7398-9190-8bba01c6248e/runtime.json +9 -0
  249. package/.ikie/ferments/019f2742-f23a-73b1-89d2-1272093e6d2d/reviews/phase-phase-1-1.json +40 -0
  250. package/.ikie/ferments/019f2742-f23a-73b1-89d2-1272093e6d2d/runtime.json +9 -0
  251. package/.ikie/ferments/019f2742-f25c-74d1-80b3-129a992edd3f/reviews/phase-phase-1-1.json +40 -0
  252. package/.ikie/ferments/019f2742-f25c-74d1-80b3-129a992edd3f/runtime.json +9 -0
  253. package/.ikie/ferments/019f2742-f285-708d-bdd2-c2875cc16158/reviews/phase-phase-1-1.json +62 -0
  254. package/.ikie/ferments/019f2742-f285-708d-bdd2-c2875cc16158/runtime.json +9 -0
  255. package/.ikie/ferments/019f2745-3a6e-7769-8da0-1994b591349d/runtime.json +11 -0
  256. package/.ikie/ferments/019f2745-3a8c-74db-bd6b-b4a1164b381a/runtime.json +11 -0
  257. package/.ikie/ferments/019f2745-3aad-7249-b742-f1e6722d5c97/runtime.json +11 -0
  258. package/.ikie/ferments/019f2745-3ae9-76fb-861c-49f13c1db883/runtime.json +12 -0
  259. package/.ikie/ferments/019f2745-3b16-721b-b523-469846e0c9e5/runtime.json +11 -0
  260. package/.ikie/ferments/019f2745-3b53-7119-ae88-20cf3d567e91/runtime.json +11 -0
  261. package/.ikie/ferments/019f2745-3ba2-71b6-9fab-faaf750f8535/runtime.json +15 -0
  262. package/.ikie/ferments/019f2745-3bed-764b-9b4b-79b4d7daa35d/runtime.json +15 -0
  263. package/.ikie/ferments/019f2745-3c3e-7792-8df7-d88bab7aa48d/runtime.json +15 -0
  264. package/.ikie/ferments/019f2745-3c81-770d-bcf9-6d163ffeb285/runtime.json +13 -0
  265. package/.ikie/ferments/019f2745-3cca-748d-9740-8c55644c9afa/runtime.json +15 -0
  266. package/.ikie/ferments/019f2745-3d12-71cc-923f-520142ddf544/runtime.json +15 -0
  267. package/.ikie/ferments/019f2745-3d79-7083-8865-8f54989080e0/runtime.json +11 -0
  268. package/.ikie/ferments/019f2745-3da9-74f9-a640-86b4685f40a0/runtime.json +15 -0
  269. package/.ikie/ferments/019f2745-3ddf-721b-8a40-3a2318b6bc0a/runtime.json +15 -0
  270. package/.ikie/ferments/019f2745-3e2a-76a8-8c61-ef15db41aef2/runtime.json +15 -0
  271. package/.ikie/ferments/019f2745-3e5d-75bb-ab71-b4aa83c491b7/runtime.json +15 -0
  272. package/.ikie/ferments/019f2745-3e7e-7437-848a-100463c72f90/runtime.json +15 -0
  273. package/.ikie/ferments/019f2745-3ea7-7729-9000-7874145f4bb5/runtime.json +15 -0
  274. package/.ikie/ferments/019f2745-3ecf-760c-931c-3dc5996b06b1/runtime.json +15 -0
  275. package/.ikie/ferments/019f2745-3f05-72d8-ad71-d1df02c5939a/runtime.json +15 -0
  276. package/.ikie/ferments/019f2745-3f37-74ad-9e02-6e0d3854b664/runtime.json +15 -0
  277. package/.ikie/ferments/019f2745-3f65-740d-8094-58f60c9cdcec/runtime.json +11 -0
  278. package/.ikie/ferments/019f2745-3f91-7219-8eec-f5f7873a434a/runtime.json +11 -0
  279. package/.ikie/ferments/019f2745-3fc5-706a-8188-5a3b4e13a796/reviews/phase-phase-1-1.json +63 -0
  280. package/.ikie/ferments/019f2745-3fc5-706a-8188-5a3b4e13a796/runtime.json +17 -0
  281. package/.ikie/ferments/019f2745-417c-77ad-bdaf-380b81846577/reviews/phase-phase-1-1.json +63 -0
  282. package/.ikie/ferments/019f2745-417c-77ad-bdaf-380b81846577/runtime.json +17 -0
  283. package/.ikie/ferments/019f2745-4372-72ff-a50c-3eaad36a726b/runtime.json +11 -0
  284. package/.ikie/ferments/019f2745-4859-714b-a8b7-0a82d35b87c7/runtime.json +11 -0
  285. package/.ikie/ferments/019f2745-488a-724f-91a9-d621e9f2b3f7/runtime.json +11 -0
  286. package/.ikie/ferments/019f2745-48ae-7741-8598-03ede47b4594/runtime.json +11 -0
  287. package/.ikie/ferments/019f2745-48e9-710f-889b-e88aa5d7e60e/runtime.json +11 -0
  288. package/.ikie/ferments/019f2745-4917-7268-9b76-f8bb1215ea19/pending-proposal.json +45 -0
  289. package/.ikie/ferments/019f2745-493c-775d-a10d-4a2cf8305a4e/pending-proposal.json +45 -0
  290. package/.ikie/ferments/019f2745-4abd-7319-9e11-4b348ab24547/pending-proposal.json +45 -0
  291. package/.ikie/ferments/019f2745-4b10-726d-ad1f-c086e7d4dfc0/pending-proposal.json +45 -0
  292. package/.ikie/ferments/019f2745-4b21-75a6-b151-472f4eb9b95d/pending-proposal.json +45 -0
  293. package/.ikie/ferments/019f2745-5dd5-741b-85e2-1d67ce09a138/runtime.json +13 -0
  294. package/.ikie/ferments/019f2745-5e14-73dd-bd03-3b5765f70fac/runtime.json +11 -0
  295. package/.ikie/ferments/019f2745-5e2e-70b5-9348-35ebbdb8ec8e/runtime.json +11 -0
  296. package/.ikie/ferments/019f2745-5e4f-7626-b075-6b6d30099847/runtime.json +11 -0
  297. package/.ikie/ferments/019f2745-5e71-7768-b436-e739555f1038/runtime.json +11 -0
  298. package/.ikie/ferments/019f2745-5e8a-77c5-ba98-cb2802c55266/runtime.json +11 -0
  299. package/.ikie/ferments/019f2745-5ea8-707f-b034-9c98e6ca720b/runtime.json +11 -0
  300. package/.ikie/ferments/019f2745-5ebd-73aa-a919-150c9bb014f9/runtime.json +11 -0
  301. package/.ikie/ferments/019f2745-5ed6-71e9-9a20-360fa807f598/runtime.json +9 -0
  302. package/.ikie/ferments/019f2745-5ef8-7199-bd13-69b5c883541b/runtime.json +13 -0
  303. package/.ikie/ferments/019f2745-5f30-73f9-a647-9e7518599c32/runtime.json +11 -0
  304. package/.ikie/ferments/019f2745-5f53-7358-897a-37717d64d996/runtime.json +11 -0
  305. package/.ikie/ferments/019f2745-5fb6-736b-b42d-bbc3c1916321/runtime.json +11 -0
  306. package/.ikie/ferments/019f2745-5fea-730e-b57b-d7f1965d5934/runtime.json +9 -0
  307. package/.ikie/ferments/019f2745-6014-77cb-b01f-d93baf8af409/runtime.json +9 -0
  308. package/.ikie/ferments/019f2745-602f-74b9-8eed-bb29fa4a76d4/runtime.json +11 -0
  309. package/.ikie/ferments/019f2745-60e2-7562-8e7c-2ded6cf75426/runtime.json +11 -0
  310. package/.ikie/ferments/019f2745-6114-703e-ac05-5ba11b255b62/runtime.json +12 -0
  311. package/.ikie/ferments/019f2745-6160-733e-93f5-df586c6afc0a/runtime.json +11 -0
  312. package/.ikie/ferments/019f2745-6179-702b-84fb-09bc60f8c04c/runtime.json +11 -0
  313. package/.ikie/ferments/019f2745-618d-74dc-a174-28a134d353fa/runtime.json +11 -0
  314. package/.ikie/ferments/019f2745-619e-72a8-8377-34127bfc774f/runtime.json +11 -0
  315. package/.ikie/ferments/019f2745-61ae-767e-8a2e-a5ca6bc84a88/runtime.json +13 -0
  316. package/.ikie/ferments/019f2745-61c7-760c-9914-a9bf3c96acd8/runtime.json +11 -0
  317. package/.ikie/ferments/019f2745-79a2-70b8-bcd0-fbaee13849db/reviews/phase-phase-1-1.json +41 -0
  318. package/.ikie/ferments/019f2745-79a2-70b8-bcd0-fbaee13849db/runtime.json +11 -0
  319. package/.ikie/ferments/019f2745-79e7-74d5-b867-e23b027a8512/reviews/phase-phase-1-1.json +47 -0
  320. package/.ikie/ferments/019f2745-79e7-74d5-b867-e23b027a8512/runtime.json +13 -0
  321. package/.ikie/ferments/019f2745-7a5b-703e-999e-dd5cb98133eb/reviews/phase-phase-1-1.json +40 -0
  322. package/.ikie/ferments/019f2745-7a5b-703e-999e-dd5cb98133eb/runtime.json +9 -0
  323. package/.ikie/ferments/019f2745-7a90-732a-b09a-9aa29e2390cd/reviews/phase-phase-1-1.json +40 -0
  324. package/.ikie/ferments/019f2745-7a90-732a-b09a-9aa29e2390cd/runtime.json +9 -0
  325. package/.ikie/ferments/019f2745-7aad-731c-ac2a-cf71d20fb709/reviews/phase-phase-1-1.json +40 -0
  326. package/.ikie/ferments/019f2745-7aad-731c-ac2a-cf71d20fb709/runtime.json +9 -0
  327. package/.ikie/ferments/019f2745-7ad2-70ff-986b-83679208066a/reviews/phase-phase-1-1.json +40 -0
  328. package/.ikie/ferments/019f2745-7ad2-70ff-986b-83679208066a/runtime.json +9 -0
  329. package/.ikie/ferments/019f2745-7af8-735c-8200-f49b201f5b7f/reviews/phase-phase-1-1.json +40 -0
  330. package/.ikie/ferments/019f2745-7af8-735c-8200-f49b201f5b7f/runtime.json +9 -0
  331. package/.ikie/ferments/019f2745-7b17-7489-b4d5-b83e4feeb641/reviews/phase-phase-1-1.json +62 -0
  332. package/.ikie/ferments/019f2745-7b17-7489-b4d5-b83e4feeb641/runtime.json +9 -0
  333. package/.ikie/ferments/019f2747-700f-77dd-8fec-eec70eb204bf/runtime.json +11 -0
  334. package/.ikie/ferments/019f2747-702b-748d-83a8-a44d909b5d84/runtime.json +11 -0
  335. package/.ikie/ferments/019f2747-704a-77c6-a068-5eff8527f149/runtime.json +11 -0
  336. package/.ikie/ferments/019f2747-7075-7628-9088-9c79d85087be/runtime.json +12 -0
  337. package/.ikie/ferments/019f2747-70e4-7157-aa37-d8201f07134a/runtime.json +11 -0
  338. package/.ikie/ferments/019f2747-7139-74da-8f85-02b76ecfc932/runtime.json +15 -0
  339. package/.ikie/ferments/019f2747-7156-762f-8c31-84ae357e2edd/runtime.json +15 -0
  340. package/.ikie/ferments/019f2747-7175-76e7-9d21-15608a6463ca/runtime.json +15 -0
  341. package/.ikie/ferments/019f2747-71c8-777c-8106-df11073ad85f/runtime.json +13 -0
  342. package/.ikie/ferments/019f2747-7209-71f5-8f4e-ccfd46653321/runtime.json +15 -0
  343. package/.ikie/ferments/019f2747-723d-728f-baa8-dd3b4b239037/runtime.json +15 -0
  344. package/.ikie/ferments/019f2747-728d-749b-9e9a-962ea824d13d/runtime.json +11 -0
  345. package/.ikie/ferments/019f2747-72b0-756e-b648-c5491d46dc37/runtime.json +15 -0
  346. package/.ikie/ferments/019f2747-72e8-747e-9e5b-93005dd51d36/runtime.json +15 -0
  347. package/.ikie/ferments/019f2747-7319-702b-84bd-aed70c3f60c3/runtime.json +15 -0
  348. package/.ikie/ferments/019f2747-734a-732c-89d8-47fa74a13f6b/runtime.json +15 -0
  349. package/.ikie/ferments/019f2747-7372-72ce-99d0-ddeeb20c73e5/runtime.json +15 -0
  350. package/.ikie/ferments/019f2747-73a1-723d-b064-2240965b5460/runtime.json +15 -0
  351. package/.ikie/ferments/019f2747-73cd-71b5-9b21-481224573278/runtime.json +15 -0
  352. package/.ikie/ferments/019f2747-73f7-779f-a227-64ba479c2615/runtime.json +15 -0
  353. package/.ikie/ferments/019f2747-743e-759e-856b-283e346eec66/runtime.json +15 -0
  354. package/.ikie/ferments/019f2747-74ac-702b-877f-1b4447f77938/runtime.json +11 -0
  355. package/.ikie/ferments/019f2747-74cc-773a-ad3a-febf5e9e5a57/runtime.json +11 -0
  356. package/.ikie/ferments/019f2747-750b-77dc-aa24-230eef901e40/reviews/phase-phase-1-1.json +63 -0
  357. package/.ikie/ferments/019f2747-750b-77dc-aa24-230eef901e40/runtime.json +17 -0
  358. package/.ikie/ferments/019f2747-76f2-72c9-8764-82fdd0429215/reviews/phase-phase-1-1.json +63 -0
  359. package/.ikie/ferments/019f2747-76f2-72c9-8764-82fdd0429215/runtime.json +17 -0
  360. package/.ikie/ferments/019f2747-795d-7452-9810-a64e86f3d5c5/runtime.json +11 -0
  361. package/.ikie/ferments/019f2747-7ee1-770e-ace1-bc0f5571f69a/runtime.json +11 -0
  362. package/.ikie/ferments/019f2747-7f01-738d-a2a2-c7aa33365582/runtime.json +11 -0
  363. package/.ikie/ferments/019f2747-7f40-712b-bea9-8a20399c9dfd/runtime.json +11 -0
  364. package/.ikie/ferments/019f2747-7fb4-70c9-aaf6-af4ac5fbebef/runtime.json +11 -0
  365. package/.ikie/ferments/019f2747-7fe2-77e7-90d5-dcee3cbe73ea/pending-proposal.json +45 -0
  366. package/.ikie/ferments/019f2747-7ff9-7028-ac25-77ab9c513710/pending-proposal.json +45 -0
  367. package/.ikie/ferments/019f2747-81c3-7320-8a96-88880d06cc14/pending-proposal.json +45 -0
  368. package/.ikie/ferments/019f2747-8236-76c0-b17c-1f13a22af974/pending-proposal.json +45 -0
  369. package/.ikie/ferments/019f2747-824b-77ba-90bd-67bcb4e9d5d6/pending-proposal.json +45 -0
  370. package/.ikie/ferments/019f2747-a18a-77f4-802d-18ab07f51261/runtime.json +13 -0
  371. package/.ikie/ferments/019f2747-a1b6-76cf-9688-94e8f41b179f/runtime.json +11 -0
  372. package/.ikie/ferments/019f2747-a1e2-730b-a56d-cb622d190c49/runtime.json +11 -0
  373. package/.ikie/ferments/019f2747-a20b-739e-a524-b5b2cdabdf49/runtime.json +11 -0
  374. package/.ikie/ferments/019f2747-a228-7026-9fe2-79fc90d7c622/runtime.json +11 -0
  375. package/.ikie/ferments/019f2747-a244-71b5-8ceb-d6094c7a5d28/runtime.json +11 -0
  376. package/.ikie/ferments/019f2747-a25d-723e-9962-ed1f266a9709/runtime.json +11 -0
  377. package/.ikie/ferments/019f2747-a275-734d-9ede-ae9644a179b6/runtime.json +11 -0
  378. package/.ikie/ferments/019f2747-a2a4-7280-b8c4-d8233d9e322a/runtime.json +9 -0
  379. package/.ikie/ferments/019f2747-a2ca-767d-8a35-9043b18e5ec7/runtime.json +13 -0
  380. package/.ikie/ferments/019f2747-a2f5-745d-929e-9fb2ef5d333f/runtime.json +11 -0
  381. package/.ikie/ferments/019f2747-a317-76b9-8954-2b7a4487a352/runtime.json +11 -0
  382. package/.ikie/ferments/019f2747-a380-7746-be44-cb9e1920561f/runtime.json +11 -0
  383. package/.ikie/ferments/019f2747-a3a2-77ac-9fe5-2a844b64872d/runtime.json +9 -0
  384. package/.ikie/ferments/019f2747-a3b7-70ee-ba83-b3c43d3122c8/runtime.json +9 -0
  385. package/.ikie/ferments/019f2747-a3e7-76e9-96f0-143c82d8005b/runtime.json +11 -0
  386. package/.ikie/ferments/019f2747-a4d3-737b-8d80-2dc63a0fbe1a/runtime.json +11 -0
  387. package/.ikie/ferments/019f2747-a506-7442-919f-50ae2b602e7a/runtime.json +12 -0
  388. package/.ikie/ferments/019f2747-a53e-76cb-9876-a81dd08e3fe7/runtime.json +11 -0
  389. package/.ikie/ferments/019f2747-a56a-7208-ad93-0fdcbc41c1ed/runtime.json +11 -0
  390. package/.ikie/ferments/019f2747-a581-73fc-aac5-a44f696ccbe8/runtime.json +11 -0
  391. package/.ikie/ferments/019f2747-a595-71d2-9c2d-d846e9803665/runtime.json +11 -0
  392. package/.ikie/ferments/019f2747-a5a7-73c6-b881-f9c0a08f3af3/runtime.json +13 -0
  393. package/.ikie/ferments/019f2747-a5be-7777-94c0-0849e693ffcb/runtime.json +11 -0
  394. package/.ikie/ferments/019f2747-b3e6-706a-912c-71d57080c7c1/reviews/phase-phase-1-1.json +41 -0
  395. package/.ikie/ferments/019f2747-b3e6-706a-912c-71d57080c7c1/runtime.json +11 -0
  396. package/.ikie/ferments/019f2747-b464-75bd-9c0b-c6b5e5de789e/reviews/phase-phase-1-1.json +47 -0
  397. package/.ikie/ferments/019f2747-b464-75bd-9c0b-c6b5e5de789e/runtime.json +13 -0
  398. package/.ikie/ferments/019f2747-b4f2-719c-86a6-763c494a680c/reviews/phase-phase-1-1.json +40 -0
  399. package/.ikie/ferments/019f2747-b4f2-719c-86a6-763c494a680c/runtime.json +9 -0
  400. package/.ikie/ferments/019f2747-b52b-75cd-b664-8c2aedd87893/reviews/phase-phase-1-1.json +40 -0
  401. package/.ikie/ferments/019f2747-b52b-75cd-b664-8c2aedd87893/runtime.json +9 -0
  402. package/.ikie/ferments/019f2747-b551-7188-81a3-7b7e8371aea4/reviews/phase-phase-1-1.json +40 -0
  403. package/.ikie/ferments/019f2747-b551-7188-81a3-7b7e8371aea4/runtime.json +9 -0
  404. package/.ikie/ferments/019f2747-b5a5-703f-98e6-5eac131044ed/reviews/phase-phase-1-1.json +40 -0
  405. package/.ikie/ferments/019f2747-b5a5-703f-98e6-5eac131044ed/runtime.json +9 -0
  406. package/.ikie/ferments/019f2747-b5cc-7560-80d8-509578bdae44/reviews/phase-phase-1-1.json +40 -0
  407. package/.ikie/ferments/019f2747-b5cc-7560-80d8-509578bdae44/runtime.json +9 -0
  408. package/.ikie/ferments/019f2747-b5f7-7079-ba17-833018701a06/reviews/phase-phase-1-1.json +62 -0
  409. package/.ikie/ferments/019f2747-b5f7-7079-ba17-833018701a06/runtime.json +9 -0
  410. package/.ikie/ferments/019f274a-bb4e-77b1-9f03-633b22b8e54c/runtime.json +11 -0
  411. package/.ikie/ferments/019f274a-bb6e-7715-92a0-c73da2ff97da/runtime.json +11 -0
  412. package/.ikie/ferments/019f274a-bb89-75b5-9daa-c57ef85c64c1/runtime.json +11 -0
  413. package/.ikie/ferments/019f274a-bbb7-72ad-9695-3227786b16ef/runtime.json +12 -0
  414. package/.ikie/ferments/019f274a-bbfb-70da-95f3-54a3e507888d/runtime.json +11 -0
  415. package/.ikie/ferments/019f274a-bc37-771a-8e77-b8d5476a8a1e/runtime.json +15 -0
  416. package/.ikie/ferments/019f274a-bc61-7024-9311-148a94a6713e/runtime.json +15 -0
  417. package/.ikie/ferments/019f274a-bca0-76a9-b966-59bbe3fb5bdd/runtime.json +15 -0
  418. package/.ikie/ferments/019f274a-bcc9-774d-adc2-aa99e82abb79/runtime.json +13 -0
  419. package/.ikie/ferments/019f274a-bcfb-737e-9c7d-b9db4762b624/runtime.json +15 -0
  420. package/.ikie/ferments/019f274a-bd3f-725b-9d39-b672191556ac/runtime.json +15 -0
  421. package/.ikie/ferments/019f274a-bd82-75a8-b936-350a55a7a1da/runtime.json +11 -0
  422. package/.ikie/ferments/019f274a-bda4-71b2-aa8b-7ba6f6103814/runtime.json +15 -0
  423. package/.ikie/ferments/019f274a-bddc-70ff-90f8-f1648dede718/runtime.json +15 -0
  424. package/.ikie/ferments/019f274a-be12-70bd-b935-0173946e60c2/runtime.json +15 -0
  425. package/.ikie/ferments/019f274a-be51-7719-b04b-d720a1d215f7/runtime.json +15 -0
  426. package/.ikie/ferments/019f274a-be8c-7084-aa78-4d139084333b/runtime.json +15 -0
  427. package/.ikie/ferments/019f274a-bebc-70b7-8c8d-fc7b50eda266/runtime.json +15 -0
  428. package/.ikie/ferments/019f274a-bee6-732f-b9ee-9fb3f1966e3d/runtime.json +15 -0
  429. package/.ikie/ferments/019f274a-bf19-76bc-8ab4-fe8c3fb28875/runtime.json +15 -0
  430. package/.ikie/ferments/019f274a-bf40-755b-bd4f-eec6d8e7a4de/runtime.json +15 -0
  431. package/.ikie/ferments/019f274a-bf74-7013-beb9-08aab0dc8866/runtime.json +11 -0
  432. package/.ikie/ferments/019f274a-bfa3-718d-ab5d-ededc4cf9e63/runtime.json +11 -0
  433. package/.ikie/ferments/019f274a-bfd6-7689-b29b-2c3ebfe1afd3/reviews/phase-phase-1-1.json +63 -0
  434. package/.ikie/ferments/019f274a-bfd6-7689-b29b-2c3ebfe1afd3/runtime.json +17 -0
  435. package/.ikie/ferments/019f274a-c186-77ea-a92c-78fa52657710/reviews/phase-phase-1-1.json +63 -0
  436. package/.ikie/ferments/019f274a-c186-77ea-a92c-78fa52657710/runtime.json +17 -0
  437. package/.ikie/ferments/019f274a-c3cf-77e8-9917-76d94992456a/runtime.json +11 -0
  438. package/.ikie/ferments/019f274a-c8eb-7071-9900-1668ccf13dad/runtime.json +11 -0
  439. package/.ikie/ferments/019f274a-c928-7276-9fd8-c8fdfbd215ff/runtime.json +11 -0
  440. package/.ikie/ferments/019f274a-c957-7698-8a97-54584a38f472/runtime.json +11 -0
  441. package/.ikie/ferments/019f274a-c97f-71b5-8fd9-727b49c9b72c/runtime.json +11 -0
  442. package/.ikie/ferments/019f274a-c9ad-76bb-99f8-b8f7840ad3ab/pending-proposal.json +45 -0
  443. package/.ikie/ferments/019f274a-c9cf-73ad-8229-d03bd5389697/pending-proposal.json +45 -0
  444. package/.ikie/ferments/019f274a-cb01-720a-b512-e49f820b9be5/pending-proposal.json +45 -0
  445. package/.ikie/ferments/019f274a-cbba-764d-a8e7-da6a060d9cd1/pending-proposal.json +45 -0
  446. package/.ikie/ferments/019f274a-cbdd-744f-84e9-af64527ff116/pending-proposal.json +45 -0
  447. package/.ikie/ferments/019f274a-efc1-75b6-ad54-83a9fcb061af/runtime.json +13 -0
  448. package/.ikie/ferments/019f274a-effe-713a-9672-ca8c839b0936/runtime.json +11 -0
  449. package/.ikie/ferments/019f274a-f03c-7194-b9e6-a24620ef1b89/runtime.json +11 -0
  450. package/.ikie/ferments/019f274a-f058-758c-9ecf-f6af131a0798/runtime.json +11 -0
  451. package/.ikie/ferments/019f274a-f06e-712d-b720-09a6188a152a/runtime.json +11 -0
  452. package/.ikie/ferments/019f274a-f085-715e-8b5b-07587107bc86/runtime.json +11 -0
  453. package/.ikie/ferments/019f274a-f0a8-755b-b747-adaa0f997d8a/runtime.json +11 -0
  454. package/.ikie/ferments/019f274a-f0cd-765c-90ce-48685c67299c/runtime.json +11 -0
  455. package/.ikie/ferments/019f274a-f0e1-71a8-bafc-cc3eeff4f275/runtime.json +9 -0
  456. package/.ikie/ferments/019f274a-f104-73c0-be62-16f724e0d4c6/runtime.json +13 -0
  457. package/.ikie/ferments/019f274a-f129-70ea-aa16-254d0fc662bf/runtime.json +11 -0
  458. package/.ikie/ferments/019f274a-f14b-7742-8e88-7a3fe9d16f08/runtime.json +11 -0
  459. package/.ikie/ferments/019f274a-f18b-7148-afb1-b9ff1ab54bbc/runtime.json +11 -0
  460. package/.ikie/ferments/019f274a-f1a2-734d-bf87-6f80955a3b64/runtime.json +9 -0
  461. package/.ikie/ferments/019f274a-f1c0-75a7-8675-f4fcf15df9bd/runtime.json +9 -0
  462. package/.ikie/ferments/019f274a-f1e2-7346-b97f-9340f86e6397/runtime.json +11 -0
  463. package/.ikie/ferments/019f274a-f2a1-7758-a891-413d15c9c29c/runtime.json +11 -0
  464. package/.ikie/ferments/019f274a-f2bc-76fd-b2dc-e14feea4fb86/runtime.json +12 -0
  465. package/.ikie/ferments/019f274a-f2e0-7474-97b8-79e01d130940/runtime.json +11 -0
  466. package/.ikie/ferments/019f274a-f2fa-70fb-a2da-0fb3e9a729ef/runtime.json +11 -0
  467. package/.ikie/ferments/019f274a-f30f-71bc-bf7f-198ef4b68568/runtime.json +11 -0
  468. package/.ikie/ferments/019f274a-f326-768b-b55e-e340dd3bf7fc/runtime.json +11 -0
  469. package/.ikie/ferments/019f274a-f339-75a5-9d45-d9393ccf3436/runtime.json +13 -0
  470. package/.ikie/ferments/019f274a-f35b-7386-9eb0-8f1e45618131/runtime.json +11 -0
  471. package/.ikie/ferments/019f274a-f96b-7633-9b6d-6722ea8232a2/reviews/phase-phase-1-1.json +41 -0
  472. package/.ikie/ferments/019f274a-f96b-7633-9b6d-6722ea8232a2/runtime.json +11 -0
  473. package/.ikie/ferments/019f274a-f9b7-769e-94ac-8f5c7e23ee88/reviews/phase-phase-1-1.json +47 -0
  474. package/.ikie/ferments/019f274a-f9b7-769e-94ac-8f5c7e23ee88/runtime.json +13 -0
  475. package/.ikie/ferments/019f274a-fa07-70b1-bc68-1a9d3378deff/reviews/phase-phase-1-1.json +40 -0
  476. package/.ikie/ferments/019f274a-fa07-70b1-bc68-1a9d3378deff/runtime.json +9 -0
  477. package/.ikie/ferments/019f274a-fa2f-7658-86ad-cc69215f1c94/reviews/phase-phase-1-1.json +40 -0
  478. package/.ikie/ferments/019f274a-fa2f-7658-86ad-cc69215f1c94/runtime.json +9 -0
  479. package/.ikie/ferments/019f274a-fa46-72ca-a252-65a5b2995bc4/reviews/phase-phase-1-1.json +40 -0
  480. package/.ikie/ferments/019f274a-fa46-72ca-a252-65a5b2995bc4/runtime.json +9 -0
  481. package/.ikie/ferments/019f274a-fa70-705f-9112-d48e1042f1d4/reviews/phase-phase-1-1.json +40 -0
  482. package/.ikie/ferments/019f274a-fa70-705f-9112-d48e1042f1d4/runtime.json +9 -0
  483. package/.ikie/ferments/019f274a-fa94-73e5-9fc3-ea21ee5cfc59/reviews/phase-phase-1-1.json +40 -0
  484. package/.ikie/ferments/019f274a-fa94-73e5-9fc3-ea21ee5cfc59/runtime.json +9 -0
  485. package/.ikie/ferments/019f274a-fab9-720d-9ce3-0041a27f83e0/reviews/phase-phase-1-1.json +62 -0
  486. package/.ikie/ferments/019f274a-fab9-720d-9ce3-0041a27f83e0/runtime.json +9 -0
  487. package/.ikie/ferments/019f274c-7608-76f8-89c7-6e3b7d9095b2/runtime.json +11 -0
  488. package/.ikie/ferments/019f274c-762a-717c-9ec2-530d37897051/runtime.json +11 -0
  489. package/.ikie/ferments/019f274c-7644-76fc-a27d-c699d368a511/runtime.json +11 -0
  490. package/.ikie/ferments/019f274c-7667-7260-87b3-f2ad6ff10c04/runtime.json +12 -0
  491. package/.ikie/ferments/019f274c-7696-753f-8634-5cb24d2aabaa/runtime.json +11 -0
  492. package/.ikie/ferments/019f274c-76c8-76e8-b4d8-0cabd7f32047/runtime.json +15 -0
  493. package/.ikie/ferments/019f274c-76f5-732e-88f3-0461f79b7733/runtime.json +15 -0
  494. package/.ikie/ferments/019f274c-771b-762e-abb6-1bfe6838545b/runtime.json +15 -0
  495. package/.ikie/ferments/019f274c-774a-769f-b15f-d36a990c8aa2/runtime.json +13 -0
  496. package/.ikie/ferments/019f274c-7791-7040-9c73-fe5922824edc/runtime.json +15 -0
  497. package/.ikie/ferments/019f274c-77c3-76f9-a5c6-e0f5030f615c/runtime.json +15 -0
  498. package/.ikie/ferments/019f274c-7805-70eb-ac17-888c2a0ab5cb/runtime.json +11 -0
  499. package/.ikie/ferments/019f274c-7820-71da-9baf-d7953b547620/runtime.json +15 -0
  500. package/.ikie/ferments/019f274c-7855-708f-bbe8-a9e13258cc98/runtime.json +15 -0
  501. package/.ikie/ferments/019f274c-7886-70fc-9572-b96090b16cf9/runtime.json +15 -0
  502. package/.ikie/ferments/019f274c-78b7-756e-82ef-8a8e953000bf/runtime.json +15 -0
  503. package/.ikie/ferments/019f274c-78df-7198-b1dd-58c3ea1e0d6e/runtime.json +15 -0
  504. package/.ikie/ferments/019f274c-7902-77d4-b443-b105d0a3acd5/runtime.json +15 -0
  505. package/.ikie/ferments/019f274c-7926-7628-82dc-e71e8f5d58f0/runtime.json +15 -0
  506. package/.ikie/ferments/019f274c-7948-7755-bc18-c8d9975c762f/runtime.json +15 -0
  507. package/.ikie/ferments/019f274c-7972-72a5-bc5e-e47579f25c32/runtime.json +15 -0
  508. package/.ikie/ferments/019f274c-7998-71bf-960e-caba2791ece7/runtime.json +11 -0
  509. package/.ikie/ferments/019f274c-79c4-71c6-97ef-0dac30d26152/runtime.json +11 -0
  510. package/.ikie/ferments/019f274c-79e3-7249-8bac-82b74fbd9d1d/reviews/phase-phase-1-1.json +63 -0
  511. package/.ikie/ferments/019f274c-79e3-7249-8bac-82b74fbd9d1d/runtime.json +17 -0
  512. package/.ikie/ferments/019f274c-7b11-769e-b05b-354105048fb2/reviews/phase-phase-1-1.json +63 -0
  513. package/.ikie/ferments/019f274c-7b11-769e-b05b-354105048fb2/runtime.json +17 -0
  514. package/.ikie/ferments/019f274c-7c7b-73ad-98d3-739e5f0187ec/runtime.json +11 -0
  515. package/.ikie/ferments/019f274c-8054-728f-96c1-6cae4b96c94e/runtime.json +11 -0
  516. package/.ikie/ferments/019f274c-8072-7209-82b0-84facff2e61a/runtime.json +11 -0
  517. package/.ikie/ferments/019f274c-8094-77ec-81dd-e50e61dc11db/runtime.json +11 -0
  518. package/.ikie/ferments/019f274c-80bc-75c9-89e8-540dba77996e/runtime.json +11 -0
  519. package/.ikie/ferments/019f274c-80dd-7439-a5b0-b36fcf77c8f1/pending-proposal.json +45 -0
  520. package/.ikie/ferments/019f274c-80f1-71ac-bd32-fd151f38519c/pending-proposal.json +45 -0
  521. package/.ikie/ferments/019f274c-81dc-70e6-a5c9-249b196c75c3/pending-proposal.json +45 -0
  522. package/.ikie/ferments/019f274c-8238-772c-9da3-f27e467100a7/pending-proposal.json +45 -0
  523. package/.ikie/ferments/019f274c-824a-76d9-aac3-c51171e256b4/pending-proposal.json +45 -0
  524. package/.ikie/ferments/019f274c-a854-7349-b76a-4a0bc2ecc2f7/runtime.json +11 -0
  525. package/.ikie/ferments/019f274c-a872-701b-a311-51267fc54aa5/runtime.json +11 -0
  526. package/.ikie/ferments/019f274c-a8a2-756e-9051-15fcd0be1584/runtime.json +11 -0
  527. package/.ikie/ferments/019f274c-a8d8-767c-8190-d30a2e78815f/runtime.json +12 -0
  528. package/.ikie/ferments/019f274c-a914-701e-95ab-9eeca15f5ccd/runtime.json +11 -0
  529. package/.ikie/ferments/019f274c-a951-720f-bc99-2ea22021a624/runtime.json +15 -0
  530. package/.ikie/ferments/019f274c-a978-750b-aecb-a5a2aa684cdf/runtime.json +15 -0
  531. package/.ikie/ferments/019f274c-a9a6-71e9-82ac-66c74cf51964/runtime.json +15 -0
  532. package/.ikie/ferments/019f274c-a9e0-77ae-96eb-dad523b6a843/runtime.json +13 -0
  533. package/.ikie/ferments/019f274c-aa2c-7658-a652-ca1a27093c42/runtime.json +15 -0
  534. package/.ikie/ferments/019f274c-aa77-72b4-a8de-56a2217c759f/runtime.json +15 -0
  535. package/.ikie/ferments/019f274c-aacf-74fa-943c-26412ddd8b5d/runtime.json +11 -0
  536. package/.ikie/ferments/019f274c-ab08-709f-aaff-09f10230738f/runtime.json +15 -0
  537. package/.ikie/ferments/019f274c-ab66-730b-86a5-7571dac8802c/runtime.json +15 -0
  538. package/.ikie/ferments/019f274c-abb2-77d2-91b6-ea175f561d8a/runtime.json +15 -0
  539. package/.ikie/ferments/019f274c-ac01-74ff-a2c6-28dbadc051e7/runtime.json +15 -0
  540. package/.ikie/ferments/019f274c-ac4b-75ad-93a6-aa6af74ca708/runtime.json +15 -0
  541. package/.ikie/ferments/019f274c-ac80-77b4-bfcf-f7a7187a42f6/runtime.json +15 -0
  542. package/.ikie/ferments/019f274c-acd9-7239-ad37-73d57031d1bc/runtime.json +15 -0
  543. package/.ikie/ferments/019f274c-ad22-74bb-9cf2-ed681dd73504/runtime.json +15 -0
  544. package/.ikie/ferments/019f274c-ad7d-720c-89bf-5a79ceec8173/runtime.json +15 -0
  545. package/.ikie/ferments/019f274c-adca-762a-b177-4d76b886003b/runtime.json +11 -0
  546. package/.ikie/ferments/019f274c-ae26-7109-bfaa-39d692fdc1ac/runtime.json +11 -0
  547. package/.ikie/ferments/019f274c-ae59-76bb-80ae-f556e764f2ca/reviews/phase-phase-1-1.json +63 -0
  548. package/.ikie/ferments/019f274c-ae59-76bb-80ae-f556e764f2ca/runtime.json +17 -0
  549. package/.ikie/ferments/019f274c-b059-76e5-9b73-bedc0d4b5aaa/reviews/phase-phase-1-1.json +63 -0
  550. package/.ikie/ferments/019f274c-b059-76e5-9b73-bedc0d4b5aaa/runtime.json +17 -0
  551. package/.ikie/ferments/019f274c-b21f-700a-adda-4bfd9d27a0ac/runtime.json +11 -0
  552. package/.ikie/ferments/019f274c-b91a-7306-8825-3581ef16ab34/runtime.json +11 -0
  553. package/.ikie/ferments/019f274c-b966-737f-a1c7-e8e7d3af929c/runtime.json +11 -0
  554. package/.ikie/ferments/019f274c-b99d-74dd-b8e8-1ddc50293a9a/runtime.json +11 -0
  555. package/.ikie/ferments/019f274c-ba0e-72ae-ad14-983edb8d90ac/runtime.json +11 -0
  556. package/.ikie/ferments/019f274c-ba4f-7101-b851-12564620c50f/pending-proposal.json +45 -0
  557. package/.ikie/ferments/019f274c-ba63-712c-858f-96cee1384cec/pending-proposal.json +45 -0
  558. package/.ikie/ferments/019f274c-bbe3-7343-a8b0-e6f91c3ab922/pending-proposal.json +45 -0
  559. package/.ikie/ferments/019f274c-bc4a-740e-a12a-9c04181702d9/pending-proposal.json +45 -0
  560. package/.ikie/ferments/019f274c-bc7b-707c-90b9-d30cf92b5fb9/pending-proposal.json +45 -0
  561. package/.ikie/ferments/019f274c-e044-750a-a9e1-623de3afa666/runtime.json +13 -0
  562. package/.ikie/ferments/019f274c-e07a-77cb-9f17-726e4afb3ee1/runtime.json +11 -0
  563. package/.ikie/ferments/019f274c-e0a2-754a-ac70-aac9cd3d3dc2/runtime.json +11 -0
  564. package/.ikie/ferments/019f274c-e0ba-72de-bf83-25a8319eddc5/runtime.json +11 -0
  565. package/.ikie/ferments/019f274c-e0cf-77c1-9c23-65745da294b4/runtime.json +11 -0
  566. package/.ikie/ferments/019f274c-e0e7-77f7-9436-0537e2095c6b/runtime.json +11 -0
  567. package/.ikie/ferments/019f274c-e103-70d7-abd9-01305b905259/runtime.json +11 -0
  568. package/.ikie/ferments/019f274c-e121-7328-9eab-3babb40f26b3/runtime.json +11 -0
  569. package/.ikie/ferments/019f274c-e135-76d4-9176-2033e41fa5a8/runtime.json +9 -0
  570. package/.ikie/ferments/019f274c-e157-7043-9b54-fd7c40cb0793/runtime.json +13 -0
  571. package/.ikie/ferments/019f274c-e181-718e-804d-d0edfaabd5cd/runtime.json +11 -0
  572. package/.ikie/ferments/019f274c-e19b-72ab-bf87-b7a53037becb/runtime.json +11 -0
  573. package/.ikie/ferments/019f274c-e20a-716e-8cab-f0cd93259148/runtime.json +11 -0
  574. package/.ikie/ferments/019f274c-e228-73a3-a655-48bc44db0325/runtime.json +9 -0
  575. package/.ikie/ferments/019f274c-e243-7609-bec4-905caa78d674/runtime.json +9 -0
  576. package/.ikie/ferments/019f274c-e258-76ba-912c-bab41dfeaac2/runtime.json +11 -0
  577. package/.ikie/ferments/019f274c-e35a-776b-a644-52ee82afec4d/runtime.json +11 -0
  578. package/.ikie/ferments/019f274c-e378-73e8-943d-f2fc2ee875ef/runtime.json +12 -0
  579. package/.ikie/ferments/019f274c-e3a6-757d-b33c-c6fbdd9cf8c7/runtime.json +11 -0
  580. package/.ikie/ferments/019f274c-e3c9-77a7-be2b-43891355a506/runtime.json +11 -0
  581. package/.ikie/ferments/019f274c-e3db-776b-8de6-fb1aeab60a7b/runtime.json +11 -0
  582. package/.ikie/ferments/019f274c-e3f4-700e-8780-2dee3c117eb8/runtime.json +11 -0
  583. package/.ikie/ferments/019f274c-e409-71af-a0f9-ff159811e472/runtime.json +13 -0
  584. package/.ikie/ferments/019f274c-e432-73cd-bd34-39f0e34a568d/runtime.json +11 -0
  585. package/.ikie/ferments/019f274c-eb55-73fe-bb2a-34b4a2df3f4e/reviews/phase-phase-1-1.json +41 -0
  586. package/.ikie/ferments/019f274c-eb55-73fe-bb2a-34b4a2df3f4e/runtime.json +11 -0
  587. package/.ikie/ferments/019f274c-eb9b-728e-93e2-80afb71ae50e/reviews/phase-phase-1-1.json +47 -0
  588. package/.ikie/ferments/019f274c-eb9b-728e-93e2-80afb71ae50e/runtime.json +13 -0
  589. package/.ikie/ferments/019f274c-ebf3-77bb-8f8a-6081787fbcb3/reviews/phase-phase-1-1.json +40 -0
  590. package/.ikie/ferments/019f274c-ebf3-77bb-8f8a-6081787fbcb3/runtime.json +9 -0
  591. package/.ikie/ferments/019f274c-ec22-7123-8c8f-0c129c2e0719/reviews/phase-phase-1-1.json +40 -0
  592. package/.ikie/ferments/019f274c-ec22-7123-8c8f-0c129c2e0719/runtime.json +9 -0
  593. package/.ikie/ferments/019f274c-ec85-757c-9600-8be68ceccb55/reviews/phase-phase-1-1.json +40 -0
  594. package/.ikie/ferments/019f274c-ec85-757c-9600-8be68ceccb55/runtime.json +9 -0
  595. package/.ikie/ferments/019f274c-ecd9-704e-8c99-65c64be0a8e1/reviews/phase-phase-1-1.json +40 -0
  596. package/.ikie/ferments/019f274c-ecd9-704e-8c99-65c64be0a8e1/runtime.json +9 -0
  597. package/.ikie/ferments/019f274c-ecee-70bb-9087-da3b4c57d281/reviews/phase-phase-1-1.json +40 -0
  598. package/.ikie/ferments/019f274c-ecee-70bb-9087-da3b4c57d281/runtime.json +9 -0
  599. package/.ikie/ferments/019f274c-ed18-77bf-8cde-812d1e273bda/reviews/phase-phase-1-1.json +62 -0
  600. package/.ikie/ferments/019f274c-ed18-77bf-8cde-812d1e273bda/runtime.json +9 -0
  601. package/.ikie/ferments/019f274f-0303-7543-9aa9-fa7f54d5f6c6/runtime.json +11 -0
  602. package/.ikie/ferments/019f274f-032c-70aa-b5b5-d695429a50bc/runtime.json +11 -0
  603. package/.ikie/ferments/019f274f-036d-763c-8cf9-cb62245aff49/runtime.json +11 -0
  604. package/.ikie/ferments/019f274f-03bd-709c-85ee-698745beac66/runtime.json +12 -0
  605. package/.ikie/ferments/019f274f-0404-75cf-8731-f0182bd84d87/runtime.json +11 -0
  606. package/.ikie/ferments/019f274f-0442-75fe-8cc3-44bfe5dd84bf/runtime.json +15 -0
  607. package/.ikie/ferments/019f274f-048f-759f-ae18-5fe9975647bf/runtime.json +15 -0
  608. package/.ikie/ferments/019f274f-04f1-72fa-a2ba-0b9e066ae6eb/runtime.json +15 -0
  609. package/.ikie/ferments/019f274f-0541-728d-8893-0b0b45547a56/runtime.json +13 -0
  610. package/.ikie/ferments/019f274f-058e-7508-b67a-ebe736113e1e/runtime.json +15 -0
  611. package/.ikie/ferments/019f274f-0625-77d9-bf99-bcdf0ca2d5b2/runtime.json +15 -0
  612. package/.ikie/ferments/019f274f-0694-715c-b008-29a3cf0d6c9c/runtime.json +11 -0
  613. package/.ikie/ferments/019f274f-06b1-71fb-a812-3fd3cefda2ea/runtime.json +15 -0
  614. package/.ikie/ferments/019f274f-06e9-701b-9396-dca2be2330e5/runtime.json +15 -0
  615. package/.ikie/ferments/019f274f-072b-76b2-8d77-32d0ad5abb81/runtime.json +15 -0
  616. package/.ikie/ferments/019f274f-0770-75ce-886f-c1c12d6682eb/runtime.json +15 -0
  617. package/.ikie/ferments/019f274f-07ab-75fc-a71b-ca3b4b4acca5/runtime.json +15 -0
  618. package/.ikie/ferments/019f274f-07f0-72cd-a577-316526b45983/runtime.json +15 -0
  619. package/.ikie/ferments/019f274f-0837-72ed-94f2-dd68e9273549/runtime.json +15 -0
  620. package/.ikie/ferments/019f274f-0866-765d-a2fc-8cce9d53e417/runtime.json +15 -0
  621. package/.ikie/ferments/019f274f-08bb-737e-8f23-4b2e069bc7e5/runtime.json +15 -0
  622. package/.ikie/ferments/019f274f-08f6-73aa-968a-85f55d5e047c/runtime.json +11 -0
  623. package/.ikie/ferments/019f274f-0949-77b7-8d2c-46fbeb423e3a/runtime.json +11 -0
  624. package/.ikie/ferments/019f274f-0979-71ad-91b5-d2e52366b74d/reviews/phase-phase-1-1.json +63 -0
  625. package/.ikie/ferments/019f274f-0979-71ad-91b5-d2e52366b74d/runtime.json +17 -0
  626. package/.ikie/ferments/019f274f-0b57-7329-884a-43e712cd093c/reviews/phase-phase-1-1.json +63 -0
  627. package/.ikie/ferments/019f274f-0b57-7329-884a-43e712cd093c/runtime.json +17 -0
  628. package/.ikie/ferments/019f274f-0d87-772d-a6f3-b71179eec14f/runtime.json +11 -0
  629. package/.ikie/ferments/019f274f-12f0-73be-b630-54a329974d0b/runtime.json +11 -0
  630. package/.ikie/ferments/019f274f-1332-7202-90be-f7e94dd16e66/runtime.json +11 -0
  631. package/.ikie/ferments/019f274f-1368-778a-b044-0306086fe9cf/runtime.json +11 -0
  632. package/.ikie/ferments/019f274f-13a9-7287-974d-8db5c1b7dda6/runtime.json +11 -0
  633. package/.ikie/ferments/019f274f-13d1-7069-91d8-2e4efe8d8982/pending-proposal.json +45 -0
  634. package/.ikie/ferments/019f274f-13f8-717c-92c9-9bc9b37ee2cc/pending-proposal.json +45 -0
  635. package/.ikie/ferments/019f274f-1566-753b-b053-f14ccb779e36/pending-proposal.json +45 -0
  636. package/.ikie/ferments/019f274f-15d3-76f8-8467-e368f0c40baf/pending-proposal.json +45 -0
  637. package/.ikie/ferments/019f274f-15f0-716f-92e7-d966f4476b09/pending-proposal.json +45 -0
  638. package/.ikie/ferments/019f274f-2a19-762d-be24-59afdd71b303/runtime.json +13 -0
  639. package/.ikie/ferments/019f274f-2a74-74cb-ab51-dd779739478e/runtime.json +11 -0
  640. package/.ikie/ferments/019f274f-2a92-71e1-9e68-15f750efc6ec/runtime.json +11 -0
  641. package/.ikie/ferments/019f274f-2ab1-73eb-8930-b9d161230fcc/runtime.json +11 -0
  642. package/.ikie/ferments/019f274f-2ad9-70ea-83a9-f8ae1af1edcf/runtime.json +11 -0
  643. package/.ikie/ferments/019f274f-2b02-77ea-b187-43489c9a88f8/runtime.json +11 -0
  644. package/.ikie/ferments/019f274f-2b2d-728c-9b69-7a6e4956a88c/runtime.json +11 -0
  645. package/.ikie/ferments/019f274f-2b42-7358-b1fa-9754d2ca530d/runtime.json +11 -0
  646. package/.ikie/ferments/019f274f-2b74-77ee-b062-8b111368fc58/runtime.json +9 -0
  647. package/.ikie/ferments/019f274f-2b9b-703b-8abd-5b4ff212ce66/runtime.json +13 -0
  648. package/.ikie/ferments/019f274f-2bd6-7109-93ec-12f609270c84/runtime.json +11 -0
  649. package/.ikie/ferments/019f274f-2bea-75cf-b3d2-aedca4b0c8a4/runtime.json +11 -0
  650. package/.ikie/ferments/019f274f-2c1c-7085-b221-ecf2a371e6cf/runtime.json +11 -0
  651. package/.ikie/ferments/019f274f-2c2f-71fb-9b03-41d6f8a5d2d6/runtime.json +9 -0
  652. package/.ikie/ferments/019f274f-2c5d-719d-a913-5255a7b3e376/runtime.json +9 -0
  653. package/.ikie/ferments/019f274f-2c92-75bb-b691-4efd9b706418/runtime.json +11 -0
  654. package/.ikie/ferments/019f274f-2d9e-7186-b8f9-0d5863265329/runtime.json +11 -0
  655. package/.ikie/ferments/019f274f-2dbb-73f9-8231-b52b6e1eb863/runtime.json +12 -0
  656. package/.ikie/ferments/019f274f-2ddf-7477-a5a2-a20be1921fbf/runtime.json +11 -0
  657. package/.ikie/ferments/019f274f-2e01-710b-8175-18eeb0e792e2/runtime.json +11 -0
  658. package/.ikie/ferments/019f274f-2e26-7217-a41e-3bd106e0a9cf/runtime.json +11 -0
  659. package/.ikie/ferments/019f274f-2e3a-72bc-9945-37a576bb7ef1/runtime.json +11 -0
  660. package/.ikie/ferments/019f274f-2e61-77e5-85ab-dda905bded90/runtime.json +13 -0
  661. package/.ikie/ferments/019f274f-2e7e-73ea-a7c9-14ab5125c3d3/runtime.json +11 -0
  662. package/.ikie/ferments/019f274f-4262-76b9-884a-9ff2121f2c3a/reviews/phase-phase-1-1.json +41 -0
  663. package/.ikie/ferments/019f274f-4262-76b9-884a-9ff2121f2c3a/runtime.json +11 -0
  664. package/.ikie/ferments/019f274f-42ce-753f-ba6d-c1c2be5b7c71/reviews/phase-phase-1-1.json +47 -0
  665. package/.ikie/ferments/019f274f-42ce-753f-ba6d-c1c2be5b7c71/runtime.json +13 -0
  666. package/.ikie/ferments/019f274f-4353-75ed-bad2-0f74d61ceff5/reviews/phase-phase-1-1.json +40 -0
  667. package/.ikie/ferments/019f274f-4353-75ed-bad2-0f74d61ceff5/runtime.json +9 -0
  668. package/.ikie/ferments/019f274f-4379-7716-af61-2381f422540e/reviews/phase-phase-1-1.json +40 -0
  669. package/.ikie/ferments/019f274f-4379-7716-af61-2381f422540e/runtime.json +9 -0
  670. package/.ikie/ferments/019f274f-43a1-716c-ba31-4b705e8afb1a/reviews/phase-phase-1-1.json +40 -0
  671. package/.ikie/ferments/019f274f-43a1-716c-ba31-4b705e8afb1a/runtime.json +9 -0
  672. package/.ikie/ferments/019f274f-43de-761a-b793-fca5ca243eea/reviews/phase-phase-1-1.json +40 -0
  673. package/.ikie/ferments/019f274f-43de-761a-b793-fca5ca243eea/runtime.json +9 -0
  674. package/.ikie/ferments/019f274f-4401-73e9-b9d8-99631bab030b/reviews/phase-phase-1-1.json +40 -0
  675. package/.ikie/ferments/019f274f-4401-73e9-b9d8-99631bab030b/runtime.json +9 -0
  676. package/.ikie/ferments/019f274f-442b-770b-b411-feeb46ae7a8d/reviews/phase-phase-1-1.json +62 -0
  677. package/.ikie/ferments/019f274f-442b-770b-b411-feeb46ae7a8d/runtime.json +9 -0
  678. package/.ikie/ferments/019f275c-3e9e-7557-b50e-0e56cc6b07f5/runtime.json +11 -0
  679. package/.ikie/ferments/019f275c-3ec3-73ea-b557-77cc517095f2/runtime.json +11 -0
  680. package/.ikie/ferments/019f275c-3ee5-774f-876e-3caacb9b1d95/runtime.json +11 -0
  681. package/.ikie/ferments/019f275c-3f28-73ee-8eae-568fec8011b6/runtime.json +12 -0
  682. package/.ikie/ferments/019f275c-3f57-70a8-ba4d-d179cceaabbf/runtime.json +11 -0
  683. package/.ikie/ferments/019f275c-3f88-72cb-abb5-8e0e176e1dd2/runtime.json +15 -0
  684. package/.ikie/ferments/019f275c-3fb4-7248-9c23-874baa6e2a9d/runtime.json +15 -0
  685. package/.ikie/ferments/019f275c-3fe1-759b-afd9-f5e47564de48/runtime.json +15 -0
  686. package/.ikie/ferments/019f275c-401f-74e8-b968-d325ae2faf56/runtime.json +13 -0
  687. package/.ikie/ferments/019f275c-4067-752e-a0d8-d85f670f9473/runtime.json +15 -0
  688. package/.ikie/ferments/019f275c-40a2-74de-b858-ef4ad52484ea/runtime.json +15 -0
  689. package/.ikie/ferments/019f275c-4105-738f-95d0-6e9f7f9568fb/runtime.json +11 -0
  690. package/.ikie/ferments/019f275c-411b-76e9-b030-df118a1b23b4/runtime.json +15 -0
  691. package/.ikie/ferments/019f275c-4153-74ec-8b93-e2e0e82c27b0/runtime.json +15 -0
  692. package/.ikie/ferments/019f275c-4199-739b-9af9-b1cfc26623c3/runtime.json +15 -0
  693. package/.ikie/ferments/019f275c-41cb-746b-8481-7ca9d82a8b64/runtime.json +15 -0
  694. package/.ikie/ferments/019f275c-4209-756f-b335-8e6dfe51bac1/runtime.json +15 -0
  695. package/.ikie/ferments/019f275c-424c-7512-ac17-b8c04dcf82ac/runtime.json +15 -0
  696. package/.ikie/ferments/019f275c-4269-74eb-a213-e221479a26e5/runtime.json +15 -0
  697. package/.ikie/ferments/019f275c-428b-71ea-acda-027b98d191d1/runtime.json +15 -0
  698. package/.ikie/ferments/019f275c-42bb-75da-b330-e9f101c36d5c/runtime.json +15 -0
  699. package/.ikie/ferments/019f275c-42e3-777a-8e8c-80772f6d6bcb/runtime.json +11 -0
  700. package/.ikie/ferments/019f275c-430b-7779-bcc7-95a0b6fc693d/runtime.json +11 -0
  701. package/.ikie/ferments/019f275c-432e-71f9-b65d-88d26f3b185f/reviews/phase-phase-1-1.json +63 -0
  702. package/.ikie/ferments/019f275c-432e-71f9-b65d-88d26f3b185f/runtime.json +17 -0
  703. package/.ikie/ferments/019f275c-447e-756d-8ec0-091e54bcc7b4/reviews/phase-phase-1-1.json +63 -0
  704. package/.ikie/ferments/019f275c-447e-756d-8ec0-091e54bcc7b4/runtime.json +17 -0
  705. package/.ikie/ferments/019f275c-4602-757e-9283-3606516f4d15/runtime.json +11 -0
  706. package/.ikie/ferments/019f275c-4a3b-75f0-8355-8524d1589242/runtime.json +11 -0
  707. package/.ikie/ferments/019f275c-4a5c-744e-9792-deb33fe1e244/runtime.json +11 -0
  708. package/.ikie/ferments/019f275c-4a79-73d2-beae-4e85f8906581/runtime.json +11 -0
  709. package/.ikie/ferments/019f275c-4a97-70b9-98d1-53d9326b4c95/runtime.json +11 -0
  710. package/.ikie/ferments/019f275c-4ac1-7452-ab7a-485bde641591/pending-proposal.json +45 -0
  711. package/.ikie/ferments/019f275c-4ad7-77ba-8a63-d8586db466e7/pending-proposal.json +45 -0
  712. package/.ikie/ferments/019f275c-4bee-77b9-8470-98c4aafeae43/pending-proposal.json +45 -0
  713. package/.ikie/ferments/019f275c-4c3d-712b-95f6-a671b7884658/pending-proposal.json +45 -0
  714. package/.ikie/ferments/019f275c-4c4e-73a0-accb-e76c29bc1f6d/pending-proposal.json +45 -0
  715. package/.ikie/ferments/019f275c-7598-775d-beed-cde3b6cb74e6/runtime.json +13 -0
  716. package/.ikie/ferments/019f275c-75c0-773d-9c0c-dd4943fc6092/runtime.json +11 -0
  717. package/.ikie/ferments/019f275c-75dc-7629-8a52-1eba66275779/runtime.json +11 -0
  718. package/.ikie/ferments/019f275c-75f3-742b-8494-e8a1facb02bb/runtime.json +11 -0
  719. package/.ikie/ferments/019f275c-760c-705e-8d98-7963d8830086/runtime.json +11 -0
  720. package/.ikie/ferments/019f275c-7627-763c-ae8e-20dde59c64b9/runtime.json +11 -0
  721. package/.ikie/ferments/019f275c-763c-74ae-b835-b52b57c52e9b/runtime.json +11 -0
  722. package/.ikie/ferments/019f275c-7650-7499-b744-7f38cfa776f4/runtime.json +11 -0
  723. package/.ikie/ferments/019f275c-766d-75b8-ba35-69e472baf630/runtime.json +9 -0
  724. package/.ikie/ferments/019f275c-7687-72cc-beac-339a11625f14/runtime.json +13 -0
  725. package/.ikie/ferments/019f275c-76a6-773d-a4c1-19a5ec313596/runtime.json +11 -0
  726. package/.ikie/ferments/019f275c-76c1-71b9-a49e-4b520fcef543/runtime.json +11 -0
  727. package/.ikie/ferments/019f275c-7706-761f-a9cf-7e412e88015d/runtime.json +11 -0
  728. package/.ikie/ferments/019f275c-772b-745f-a74d-de30f52a3316/runtime.json +9 -0
  729. package/.ikie/ferments/019f275c-7746-759c-a116-c2cd08e2f29b/runtime.json +9 -0
  730. package/.ikie/ferments/019f275c-7760-709d-83bc-4d6fff7ac768/runtime.json +11 -0
  731. package/.ikie/ferments/019f275c-780e-74db-9d7d-bcc430c1a964/runtime.json +11 -0
  732. package/.ikie/ferments/019f275c-7826-734e-8113-90111e82d96a/runtime.json +12 -0
  733. package/.ikie/ferments/019f275c-7849-72ed-8fb0-d1815d2f66d3/runtime.json +11 -0
  734. package/.ikie/ferments/019f275c-785f-716e-b077-eee453653ee0/runtime.json +11 -0
  735. package/.ikie/ferments/019f275c-7871-70fe-b543-bcdaaa10d320/runtime.json +11 -0
  736. package/.ikie/ferments/019f275c-7888-777d-8edf-1a5a906679d7/runtime.json +11 -0
  737. package/.ikie/ferments/019f275c-78b3-722e-9d1a-f354b0d0fa96/runtime.json +13 -0
  738. package/.ikie/ferments/019f275c-78cb-7568-ad11-191bc98cabe5/runtime.json +11 -0
  739. package/.ikie/ferments/019f275c-8905-76ae-beb3-2ec9138b799b/reviews/phase-phase-1-1.json +41 -0
  740. package/.ikie/ferments/019f275c-8905-76ae-beb3-2ec9138b799b/runtime.json +11 -0
  741. package/.ikie/ferments/019f275c-8970-713f-a498-af24ac57355a/reviews/phase-phase-1-1.json +47 -0
  742. package/.ikie/ferments/019f275c-8970-713f-a498-af24ac57355a/runtime.json +13 -0
  743. package/.ikie/ferments/019f275c-89c6-712f-b3c9-d9459bdaba76/reviews/phase-phase-1-1.json +40 -0
  744. package/.ikie/ferments/019f275c-89c6-712f-b3c9-d9459bdaba76/runtime.json +9 -0
  745. package/.ikie/ferments/019f275c-89e8-7105-9ba9-eda02056339a/reviews/phase-phase-1-1.json +40 -0
  746. package/.ikie/ferments/019f275c-89e8-7105-9ba9-eda02056339a/runtime.json +9 -0
  747. package/.ikie/ferments/019f275c-8a0d-71cb-bbb3-aa061c305aab/reviews/phase-phase-1-1.json +40 -0
  748. package/.ikie/ferments/019f275c-8a0d-71cb-bbb3-aa061c305aab/runtime.json +9 -0
  749. package/.ikie/ferments/019f275c-8a31-758b-87c7-1b2ec8b0bd7a/reviews/phase-phase-1-1.json +40 -0
  750. package/.ikie/ferments/019f275c-8a31-758b-87c7-1b2ec8b0bd7a/runtime.json +9 -0
  751. package/.ikie/ferments/019f275c-8a4f-7649-a250-4074bed6f208/reviews/phase-phase-1-1.json +40 -0
  752. package/.ikie/ferments/019f275c-8a4f-7649-a250-4074bed6f208/runtime.json +9 -0
  753. package/.ikie/ferments/019f275c-8a6e-706d-af6d-f6636f3b229e/reviews/phase-phase-1-1.json +62 -0
  754. package/.ikie/ferments/019f275c-8a6e-706d-af6d-f6636f3b229e/runtime.json +9 -0
  755. package/.ikie/ferments/019f275e-8903-721d-98f8-0135ab6b4698/runtime.json +11 -0
  756. package/.ikie/ferments/019f275e-8920-7644-a529-664b63f9bab1/runtime.json +11 -0
  757. package/.ikie/ferments/019f275e-8938-75c2-85ab-f5a50138a4eb/runtime.json +11 -0
  758. package/.ikie/ferments/019f275e-895e-74a1-b263-2f73d989898e/runtime.json +12 -0
  759. package/.ikie/ferments/019f275e-8977-75ee-9e9a-cc069fff1cfa/runtime.json +11 -0
  760. package/.ikie/ferments/019f275e-899d-773b-abe3-e93c56f57cf1/runtime.json +11 -0
  761. package/.ikie/ferments/019f275e-89d1-72ea-9362-d4ce4079e846/runtime.json +15 -0
  762. package/.ikie/ferments/019f275e-89f9-7007-b382-a55e983d9520/runtime.json +15 -0
  763. package/.ikie/ferments/019f275e-8a1d-7687-a56e-94ead3cafbf8/runtime.json +15 -0
  764. package/.ikie/ferments/019f275e-8a49-760f-9639-3ce1494f37e9/runtime.json +13 -0
  765. package/.ikie/ferments/019f275e-8a7d-7461-b978-c3478b99b386/runtime.json +15 -0
  766. package/.ikie/ferments/019f275e-8aac-736d-bd96-6b442359993b/runtime.json +15 -0
  767. package/.ikie/ferments/019f275e-8ae6-7298-a523-d2fb7287bed3/runtime.json +11 -0
  768. package/.ikie/ferments/019f275e-8b01-7059-85a1-a665334ced3e/runtime.json +15 -0
  769. package/.ikie/ferments/019f275e-8b29-7295-be5b-0468763ab101/runtime.json +15 -0
  770. package/.ikie/ferments/019f275e-8b51-7204-9d30-0a67dae9c341/runtime.json +15 -0
  771. package/.ikie/ferments/019f275e-8b78-71eb-a8a3-1448d3373912/runtime.json +15 -0
  772. package/.ikie/ferments/019f275e-8b9d-76bf-9caa-0fed193b85bf/runtime.json +15 -0
  773. package/.ikie/ferments/019f275e-8bc0-71df-9356-19d3075c9568/runtime.json +15 -0
  774. package/.ikie/ferments/019f275e-8be2-75bd-be4a-ba2ede0e95f3/runtime.json +15 -0
  775. package/.ikie/ferments/019f275e-8c0b-714a-a389-20ffe6d0e66d/runtime.json +15 -0
  776. package/.ikie/ferments/019f275e-8c30-7371-86af-78e5f5ac8b23/runtime.json +15 -0
  777. package/.ikie/ferments/019f275e-8c5a-7383-bd79-c7fec3a71946/runtime.json +11 -0
  778. package/.ikie/ferments/019f275e-8c75-76b1-bcaa-81e67fc35aa8/runtime.json +11 -0
  779. package/.ikie/ferments/019f275e-8caa-71e9-9e66-0d30c4a03123/reviews/phase-phase-1-1.json +63 -0
  780. package/.ikie/ferments/019f275e-8caa-71e9-9e66-0d30c4a03123/runtime.json +17 -0
  781. package/.ikie/ferments/019f275e-8e59-7787-84f8-fcf93ec75949/reviews/phase-phase-1-1.json +63 -0
  782. package/.ikie/ferments/019f275e-8e59-7787-84f8-fcf93ec75949/runtime.json +17 -0
  783. package/.ikie/ferments/019f275e-8ffb-70c2-844e-e1f4fa4c2cc4/runtime.json +11 -0
  784. package/.ikie/ferments/019f275e-949b-7158-a426-07bcca442439/runtime.json +11 -0
  785. package/.ikie/ferments/019f275e-94c6-7479-abcb-c22fc19445a0/runtime.json +11 -0
  786. package/.ikie/ferments/019f275e-94eb-76e9-a148-fb5001492823/runtime.json +11 -0
  787. package/.ikie/ferments/019f275e-9516-765a-b8ee-e88e5ab2530f/runtime.json +11 -0
  788. package/.ikie/ferments/019f275e-9539-740f-bbdb-09b82f71fc81/pending-proposal.json +45 -0
  789. package/.ikie/ferments/019f275e-954f-73e0-9286-fdf09cb1cbc6/pending-proposal.json +45 -0
  790. package/.ikie/ferments/019f275e-967d-73dc-bfaf-18e44335cff8/pending-proposal.json +45 -0
  791. package/.ikie/ferments/019f275e-96f0-702d-b0d2-f2aeb1c7ee15/pending-proposal.json +45 -0
  792. package/.ikie/ferments/019f275e-9708-770c-bae2-2652e32be3cf/pending-proposal.json +45 -0
  793. package/.ikie/ferments/019f275e-c992-77a4-960a-d6d51983c9d6/runtime.json +13 -0
  794. package/.ikie/ferments/019f275e-c9cf-724a-a59f-8e34f026db5e/runtime.json +11 -0
  795. package/.ikie/ferments/019f275e-c9e6-7647-9517-b2b25cd1f495/runtime.json +11 -0
  796. package/.ikie/ferments/019f275e-ca11-716b-832b-11fc14ce1ded/runtime.json +11 -0
  797. package/.ikie/ferments/019f275e-ca2f-74df-90fa-2eed00b55ecf/runtime.json +11 -0
  798. package/.ikie/ferments/019f275e-ca49-77ed-bb62-cd9c3c1176a5/runtime.json +11 -0
  799. package/.ikie/ferments/019f275e-ca62-77ca-aed0-74728cab4be4/runtime.json +11 -0
  800. package/.ikie/ferments/019f275e-ca7a-76aa-a860-42152a699337/runtime.json +11 -0
  801. package/.ikie/ferments/019f275e-ca9b-766c-9ad4-2f86ff5c9dbe/runtime.json +9 -0
  802. package/.ikie/ferments/019f275e-cabc-77cf-a94a-9f8988667998/runtime.json +13 -0
  803. package/.ikie/ferments/019f275e-cae6-76d9-8682-d138cbd0e3cf/runtime.json +11 -0
  804. package/.ikie/ferments/019f275e-cb0a-7361-8e72-84e44afa7847/runtime.json +11 -0
  805. package/.ikie/ferments/019f275e-cb67-71dd-a7b7-35d98fca2379/runtime.json +11 -0
  806. package/.ikie/ferments/019f275e-cb8c-75c8-9a02-812c50dbcc28/runtime.json +9 -0
  807. package/.ikie/ferments/019f275e-cba7-74c5-8a0e-facff616ecf0/runtime.json +9 -0
  808. package/.ikie/ferments/019f275e-cbc6-719a-a1e9-86fad18fb0de/runtime.json +11 -0
  809. package/.ikie/ferments/019f275e-cc83-7608-878d-3b107b55db48/runtime.json +11 -0
  810. package/.ikie/ferments/019f275e-cc96-72f9-9e5d-a350ea59c5b7/runtime.json +12 -0
  811. package/.ikie/ferments/019f275e-ccb5-72bf-8ad6-8ea4f87f86c0/runtime.json +11 -0
  812. package/.ikie/ferments/019f275e-ccd9-77de-89ff-25fa626c05b4/runtime.json +11 -0
  813. package/.ikie/ferments/019f275e-ccfb-777a-8a40-1ccaf4c139c4/runtime.json +11 -0
  814. package/.ikie/ferments/019f275e-cd15-7785-be69-1f9ef80faa52/runtime.json +11 -0
  815. package/.ikie/ferments/019f275e-cd31-7629-9034-57bcde8cf8e1/runtime.json +13 -0
  816. package/.ikie/ferments/019f275e-cd56-74be-8cdd-94af39b5593b/runtime.json +11 -0
  817. package/.ikie/ferments/019f275e-db71-73fb-9992-6d52de708265/reviews/phase-phase-1-1.json +41 -0
  818. package/.ikie/ferments/019f275e-db71-73fb-9992-6d52de708265/runtime.json +11 -0
  819. package/.ikie/ferments/019f275e-dbc0-725b-bb55-3eca5072215b/reviews/phase-phase-1-1.json +47 -0
  820. package/.ikie/ferments/019f275e-dbc0-725b-bb55-3eca5072215b/runtime.json +13 -0
  821. package/.ikie/ferments/019f275e-dc11-7320-bc60-fbca50c8e709/reviews/phase-phase-1-1.json +40 -0
  822. package/.ikie/ferments/019f275e-dc11-7320-bc60-fbca50c8e709/runtime.json +9 -0
  823. package/.ikie/ferments/019f275e-dc39-73ee-9d63-d8fbb906d877/reviews/phase-phase-1-1.json +40 -0
  824. package/.ikie/ferments/019f275e-dc39-73ee-9d63-d8fbb906d877/runtime.json +9 -0
  825. package/.ikie/ferments/019f275e-dc60-7649-9918-b236d9a16cef/reviews/phase-phase-1-1.json +40 -0
  826. package/.ikie/ferments/019f275e-dc60-7649-9918-b236d9a16cef/runtime.json +9 -0
  827. package/.ikie/ferments/019f275e-dc83-7030-aa35-3a78b18fadb4/reviews/phase-phase-1-1.json +40 -0
  828. package/.ikie/ferments/019f275e-dc83-7030-aa35-3a78b18fadb4/runtime.json +9 -0
  829. package/.ikie/ferments/019f275e-dcb3-706f-b3b0-b44556b7d3cb/reviews/phase-phase-1-1.json +40 -0
  830. package/.ikie/ferments/019f275e-dcb3-706f-b3b0-b44556b7d3cb/runtime.json +9 -0
  831. package/.ikie/ferments/019f275e-dcd6-717c-afe6-82a959a0fcbd/reviews/phase-phase-1-1.json +62 -0
  832. package/.ikie/ferments/019f275e-dcd6-717c-afe6-82a959a0fcbd/runtime.json +9 -0
  833. package/.ikie/ferments/019f2764-6cde-7610-b409-ee715ca796e8/runtime.json +11 -0
  834. package/.ikie/ferments/019f2764-6cfa-733d-8231-937535e2e6b8/runtime.json +11 -0
  835. package/.ikie/ferments/019f2764-6d11-7611-b216-dcdaa468d686/runtime.json +11 -0
  836. package/.ikie/ferments/019f2764-6d33-728f-901c-4fef8141050d/runtime.json +12 -0
  837. package/.ikie/ferments/019f2764-6d5d-7314-9e98-3851effc803f/runtime.json +11 -0
  838. package/.ikie/ferments/019f2764-6d87-722e-bf53-0dd6182ea7c6/runtime.json +15 -0
  839. package/.ikie/ferments/019f2764-6daa-7052-b766-8aef8e542b88/runtime.json +15 -0
  840. package/.ikie/ferments/019f2764-6dc9-73fc-8665-a3f8b51f7450/runtime.json +15 -0
  841. package/.ikie/ferments/019f2764-6df3-7368-94a2-5369f3276848/runtime.json +13 -0
  842. package/.ikie/ferments/019f2764-6e25-762c-a0e0-0ef60c6e2653/runtime.json +15 -0
  843. package/.ikie/ferments/019f2764-6e58-733d-ab0e-8fad4b2c665e/runtime.json +15 -0
  844. package/.ikie/ferments/019f2764-6ead-742a-afc5-e10a044333ec/runtime.json +11 -0
  845. package/.ikie/ferments/019f2764-6ec9-7566-a4f0-e0d14f80e103/runtime.json +15 -0
  846. package/.ikie/ferments/019f2764-6efe-727d-a81b-36fbde2904b3/runtime.json +15 -0
  847. package/.ikie/ferments/019f2764-6f3d-7292-bbf4-88e9ee6b077e/runtime.json +15 -0
  848. package/.ikie/ferments/019f2764-6f6c-758f-9427-652571b7494f/runtime.json +15 -0
  849. package/.ikie/ferments/019f2764-6faa-700b-8d2d-cbed35957db8/runtime.json +15 -0
  850. package/.ikie/ferments/019f2764-6fcb-71d8-9daf-225746805ba4/runtime.json +15 -0
  851. package/.ikie/ferments/019f2764-6ff0-7573-9208-e236e2969c5a/runtime.json +15 -0
  852. package/.ikie/ferments/019f2764-7012-77ce-97c9-6e99dd0367b3/runtime.json +15 -0
  853. package/.ikie/ferments/019f2764-703d-7554-8008-5104879d081d/runtime.json +15 -0
  854. package/.ikie/ferments/019f2764-7082-7399-80d5-659015dc6129/runtime.json +11 -0
  855. package/.ikie/ferments/019f2764-70b4-7581-b83e-9945010b008b/runtime.json +11 -0
  856. package/.ikie/ferments/019f2764-70d2-71a1-8b2f-1db7c0de5d5b/reviews/phase-phase-1-1.json +63 -0
  857. package/.ikie/ferments/019f2764-70d2-71a1-8b2f-1db7c0de5d5b/runtime.json +17 -0
  858. package/.ikie/ferments/019f2764-7256-714b-9804-17a6ad3c7996/reviews/phase-phase-1-1.json +63 -0
  859. package/.ikie/ferments/019f2764-7256-714b-9804-17a6ad3c7996/runtime.json +17 -0
  860. package/.ikie/ferments/019f2764-742b-711f-9997-ae6ce141d7d9/runtime.json +11 -0
  861. package/.ikie/ferments/019f2764-78e4-765c-bcf6-ae76955d98c0/runtime.json +11 -0
  862. package/.ikie/ferments/019f2764-7900-7573-afaf-c32d1b6a7be0/runtime.json +11 -0
  863. package/.ikie/ferments/019f2764-7920-7463-b2c3-132980285998/runtime.json +11 -0
  864. package/.ikie/ferments/019f2764-7947-721f-9c5e-6fc087b2e912/runtime.json +11 -0
  865. package/.ikie/ferments/019f2764-7967-735b-9066-12a93c490f17/pending-proposal.json +45 -0
  866. package/.ikie/ferments/019f2764-798b-749d-b86b-90c55c838b29/pending-proposal.json +45 -0
  867. package/.ikie/ferments/019f2764-7a9f-747c-81ce-f27825e1cefb/pending-proposal.json +45 -0
  868. package/.ikie/ferments/019f2764-7afc-745a-8d70-a2ebf234977d/pending-proposal.json +45 -0
  869. package/.ikie/ferments/019f2764-7b0f-715d-a410-e707593c0f1b/pending-proposal.json +45 -0
  870. package/.ikie/ferments/019f2764-a49c-750d-8022-8d5ef7b34341/runtime.json +13 -0
  871. package/.ikie/ferments/019f2764-a4c0-7779-a268-1589e2c4d025/runtime.json +11 -0
  872. package/.ikie/ferments/019f2764-a4e2-706f-8cc3-f71f13a5334c/runtime.json +11 -0
  873. package/.ikie/ferments/019f2764-a4fc-765c-b248-0fd90d273737/runtime.json +11 -0
  874. package/.ikie/ferments/019f2764-a511-7719-b577-47d9389dc68c/runtime.json +11 -0
  875. package/.ikie/ferments/019f2764-a524-731c-91d5-99c2242128e7/runtime.json +11 -0
  876. package/.ikie/ferments/019f2764-a53c-7308-a4a2-2c4ebd0af1f2/runtime.json +11 -0
  877. package/.ikie/ferments/019f2764-a555-762a-b6ec-c7a1ea59914b/runtime.json +11 -0
  878. package/.ikie/ferments/019f2764-a56e-776a-8421-d52ce16332e6/runtime.json +9 -0
  879. package/.ikie/ferments/019f2764-a584-75ad-8cf4-02ad739aeac6/runtime.json +13 -0
  880. package/.ikie/ferments/019f2764-a5a6-716c-8803-03dfe8638639/runtime.json +11 -0
  881. package/.ikie/ferments/019f2764-a5cb-75a8-9184-8bc493e04858/runtime.json +11 -0
  882. package/.ikie/ferments/019f2764-a613-726d-9770-828b95668f3d/runtime.json +11 -0
  883. package/.ikie/ferments/019f2764-a62b-703f-ad34-e560da58091f/runtime.json +9 -0
  884. package/.ikie/ferments/019f2764-a646-75a7-a048-e1c6a57c17db/runtime.json +9 -0
  885. package/.ikie/ferments/019f2764-a65d-7369-8043-22e8aa877564/runtime.json +11 -0
  886. package/.ikie/ferments/019f2764-a714-7737-9aca-229d1f730df1/runtime.json +11 -0
  887. package/.ikie/ferments/019f2764-a725-71af-91db-6146483607ce/runtime.json +12 -0
  888. package/.ikie/ferments/019f2764-a748-721c-a9bb-9a5cd1a6390b/runtime.json +11 -0
  889. package/.ikie/ferments/019f2764-a761-7632-84ba-5d4da92e371d/runtime.json +11 -0
  890. package/.ikie/ferments/019f2764-a776-76dd-a48e-148e4d5e6dcd/runtime.json +11 -0
  891. package/.ikie/ferments/019f2764-a78f-77d0-9647-ffb2ed828229/runtime.json +11 -0
  892. package/.ikie/ferments/019f2764-a7ab-716e-958d-c3f3c4d33a34/runtime.json +13 -0
  893. package/.ikie/ferments/019f2764-a7cb-775b-8844-8faa27f1ac1c/runtime.json +11 -0
  894. package/.ikie/ferments/019f2764-bd5e-773d-9b24-9da824db3174/reviews/phase-phase-1-1.json +41 -0
  895. package/.ikie/ferments/019f2764-bd5e-773d-9b24-9da824db3174/runtime.json +11 -0
  896. package/.ikie/ferments/019f2764-bda9-7207-b421-beff2d49cd2a/reviews/phase-phase-1-1.json +47 -0
  897. package/.ikie/ferments/019f2764-bda9-7207-b421-beff2d49cd2a/runtime.json +13 -0
  898. package/.ikie/ferments/019f2764-be1e-775f-b937-81b9fd368168/reviews/phase-phase-1-1.json +40 -0
  899. package/.ikie/ferments/019f2764-be1e-775f-b937-81b9fd368168/runtime.json +9 -0
  900. package/.ikie/ferments/019f2764-be38-7792-b549-8583fd6c5e70/reviews/phase-phase-1-1.json +40 -0
  901. package/.ikie/ferments/019f2764-be38-7792-b549-8583fd6c5e70/runtime.json +9 -0
  902. package/.ikie/ferments/019f2764-be5e-73da-85c5-508167795c94/reviews/phase-phase-1-1.json +40 -0
  903. package/.ikie/ferments/019f2764-be5e-73da-85c5-508167795c94/runtime.json +9 -0
  904. package/.ikie/ferments/019f2764-be82-721a-aa06-3b54c6236827/reviews/phase-phase-1-1.json +40 -0
  905. package/.ikie/ferments/019f2764-be82-721a-aa06-3b54c6236827/runtime.json +9 -0
  906. package/.ikie/ferments/019f2764-be97-703d-8e0a-6496ed0a83ca/reviews/phase-phase-1-1.json +40 -0
  907. package/.ikie/ferments/019f2764-be97-703d-8e0a-6496ed0a83ca/runtime.json +9 -0
  908. package/.ikie/ferments/019f2764-bebc-756a-a6ca-0f40b9705a0f/reviews/phase-phase-1-1.json +62 -0
  909. package/.ikie/ferments/019f2764-bebc-756a-a6ca-0f40b9705a0f/runtime.json +9 -0
  910. package/.ikie/ferments/019f2766-a81a-73aa-ba58-4a0192a7b079/runtime.json +11 -0
  911. package/.ikie/ferments/019f2766-a839-708c-b3bf-4c3f2279558e/runtime.json +11 -0
  912. package/.ikie/ferments/019f2766-a852-7641-a85f-69ea0ce5d73b/runtime.json +11 -0
  913. package/.ikie/ferments/019f2766-a877-74b8-b1de-3ffbbcb6f14b/runtime.json +12 -0
  914. package/.ikie/ferments/019f2766-a892-767d-b447-2e7a666f42f0/runtime.json +11 -0
  915. package/.ikie/ferments/019f2766-a8c2-7178-b06c-00d7646d1966/runtime.json +11 -0
  916. package/.ikie/ferments/019f2766-a8f5-713b-92d4-c4c70e48c5db/runtime.json +15 -0
  917. package/.ikie/ferments/019f2766-a91c-76a8-9d47-7e07b7843506/runtime.json +15 -0
  918. package/.ikie/ferments/019f2766-a944-7458-bae5-e3c38b3eec06/runtime.json +15 -0
  919. package/.ikie/ferments/019f2766-a973-77da-b2c0-d4f59f145d19/runtime.json +13 -0
  920. package/.ikie/ferments/019f2766-a9ae-701f-b8af-2d02369bc2f1/runtime.json +15 -0
  921. package/.ikie/ferments/019f2766-a9e5-7319-882f-58450ee132ea/runtime.json +15 -0
  922. package/.ikie/ferments/019f2766-aa3a-722b-9ed0-f38465896d02/runtime.json +11 -0
  923. package/.ikie/ferments/019f2766-aa58-7389-b25e-688385ff4a7f/runtime.json +15 -0
  924. package/.ikie/ferments/019f2766-aa8c-72f1-8b4e-a5260ac64189/runtime.json +15 -0
  925. package/.ikie/ferments/019f2766-aab7-7310-a9ec-b3027823b960/runtime.json +15 -0
  926. package/.ikie/ferments/019f2766-aae0-714c-b796-491d0c0d0e5b/runtime.json +15 -0
  927. package/.ikie/ferments/019f2766-ab05-740a-9fe0-2882dcad789b/runtime.json +15 -0
  928. package/.ikie/ferments/019f2766-ab2d-7188-9d25-545da08208e3/runtime.json +15 -0
  929. package/.ikie/ferments/019f2766-ab55-71d1-aafa-b6c62c6d7c7c/runtime.json +15 -0
  930. package/.ikie/ferments/019f2766-ab7f-76a1-9cde-c84ebb38a76c/runtime.json +15 -0
  931. package/.ikie/ferments/019f2766-abad-71db-9b6c-c341a91e609c/runtime.json +15 -0
  932. package/.ikie/ferments/019f2766-abd1-7392-a14e-a62f58887e86/runtime.json +11 -0
  933. package/.ikie/ferments/019f2766-abee-7229-9251-77f5474df062/runtime.json +11 -0
  934. package/.ikie/ferments/019f2766-ac13-77ab-ad1f-179bbf19f285/reviews/phase-phase-1-1.json +63 -0
  935. package/.ikie/ferments/019f2766-ac13-77ab-ad1f-179bbf19f285/runtime.json +17 -0
  936. package/.ikie/ferments/019f2766-ad4e-771a-8809-da61d5e9187d/reviews/phase-phase-1-1.json +63 -0
  937. package/.ikie/ferments/019f2766-ad4e-771a-8809-da61d5e9187d/runtime.json +17 -0
  938. package/.ikie/ferments/019f2766-aec7-72c7-8400-65d8774d93fe/runtime.json +11 -0
  939. package/.ikie/ferments/019f2766-b2e5-775e-a211-97476c9184fa/runtime.json +11 -0
  940. package/.ikie/ferments/019f2766-b303-70c5-a66a-e39ce29d0a4a/runtime.json +11 -0
  941. package/.ikie/ferments/019f2766-b32e-7618-860c-3cf1a98c2562/runtime.json +11 -0
  942. package/.ikie/ferments/019f2766-b353-719b-9299-207b9a3b41b3/runtime.json +11 -0
  943. package/.ikie/ferments/019f2766-b374-72e3-a804-8f3c82dc2059/pending-proposal.json +45 -0
  944. package/.ikie/ferments/019f2766-b38b-75ca-83c3-d4e5625f814b/pending-proposal.json +45 -0
  945. package/.ikie/ferments/019f2766-b495-73d6-a0d3-b26c033d4769/pending-proposal.json +45 -0
  946. package/.ikie/ferments/019f2766-b4e1-70f8-a38e-c478ab72c091/pending-proposal.json +45 -0
  947. package/.ikie/ferments/019f2766-b4f5-7671-b2c4-76d6f9f68cd3/pending-proposal.json +45 -0
  948. package/.ikie/ferments/019f2766-d341-7410-8d94-056f70b5d884/runtime.json +11 -0
  949. package/.ikie/ferments/019f2766-d35f-71a3-bdd3-c749aa870ff8/runtime.json +11 -0
  950. package/.ikie/ferments/019f2766-d382-70be-9a79-094070335d58/runtime.json +11 -0
  951. package/.ikie/ferments/019f2766-d3ae-75c7-b83e-4636e859cf7d/runtime.json +12 -0
  952. package/.ikie/ferments/019f2766-d3c7-778d-b399-f3e13fa34204/runtime.json +11 -0
  953. package/.ikie/ferments/019f2766-d3f0-7730-9e47-9bbc5483d5c9/runtime.json +11 -0
  954. package/.ikie/ferments/019f2766-d422-74ab-8e0b-6b5f139658b8/runtime.json +15 -0
  955. package/.ikie/ferments/019f2766-d448-7428-94ec-084521c6f60a/runtime.json +15 -0
  956. package/.ikie/ferments/019f2766-d46e-730e-89a6-dd0907baa5aa/runtime.json +15 -0
  957. package/.ikie/ferments/019f2766-d49b-71df-91f7-b4fb8e050c88/runtime.json +13 -0
  958. package/.ikie/ferments/019f2766-d4d6-72fd-b5ab-8aa8554c3ac8/runtime.json +15 -0
  959. package/.ikie/ferments/019f2766-d50b-7146-a0e2-bcc33cbf8168/runtime.json +15 -0
  960. package/.ikie/ferments/019f2766-d54e-7614-a157-8c6225b09552/runtime.json +11 -0
  961. package/.ikie/ferments/019f2766-d571-72f9-ac5f-9a58f8913af1/runtime.json +15 -0
  962. package/.ikie/ferments/019f2766-d5aa-7756-b523-29a10b1f0f93/runtime.json +15 -0
  963. package/.ikie/ferments/019f2766-d5ce-77b9-9746-ca5281e76d1e/runtime.json +15 -0
  964. package/.ikie/ferments/019f2766-d5f2-76ee-92f0-88e85515bb8c/runtime.json +15 -0
  965. package/.ikie/ferments/019f2766-d617-7669-8175-57038e3790b0/runtime.json +15 -0
  966. package/.ikie/ferments/019f2766-d63b-72aa-a6ca-f355b068db00/runtime.json +15 -0
  967. package/.ikie/ferments/019f2766-d664-754e-b827-42f9c6fc161b/runtime.json +15 -0
  968. package/.ikie/ferments/019f2766-d68c-710d-8769-befe67aad042/runtime.json +15 -0
  969. package/.ikie/ferments/019f2766-d6af-767c-9547-eee7f9c08dcf/runtime.json +15 -0
  970. package/.ikie/ferments/019f2766-d6d5-751e-8752-dcdc451712e2/runtime.json +11 -0
  971. package/.ikie/ferments/019f2766-d6f7-77b8-807d-75d914ff0302/runtime.json +11 -0
  972. package/.ikie/ferments/019f2766-d720-7159-97a9-820f305b3805/reviews/phase-phase-1-1.json +63 -0
  973. package/.ikie/ferments/019f2766-d720-7159-97a9-820f305b3805/runtime.json +17 -0
  974. package/.ikie/ferments/019f2766-d87f-729d-be05-90c4adb20ade/reviews/phase-phase-1-1.json +63 -0
  975. package/.ikie/ferments/019f2766-d87f-729d-be05-90c4adb20ade/runtime.json +17 -0
  976. package/.ikie/ferments/019f2766-da17-724b-ab3c-7154c7845381/runtime.json +11 -0
  977. package/.ikie/ferments/019f2766-ddf5-7470-a884-297c8936753a/runtime.json +11 -0
  978. package/.ikie/ferments/019f2766-de1a-7283-89b6-a249b9c8bdc1/runtime.json +11 -0
  979. package/.ikie/ferments/019f2766-de39-7771-a717-14beb4313f79/runtime.json +11 -0
  980. package/.ikie/ferments/019f2766-de5b-7418-bbcc-2ed38543137c/runtime.json +11 -0
  981. package/.ikie/ferments/019f2766-de7d-76cc-a74f-def9d1d99ac3/pending-proposal.json +45 -0
  982. package/.ikie/ferments/019f2766-de92-75a2-bcae-86efd5efe066/pending-proposal.json +45 -0
  983. package/.ikie/ferments/019f2766-dfb5-771c-adc0-9e948e0b8f18/pending-proposal.json +45 -0
  984. package/.ikie/ferments/019f2766-dff6-71cd-a14e-ab9e88792ca4/pending-proposal.json +45 -0
  985. package/.ikie/ferments/019f2766-e006-727b-83d9-af9c71158bef/pending-proposal.json +45 -0
  986. package/.ikie/ferments/019f2767-0345-74ba-a163-0c909ee37df1/runtime.json +11 -0
  987. package/.ikie/ferments/019f2767-036c-713d-9ef9-58a1191bd341/runtime.json +11 -0
  988. package/.ikie/ferments/019f2767-0387-72e6-b8b6-314fedade6e0/runtime.json +11 -0
  989. package/.ikie/ferments/019f2767-03af-738b-acde-360fa30a55f8/runtime.json +12 -0
  990. package/.ikie/ferments/019f2767-03cc-76e8-ae01-5b33c85fb46b/runtime.json +11 -0
  991. package/.ikie/ferments/019f2767-0409-7745-8f9d-a41ce8b7b11e/runtime.json +11 -0
  992. package/.ikie/ferments/019f2767-0467-70a9-8a75-2688109ab9c3/runtime.json +15 -0
  993. package/.ikie/ferments/019f2767-0493-7047-b2c9-a7ed6f70c89f/runtime.json +15 -0
  994. package/.ikie/ferments/019f2767-04b7-7486-a7cf-5ad7a09060a7/runtime.json +15 -0
  995. package/.ikie/ferments/019f2767-050f-713f-ba94-c01b549b3dfa/runtime.json +13 -0
  996. package/.ikie/ferments/019f2767-0561-7481-90da-2febe6cffddd/runtime.json +15 -0
  997. package/.ikie/ferments/019f2767-059c-74bb-b3fb-5e762939b3f6/runtime.json +15 -0
  998. package/.ikie/ferments/019f2767-05f6-7778-87d7-bd17f16cbfb5/runtime.json +11 -0
  999. package/.ikie/ferments/019f2767-0621-765e-9af4-4fd53e8fa0ec/runtime.json +15 -0
  1000. package/.ikie/ferments/019f2767-0652-77a4-86f8-fd32c3d03927/runtime.json +15 -0
  1001. package/.ikie/ferments/019f2767-067b-734b-85e5-cd7fc79c73cb/runtime.json +15 -0
  1002. package/.ikie/ferments/019f2767-06aa-71fa-a287-db9463cdae51/runtime.json +15 -0
  1003. package/.ikie/ferments/019f2767-06d5-771d-8f7b-cb18b2f9f122/runtime.json +15 -0
  1004. package/.ikie/ferments/019f2767-070a-7043-87fe-09012eaea4d6/runtime.json +15 -0
  1005. package/.ikie/ferments/019f2767-0733-707e-b141-7af7e0e43e30/runtime.json +15 -0
  1006. package/.ikie/ferments/019f2767-0751-7478-ae88-39af753f8f08/runtime.json +15 -0
  1007. package/.ikie/ferments/019f2767-0791-73af-be60-fe5a809f66bc/runtime.json +15 -0
  1008. package/.ikie/ferments/019f2767-07c5-720a-b9b7-1f96816c4122/runtime.json +11 -0
  1009. package/.ikie/ferments/019f2767-07e4-74fc-bf92-5f4c9c1cefab/runtime.json +11 -0
  1010. package/.ikie/ferments/019f2767-080c-77c8-a174-e8b97bd69510/reviews/phase-phase-1-1.json +63 -0
  1011. package/.ikie/ferments/019f2767-080c-77c8-a174-e8b97bd69510/runtime.json +17 -0
  1012. package/.ikie/ferments/019f2767-0986-7509-b1d0-7650aae65deb/reviews/phase-phase-1-1.json +63 -0
  1013. package/.ikie/ferments/019f2767-0986-7509-b1d0-7650aae65deb/runtime.json +17 -0
  1014. package/.ikie/ferments/019f2767-0b6e-7011-aec4-f728f98727ed/runtime.json +11 -0
  1015. package/.ikie/ferments/019f2767-10a6-75cc-850a-34d704f7eac9/runtime.json +11 -0
  1016. package/.ikie/ferments/019f2767-10cf-70aa-a00c-086ec4813201/runtime.json +11 -0
  1017. package/.ikie/ferments/019f2767-1101-74f7-8518-da795dd7aef7/runtime.json +11 -0
  1018. package/.ikie/ferments/019f2767-1140-738e-b9ce-35b94e415549/runtime.json +11 -0
  1019. package/.ikie/ferments/019f2767-1172-75a9-8f24-74316bfc7d53/pending-proposal.json +45 -0
  1020. package/.ikie/ferments/019f2767-118b-7048-a5d7-cffbef0e44e2/pending-proposal.json +45 -0
  1021. package/.ikie/ferments/019f2767-12be-730b-92b2-0bba958b78a1/pending-proposal.json +45 -0
  1022. package/.ikie/ferments/019f2767-131f-720b-b45a-382835a523ef/pending-proposal.json +45 -0
  1023. package/.ikie/ferments/019f2767-1335-74eb-b84c-9af1e9e52ff0/pending-proposal.json +45 -0
  1024. package/.ikie/ferments/019f2767-4563-715a-8c3c-cadf61ab94cf/runtime.json +13 -0
  1025. package/.ikie/ferments/019f2767-45b2-701b-990c-a8a30ff2c5f2/runtime.json +11 -0
  1026. package/.ikie/ferments/019f2767-45d7-705e-a8fc-202c2c894d5f/runtime.json +11 -0
  1027. package/.ikie/ferments/019f2767-45ee-773f-a4e7-6022c91b113c/runtime.json +11 -0
  1028. package/.ikie/ferments/019f2767-4613-7769-b4fa-6abde054e49d/runtime.json +11 -0
  1029. package/.ikie/ferments/019f2767-4626-704a-9d3e-6d51ff2c45c6/runtime.json +11 -0
  1030. package/.ikie/ferments/019f2767-4637-7346-b00e-35216ec55688/runtime.json +11 -0
  1031. package/.ikie/ferments/019f2767-4649-709c-9269-7d92ac49807a/runtime.json +11 -0
  1032. package/.ikie/ferments/019f2767-465e-76ec-a7c0-c63d79f0807f/runtime.json +9 -0
  1033. package/.ikie/ferments/019f2767-4679-76c1-8e62-1c105c4c6b0b/runtime.json +13 -0
  1034. package/.ikie/ferments/019f2767-4692-762a-963b-a53456d259fc/runtime.json +11 -0
  1035. package/.ikie/ferments/019f2767-46a7-7236-9510-fd0d5ecf273f/runtime.json +11 -0
  1036. package/.ikie/ferments/019f2767-46ee-705c-ad1a-e028ca79062a/runtime.json +11 -0
  1037. package/.ikie/ferments/019f2767-4702-741b-bb09-b4fd8cd9f15a/runtime.json +9 -0
  1038. package/.ikie/ferments/019f2767-4720-7192-9e90-89cc2710255a/runtime.json +9 -0
  1039. package/.ikie/ferments/019f2767-475f-70dc-9883-271aaa69c2b4/runtime.json +11 -0
  1040. package/.ikie/ferments/019f2767-4852-749f-9c8b-920b2c2b25d3/runtime.json +11 -0
  1041. package/.ikie/ferments/019f2767-486c-7309-a9ff-92579b04dc8c/runtime.json +12 -0
  1042. package/.ikie/ferments/019f2767-4899-771f-9f50-89e448dff488/runtime.json +11 -0
  1043. package/.ikie/ferments/019f2767-48ae-7328-a163-a959e2087743/runtime.json +11 -0
  1044. package/.ikie/ferments/019f2767-48ce-717a-828c-6b765da0a306/runtime.json +11 -0
  1045. package/.ikie/ferments/019f2767-48ef-707c-a17e-9db9da0eee1f/runtime.json +11 -0
  1046. package/.ikie/ferments/019f2767-490b-704b-9369-05fcbb050e2b/runtime.json +13 -0
  1047. package/.ikie/ferments/019f2767-4938-752e-a022-f76dadf8fcaf/runtime.json +11 -0
  1048. package/.ikie/ferments/019f2767-5cc6-73b9-b8e4-cb3719bbdc8d/reviews/phase-phase-1-1.json +41 -0
  1049. package/.ikie/ferments/019f2767-5cc6-73b9-b8e4-cb3719bbdc8d/runtime.json +11 -0
  1050. package/.ikie/ferments/019f2767-5d22-7419-840b-e18d2fe5a41d/reviews/phase-phase-1-1.json +47 -0
  1051. package/.ikie/ferments/019f2767-5d22-7419-840b-e18d2fe5a41d/runtime.json +13 -0
  1052. package/.ikie/ferments/019f2767-5d8c-75b0-bf28-5a0781cd0686/reviews/phase-phase-1-1.json +40 -0
  1053. package/.ikie/ferments/019f2767-5d8c-75b0-bf28-5a0781cd0686/runtime.json +9 -0
  1054. package/.ikie/ferments/019f2767-5dae-76e9-b23a-366527e3a529/reviews/phase-phase-1-1.json +40 -0
  1055. package/.ikie/ferments/019f2767-5dae-76e9-b23a-366527e3a529/runtime.json +9 -0
  1056. package/.ikie/ferments/019f2767-5dd4-73bf-821e-d74e53b266e1/reviews/phase-phase-1-1.json +40 -0
  1057. package/.ikie/ferments/019f2767-5dd4-73bf-821e-d74e53b266e1/runtime.json +9 -0
  1058. package/.ikie/ferments/019f2767-5de9-7518-a677-02b4926a0196/reviews/phase-phase-1-1.json +40 -0
  1059. package/.ikie/ferments/019f2767-5de9-7518-a677-02b4926a0196/runtime.json +9 -0
  1060. package/.ikie/ferments/019f2767-5dff-772a-b855-57afbb5e9c7e/reviews/phase-phase-1-1.json +40 -0
  1061. package/.ikie/ferments/019f2767-5dff-772a-b855-57afbb5e9c7e/runtime.json +9 -0
  1062. package/.ikie/ferments/019f2767-5e39-76a5-8dcc-6f9004f4a58e/reviews/phase-phase-1-1.json +62 -0
  1063. package/.ikie/ferments/019f2767-5e39-76a5-8dcc-6f9004f4a58e/runtime.json +9 -0
  1064. package/.ikie/ferments/019f2769-b766-74eb-844e-9903bf64f06d/runtime.json +11 -0
  1065. package/.ikie/ferments/019f2769-b784-72fa-a138-7bdc2fc6e070/runtime.json +11 -0
  1066. package/.ikie/ferments/019f2769-b79d-745b-b577-2ee15d5649b0/runtime.json +11 -0
  1067. package/.ikie/ferments/019f2769-b7c3-75be-9db0-360b0deea44b/runtime.json +12 -0
  1068. package/.ikie/ferments/019f2769-b7e0-758f-bd6a-734520ad3afa/runtime.json +11 -0
  1069. package/.ikie/ferments/019f2769-b807-721e-8827-30e490c8823c/runtime.json +11 -0
  1070. package/.ikie/ferments/019f2769-b836-727d-9c7f-b5a5f03dcc56/runtime.json +15 -0
  1071. package/.ikie/ferments/019f2769-b858-76ae-9fe0-b56d97afdf9b/runtime.json +15 -0
  1072. package/.ikie/ferments/019f2769-b87a-716c-9c81-14f1fa52f217/runtime.json +15 -0
  1073. package/.ikie/ferments/019f2769-b8a2-73dc-9d6d-ac781b700816/runtime.json +13 -0
  1074. package/.ikie/ferments/019f2769-b8d1-7689-9405-e97b063ec3a1/runtime.json +15 -0
  1075. package/.ikie/ferments/019f2769-b904-7154-8946-12e041f89921/runtime.json +15 -0
  1076. package/.ikie/ferments/019f2769-b941-713f-8e2b-1a608dec7ca6/runtime.json +11 -0
  1077. package/.ikie/ferments/019f2769-b95b-7122-bb5d-0bb3a2ad220a/runtime.json +15 -0
  1078. package/.ikie/ferments/019f2769-b97d-728d-b8fb-b1f302b1d819/runtime.json +15 -0
  1079. package/.ikie/ferments/019f2769-b99d-747b-853b-e415c006bfd2/runtime.json +15 -0
  1080. package/.ikie/ferments/019f2769-b9c0-76d6-a254-fba31ac6b662/runtime.json +15 -0
  1081. package/.ikie/ferments/019f2769-b9dd-7349-b246-95853d5d3af0/runtime.json +15 -0
  1082. package/.ikie/ferments/019f2769-b9fe-774f-80cd-06bfedd8a956/runtime.json +15 -0
  1083. package/.ikie/ferments/019f2769-ba1e-70d2-af18-3ea245abc903/runtime.json +15 -0
  1084. package/.ikie/ferments/019f2769-ba45-7730-aae9-9ca14bc6a81b/runtime.json +15 -0
  1085. package/.ikie/ferments/019f2769-ba72-7273-903c-d33bcd036a6b/runtime.json +15 -0
  1086. package/.ikie/ferments/019f2769-ba93-70f3-8884-7b067dd711a4/runtime.json +11 -0
  1087. package/.ikie/ferments/019f2769-baad-714f-8207-a7d630f37e84/runtime.json +11 -0
  1088. package/.ikie/ferments/019f2769-bac7-75ae-95cb-dda85f7fd6a8/reviews/phase-phase-1-1.json +63 -0
  1089. package/.ikie/ferments/019f2769-bac7-75ae-95cb-dda85f7fd6a8/runtime.json +17 -0
  1090. package/.ikie/ferments/019f2769-bbf3-745d-87d3-d594593afbf0/reviews/phase-phase-1-1.json +63 -0
  1091. package/.ikie/ferments/019f2769-bbf3-745d-87d3-d594593afbf0/runtime.json +17 -0
  1092. package/.ikie/ferments/019f2769-bd4e-735d-b931-2077f62d385a/runtime.json +11 -0
  1093. package/.ikie/ferments/019f2769-c103-723f-aebe-ab3ae76aedd9/runtime.json +11 -0
  1094. package/.ikie/ferments/019f2769-c11e-771a-b365-96bf54691b95/runtime.json +11 -0
  1095. package/.ikie/ferments/019f2769-c13b-749e-840d-5136528371f3/runtime.json +11 -0
  1096. package/.ikie/ferments/019f2769-c15a-7065-83b5-2064b699a6d9/runtime.json +11 -0
  1097. package/.ikie/ferments/019f2769-c175-77b2-80df-918134508175/pending-proposal.json +45 -0
  1098. package/.ikie/ferments/019f2769-c189-7508-8a46-3ff461bf759f/pending-proposal.json +45 -0
  1099. package/.ikie/ferments/019f2769-c27c-71eb-910f-36daf69588f8/pending-proposal.json +45 -0
  1100. package/.ikie/ferments/019f2769-c2c5-71bd-b6a6-dd0f8365cc7c/pending-proposal.json +45 -0
  1101. package/.ikie/ferments/019f2769-c2d6-7260-bab6-3e46b6e9100c/pending-proposal.json +45 -0
  1102. package/.ikie/ferments/019f2769-e6d9-700b-a486-64cad0909610/runtime.json +11 -0
  1103. package/.ikie/ferments/019f2769-e6f5-7524-955a-dd4d91813ee5/runtime.json +11 -0
  1104. package/.ikie/ferments/019f2769-e713-715e-9450-42b5250709c8/runtime.json +11 -0
  1105. package/.ikie/ferments/019f2769-e738-7537-b5d5-5209200233da/runtime.json +12 -0
  1106. package/.ikie/ferments/019f2769-e769-752f-b806-14f369200356/runtime.json +11 -0
  1107. package/.ikie/ferments/019f2769-e795-77e8-bc69-fa7496923f00/runtime.json +15 -0
  1108. package/.ikie/ferments/019f2769-e7bb-72a8-ba2a-6d90fe6003cc/runtime.json +15 -0
  1109. package/.ikie/ferments/019f2769-e7e1-719b-becd-d456fe580bf8/runtime.json +15 -0
  1110. package/.ikie/ferments/019f2769-e80b-7539-ac23-4ccf01499e01/runtime.json +13 -0
  1111. package/.ikie/ferments/019f2769-e83e-77c7-8415-7b3e76c827b1/runtime.json +15 -0
  1112. package/.ikie/ferments/019f2769-e86c-7008-8cdb-4d2ae411fc57/runtime.json +15 -0
  1113. package/.ikie/ferments/019f2769-e8ac-7480-b1cc-6913e20e012f/runtime.json +11 -0
  1114. package/.ikie/ferments/019f2769-e8ca-76bd-b0be-bee2f2a97d7d/runtime.json +15 -0
  1115. package/.ikie/ferments/019f2769-e904-7759-b2aa-dbb47427c11b/runtime.json +15 -0
  1116. package/.ikie/ferments/019f2769-e92a-7285-bbd7-ed4220ac3f44/runtime.json +15 -0
  1117. package/.ikie/ferments/019f2769-e95e-77eb-9e17-6b2ad4532f0c/runtime.json +15 -0
  1118. package/.ikie/ferments/019f2769-e992-75ea-adf9-53f548b600a0/runtime.json +15 -0
  1119. package/.ikie/ferments/019f2769-e9b9-75bc-ab7a-a4ba5e8f1124/runtime.json +15 -0
  1120. package/.ikie/ferments/019f2769-e9ec-700b-990f-320c347ee271/runtime.json +15 -0
  1121. package/.ikie/ferments/019f2769-ea15-72cb-96af-a45603082ee1/runtime.json +15 -0
  1122. package/.ikie/ferments/019f2769-ea42-735c-b71e-259c75688841/runtime.json +15 -0
  1123. package/.ikie/ferments/019f2769-ea6f-7074-acde-65385abd199a/runtime.json +11 -0
  1124. package/.ikie/ferments/019f2769-ea98-759c-aeda-90b28cab640c/runtime.json +11 -0
  1125. package/.ikie/ferments/019f2769-eac3-70a7-993e-435d9a1dfd91/reviews/phase-phase-1-1.json +63 -0
  1126. package/.ikie/ferments/019f2769-eac3-70a7-993e-435d9a1dfd91/runtime.json +17 -0
  1127. package/.ikie/ferments/019f2769-ec3c-7674-829a-fba66a9bc62e/reviews/phase-phase-1-1.json +63 -0
  1128. package/.ikie/ferments/019f2769-ec3c-7674-829a-fba66a9bc62e/runtime.json +17 -0
  1129. package/.ikie/ferments/019f2769-edcb-748c-be28-51e21c608c6f/runtime.json +11 -0
  1130. package/.ikie/ferments/019f2769-f2df-7759-811f-ef76a54375e8/runtime.json +11 -0
  1131. package/.ikie/ferments/019f2769-f311-7641-88b0-81c54945642f/runtime.json +11 -0
  1132. package/.ikie/ferments/019f2769-f363-723b-80f1-b52334dc6a15/runtime.json +11 -0
  1133. package/.ikie/ferments/019f2769-f38e-72cc-a4ac-81cefc3a95f4/runtime.json +11 -0
  1134. package/.ikie/ferments/019f2769-f3b6-763a-bf65-011ce164f5d4/pending-proposal.json +45 -0
  1135. package/.ikie/ferments/019f2769-f3c7-745e-9da1-37e14b1cfddf/pending-proposal.json +45 -0
  1136. package/.ikie/ferments/019f2769-f4e4-71b1-83f1-b16014904ec3/pending-proposal.json +45 -0
  1137. package/.ikie/ferments/019f2769-f556-761d-b331-acc7cc02317d/pending-proposal.json +45 -0
  1138. package/.ikie/ferments/019f2769-f56d-77af-82f3-b9915ca80a61/pending-proposal.json +45 -0
  1139. package/.ikie/ferments/019f276a-23f9-7653-8be0-dca748ac5e0f/runtime.json +13 -0
  1140. package/.ikie/ferments/019f276a-2428-731f-959b-8d346551f0c4/runtime.json +11 -0
  1141. package/.ikie/ferments/019f276a-2446-7250-be5c-bdb0ac1ef2fa/runtime.json +11 -0
  1142. package/.ikie/ferments/019f276a-2462-764e-a7f4-d9ab3876fbd2/runtime.json +11 -0
  1143. package/.ikie/ferments/019f276a-2482-768b-919e-d81a0709abd5/runtime.json +11 -0
  1144. package/.ikie/ferments/019f276a-2494-77ee-8b28-72b9b0d19d56/runtime.json +11 -0
  1145. package/.ikie/ferments/019f276a-24aa-76fd-8fba-2a1d73960010/runtime.json +11 -0
  1146. package/.ikie/ferments/019f276a-24c3-7799-bd35-0a3374f3e469/runtime.json +11 -0
  1147. package/.ikie/ferments/019f276a-24f1-7498-a372-975f72302a0d/runtime.json +9 -0
  1148. package/.ikie/ferments/019f276a-251e-71ac-ba90-af2a49c22b6b/runtime.json +13 -0
  1149. package/.ikie/ferments/019f276a-2545-746f-bdf3-ca3c11ab9968/runtime.json +11 -0
  1150. package/.ikie/ferments/019f276a-256d-765b-9f94-90047d4ca21e/runtime.json +11 -0
  1151. package/.ikie/ferments/019f276a-25cb-753b-9905-7250e4eea970/runtime.json +11 -0
  1152. package/.ikie/ferments/019f276a-25f8-73a2-aede-f2c017fa80c9/runtime.json +9 -0
  1153. package/.ikie/ferments/019f276a-2613-774b-80c0-3b206ac95435/runtime.json +9 -0
  1154. package/.ikie/ferments/019f276a-264e-73a3-90ad-017ef8ea05b6/runtime.json +11 -0
  1155. package/.ikie/ferments/019f276a-2760-758f-b0a6-cd04a8b0ee76/runtime.json +11 -0
  1156. package/.ikie/ferments/019f276a-277b-73a9-8655-6bf7018262dc/runtime.json +12 -0
  1157. package/.ikie/ferments/019f276a-27a6-709d-a90f-f1784e248fca/runtime.json +11 -0
  1158. package/.ikie/ferments/019f276a-27b7-75bf-b0b5-013581917821/runtime.json +11 -0
  1159. package/.ikie/ferments/019f276a-27ce-759a-93de-474988efc050/runtime.json +11 -0
  1160. package/.ikie/ferments/019f276a-27e9-7564-999a-73beef96d35c/runtime.json +11 -0
  1161. package/.ikie/ferments/019f276a-27fc-714b-9ddb-117b439b664e/runtime.json +13 -0
  1162. package/.ikie/ferments/019f276a-2824-762e-8def-3c17aa4041f9/runtime.json +11 -0
  1163. package/.ikie/ferments/019f276a-38fe-725b-9c16-f1b5174302d0/reviews/phase-phase-1-1.json +41 -0
  1164. package/.ikie/ferments/019f276a-38fe-725b-9c16-f1b5174302d0/runtime.json +11 -0
  1165. package/.ikie/ferments/019f276a-393c-75e2-b29f-092b82105a74/reviews/phase-phase-1-1.json +47 -0
  1166. package/.ikie/ferments/019f276a-393c-75e2-b29f-092b82105a74/runtime.json +13 -0
  1167. package/.ikie/ferments/019f276a-3990-75f9-9b6f-ab6d45bf8e32/reviews/phase-phase-1-1.json +40 -0
  1168. package/.ikie/ferments/019f276a-3990-75f9-9b6f-ab6d45bf8e32/runtime.json +9 -0
  1169. package/.ikie/ferments/019f276a-39ab-76bb-be69-8658a1b6a76f/reviews/phase-phase-1-1.json +40 -0
  1170. package/.ikie/ferments/019f276a-39ab-76bb-be69-8658a1b6a76f/runtime.json +9 -0
  1171. package/.ikie/ferments/019f276a-39c9-76ac-95a8-2d5575d26573/reviews/phase-phase-1-1.json +40 -0
  1172. package/.ikie/ferments/019f276a-39c9-76ac-95a8-2d5575d26573/runtime.json +9 -0
  1173. package/.ikie/ferments/019f276a-39f6-76cc-9011-3f6b08068155/reviews/phase-phase-1-1.json +40 -0
  1174. package/.ikie/ferments/019f276a-39f6-76cc-9011-3f6b08068155/runtime.json +9 -0
  1175. package/.ikie/ferments/019f276a-3a0c-76a9-80b2-2bb7952fe9d7/reviews/phase-phase-1-1.json +40 -0
  1176. package/.ikie/ferments/019f276a-3a0c-76a9-80b2-2bb7952fe9d7/runtime.json +9 -0
  1177. package/.ikie/ferments/019f276a-3a22-7140-8a4d-0d17ada653b3/reviews/phase-phase-1-1.json +62 -0
  1178. package/.ikie/ferments/019f276a-3a22-7140-8a4d-0d17ada653b3/runtime.json +9 -0
  1179. package/.ikie/ferments/019f276c-2f88-74ae-8bc2-5cec42d56757/runtime.json +11 -0
  1180. package/.ikie/ferments/019f276c-2fb8-7599-b61c-e73c85399ee0/runtime.json +11 -0
  1181. package/.ikie/ferments/019f276c-2fd9-75db-8e13-8e9137cecedd/runtime.json +11 -0
  1182. package/.ikie/ferments/019f276c-302f-760f-97e7-2f10f283dfe1/runtime.json +12 -0
  1183. package/.ikie/ferments/019f276c-3060-77ca-a0e3-d49781feca6d/runtime.json +11 -0
  1184. package/.ikie/ferments/019f276c-3091-744e-9394-a59b9f37db9e/runtime.json +11 -0
  1185. package/.ikie/ferments/019f276c-30da-76ba-bd76-a72e053f218d/runtime.json +15 -0
  1186. package/.ikie/ferments/019f276c-3110-7277-ab9a-820992db76da/runtime.json +15 -0
  1187. package/.ikie/ferments/019f276c-314a-740f-b533-a31c4e9ebd52/runtime.json +15 -0
  1188. package/.ikie/ferments/019f276c-3189-732c-a4ec-09e4f1e3a8da/runtime.json +13 -0
  1189. package/.ikie/ferments/019f276c-31ce-75c8-a4e9-507d408920b6/runtime.json +15 -0
  1190. package/.ikie/ferments/019f276c-320e-710b-b32a-4577244dcc6a/runtime.json +15 -0
  1191. package/.ikie/ferments/019f276c-3262-7611-af21-ad12693acdd5/runtime.json +11 -0
  1192. package/.ikie/ferments/019f276c-3288-7559-b7c3-299dd548decb/runtime.json +15 -0
  1193. package/.ikie/ferments/019f276c-32c4-70a0-899d-ad17469a015c/runtime.json +15 -0
  1194. package/.ikie/ferments/019f276c-32f0-7036-86ae-19c9f703cd9a/runtime.json +15 -0
  1195. package/.ikie/ferments/019f276c-3324-7021-8f89-d46fbfa45e00/runtime.json +15 -0
  1196. package/.ikie/ferments/019f276c-334b-71df-b20d-d9a7bcccdc0a/runtime.json +15 -0
  1197. package/.ikie/ferments/019f276c-3379-7593-957a-ee9631368280/runtime.json +15 -0
  1198. package/.ikie/ferments/019f276c-33a9-705d-a590-eff1c46bcd67/runtime.json +15 -0
  1199. package/.ikie/ferments/019f276c-33d5-7784-b35a-01d3c06b16c0/runtime.json +15 -0
  1200. package/.ikie/ferments/019f276c-341c-76ce-b950-7a7e7472eeb8/runtime.json +15 -0
  1201. package/.ikie/ferments/019f276c-3462-744d-b42a-9756a33b7223/runtime.json +11 -0
  1202. package/.ikie/ferments/019f276c-348e-706a-9791-5213dfd00593/runtime.json +11 -0
  1203. package/.ikie/ferments/019f276c-34b6-70f9-b678-d3a7d876758c/reviews/phase-phase-1-1.json +63 -0
  1204. package/.ikie/ferments/019f276c-34b6-70f9-b678-d3a7d876758c/runtime.json +17 -0
  1205. package/.ikie/ferments/019f276c-3640-75da-915e-b0dba80bfcda/reviews/phase-phase-1-1.json +63 -0
  1206. package/.ikie/ferments/019f276c-3640-75da-915e-b0dba80bfcda/runtime.json +17 -0
  1207. package/.ikie/ferments/019f276c-37df-76f9-b7a8-1285ee0ac11d/runtime.json +11 -0
  1208. package/.ikie/ferments/019f276c-3caa-748a-a0aa-9e068f18f2ac/runtime.json +11 -0
  1209. package/.ikie/ferments/019f276c-3cc8-7347-9764-dd4ab7f87646/runtime.json +11 -0
  1210. package/.ikie/ferments/019f276c-3cef-75dd-be90-593fd20a850d/runtime.json +11 -0
  1211. package/.ikie/ferments/019f276c-3d14-72af-ae89-6c0605227a05/runtime.json +11 -0
  1212. package/.ikie/ferments/019f276c-3d36-716c-ac4e-59444fdec814/pending-proposal.json +45 -0
  1213. package/.ikie/ferments/019f276c-3d4c-7208-9130-7f168aeba08e/pending-proposal.json +45 -0
  1214. package/.ikie/ferments/019f276c-3e7f-7552-a37f-61442d720fb9/pending-proposal.json +45 -0
  1215. package/.ikie/ferments/019f276c-3ed9-74f2-9332-d5a492d39130/pending-proposal.json +45 -0
  1216. package/.ikie/ferments/019f276c-3ef4-757e-b0c6-9d7c6f0326e7/pending-proposal.json +45 -0
  1217. package/.ikie/ferments/019f276c-651d-70ac-bfb4-5d033388e28c/runtime.json +13 -0
  1218. package/.ikie/ferments/019f276c-6546-7569-b609-74b2258985a8/runtime.json +11 -0
  1219. package/.ikie/ferments/019f276c-6566-71e2-b937-390aea78900a/runtime.json +11 -0
  1220. package/.ikie/ferments/019f276c-657c-75ee-864b-5b5601e3b9d1/runtime.json +11 -0
  1221. package/.ikie/ferments/019f276c-6590-7729-a6e7-466ace311e0d/runtime.json +11 -0
  1222. package/.ikie/ferments/019f276c-65a5-779f-a3da-36bc91cf31f3/runtime.json +11 -0
  1223. package/.ikie/ferments/019f276c-65b9-77f0-97fc-fcf70d7125b8/runtime.json +11 -0
  1224. package/.ikie/ferments/019f276c-65cd-74ef-9094-db3c5a98348b/runtime.json +11 -0
  1225. package/.ikie/ferments/019f276c-65e3-7632-9df9-58cfa083a065/runtime.json +9 -0
  1226. package/.ikie/ferments/019f276c-65fb-763a-aec7-54ece64d7342/runtime.json +13 -0
  1227. package/.ikie/ferments/019f276c-661a-74e9-81b1-d1ba625c04b0/runtime.json +11 -0
  1228. package/.ikie/ferments/019f276c-6630-7748-ab90-869f75ed2de5/runtime.json +11 -0
  1229. package/.ikie/ferments/019f276c-6670-758f-b0da-673d81bd319e/runtime.json +11 -0
  1230. package/.ikie/ferments/019f276c-6687-71fa-8286-2d25de36c9b4/runtime.json +9 -0
  1231. package/.ikie/ferments/019f276c-669d-7679-91d5-4df6315d3823/runtime.json +9 -0
  1232. package/.ikie/ferments/019f276c-66b3-72a6-974d-1bc3477eb6f2/runtime.json +11 -0
  1233. package/.ikie/ferments/019f276c-6769-776c-9868-0c929ee31f5f/runtime.json +11 -0
  1234. package/.ikie/ferments/019f276c-678e-7588-a059-c1efd9e9c9a6/runtime.json +12 -0
  1235. package/.ikie/ferments/019f276c-67af-729c-a5f8-79e8e78bbe9b/runtime.json +11 -0
  1236. package/.ikie/ferments/019f276c-67c3-70b8-8606-aad72ab0cd6f/runtime.json +11 -0
  1237. package/.ikie/ferments/019f276c-67d7-734c-83fd-132c54564004/runtime.json +11 -0
  1238. package/.ikie/ferments/019f276c-67ec-710d-8497-eba65301d741/runtime.json +11 -0
  1239. package/.ikie/ferments/019f276c-6805-742c-8a1c-f370733226ae/runtime.json +13 -0
  1240. package/.ikie/ferments/019f276c-6825-7768-8ca1-f5dac5c1d374/runtime.json +11 -0
  1241. package/.ikie/ferments/019f276c-7f49-751d-bbb8-f828debd3cb9/reviews/phase-phase-1-1.json +41 -0
  1242. package/.ikie/ferments/019f276c-7f49-751d-bbb8-f828debd3cb9/runtime.json +11 -0
  1243. package/.ikie/ferments/019f276c-7f7b-74d0-b46e-e8efa73fb5b5/reviews/phase-phase-1-1.json +47 -0
  1244. package/.ikie/ferments/019f276c-7f7b-74d0-b46e-e8efa73fb5b5/runtime.json +13 -0
  1245. package/.ikie/ferments/019f276c-8004-74fe-b37f-f9fc659f7f0c/reviews/phase-phase-1-1.json +40 -0
  1246. package/.ikie/ferments/019f276c-8004-74fe-b37f-f9fc659f7f0c/runtime.json +9 -0
  1247. package/.ikie/ferments/019f276c-8025-7328-afef-6703215c208c/reviews/phase-phase-1-1.json +40 -0
  1248. package/.ikie/ferments/019f276c-8025-7328-afef-6703215c208c/runtime.json +9 -0
  1249. package/.ikie/ferments/019f276c-8043-749c-8cbb-47d0df9819df/reviews/phase-phase-1-1.json +40 -0
  1250. package/.ikie/ferments/019f276c-8043-749c-8cbb-47d0df9819df/runtime.json +9 -0
  1251. package/.ikie/ferments/019f276c-8062-7436-99eb-80e09bc6b067/reviews/phase-phase-1-1.json +40 -0
  1252. package/.ikie/ferments/019f276c-8062-7436-99eb-80e09bc6b067/runtime.json +9 -0
  1253. package/.ikie/ferments/019f276c-8081-727c-aa11-d606a64b88ed/reviews/phase-phase-1-1.json +40 -0
  1254. package/.ikie/ferments/019f276c-8081-727c-aa11-d606a64b88ed/runtime.json +9 -0
  1255. package/.ikie/ferments/019f276c-80b6-7528-8687-e11cc4691930/reviews/phase-phase-1-1.json +62 -0
  1256. package/.ikie/ferments/019f276c-80b6-7528-8687-e11cc4691930/runtime.json +9 -0
  1257. package/AGENTS.md +120 -0
  1258. package/CLA.md +39 -0
  1259. package/CODE_OF_CONDUCT.md +83 -0
  1260. package/CONTRIBUTING.md +57 -0
  1261. package/LICENSE +203 -0
  1262. package/NOTICE +28 -0
  1263. package/README.md +568 -0
  1264. package/SECURITY.md +36 -0
  1265. package/TODO.md +33 -0
  1266. package/benchmark/audit-session/README.md +217 -0
  1267. package/benchmark/audit-session/audit-session-prompt.md +557 -0
  1268. package/benchmark/audit-session/audit-session.sh +323 -0
  1269. package/benchmark/manual/README.md +166 -0
  1270. package/benchmark/manual/__pycache__/check-session.cpython-313.pyc +0 -0
  1271. package/benchmark/manual/analyze-session.py +290 -0
  1272. package/benchmark/manual/benchmark.json +4 -0
  1273. package/benchmark/manual/check-session.py +268 -0
  1274. package/benchmark/manual/compare-sessions.py +118 -0
  1275. package/benchmark/manual/lib.sh +284 -0
  1276. package/benchmark/manual/new-session-claude.sh +86 -0
  1277. package/benchmark/manual/new-session.sh +191 -0
  1278. package/benchmark/manual/run-evaluation.sh +201 -0
  1279. package/benchmark/manual/seeds/explore-refactor/cmd/server/main.go +37 -0
  1280. package/benchmark/manual/seeds/explore-refactor/go.mod +3 -0
  1281. package/benchmark/manual/seeds/explore-refactor/internal/handler/audit.go +39 -0
  1282. package/benchmark/manual/seeds/explore-refactor/internal/handler/invitation.go +56 -0
  1283. package/benchmark/manual/seeds/explore-refactor/internal/handler/team.go +86 -0
  1284. package/benchmark/manual/seeds/explore-refactor/internal/handler/user.go +126 -0
  1285. package/benchmark/manual/seeds/explore-refactor/internal/model/model.go +37 -0
  1286. package/benchmark/manual/seeds/explore-refactor/internal/repository/audit.go +57 -0
  1287. package/benchmark/manual/seeds/explore-refactor/internal/repository/invitation.go +58 -0
  1288. package/benchmark/manual/seeds/explore-refactor/internal/repository/team.go +66 -0
  1289. package/benchmark/manual/seeds/explore-refactor/internal/repository/user.go +91 -0
  1290. package/benchmark/manual/seeds/explore-refactor/internal/service/invitation.go +45 -0
  1291. package/benchmark/manual/seeds/explore-refactor/internal/service/team.go +62 -0
  1292. package/benchmark/manual/seeds/explore-refactor/internal/service/user.go +94 -0
  1293. package/benchmark/manual/self-improvement.md +203 -0
  1294. package/benchmark/manual/session-summary.py +95 -0
  1295. package/benchmark/manual/start-self-improvement.sh +27 -0
  1296. package/benchmark/manual/tasks.md +154 -0
  1297. package/benchmark/terminal-bench-2/README.md +261 -0
  1298. package/benchmark/terminal-bench-2/config/retry.yaml +48 -0
  1299. package/benchmark/terminal-bench-2/docs/ferment-terminal-bench-analysis.md +233 -0
  1300. package/benchmark/terminal-bench-2/pyproject.toml +32 -0
  1301. package/benchmark/terminal-bench-2/scripts/analyze-ferment-bench.py +1193 -0
  1302. package/benchmark/terminal-bench-2/scripts/run-claude-code-ikie.sh +41 -0
  1303. package/benchmark/terminal-bench-2/scripts/run-gsd-ikie.sh +29 -0
  1304. package/benchmark/terminal-bench-2/scripts/run-local.sh +32 -0
  1305. package/benchmark/terminal-bench-2/scripts/run-opencode-ikie.sh +30 -0
  1306. package/benchmark/terminal-bench-2/scripts/run-release.sh +28 -0
  1307. package/benchmark/terminal-bench-2/src/ikie_agent/__init__.py +6 -0
  1308. package/benchmark/terminal-bench-2/src/ikie_agent/agent.py +445 -0
  1309. package/benchmark/terminal-bench-2/src/ikie_agent/agent_test.py +233 -0
  1310. package/benchmark/terminal-bench-2/src/ikie_agent/claude_code_ikie.py +356 -0
  1311. package/benchmark/terminal-bench-2/src/ikie_agent/claude_code_ikie_test.py +506 -0
  1312. package/benchmark/terminal-bench-2/src/ikie_agent/config.py +56 -0
  1313. package/benchmark/terminal-bench-2/src/ikie_agent/gateway.py +163 -0
  1314. package/benchmark/terminal-bench-2/src/ikie_agent/gsd_ikie.py +340 -0
  1315. package/benchmark/terminal-bench-2/src/ikie_agent/gsd_ikie_test.py +304 -0
  1316. package/benchmark/terminal-bench-2/src/ikie_agent/messages.py +27 -0
  1317. package/benchmark/terminal-bench-2/src/ikie_agent/opencode_ikie.py +146 -0
  1318. package/benchmark/terminal-bench-2/src/ikie_agent/opencode_ikie_test.py +308 -0
  1319. package/benchmark/terminal-bench-2/src/ikie_agent/release.py +174 -0
  1320. package/benchmark/terminal-bench-2/src/ikie_agent/retry_config_test.py +55 -0
  1321. package/benchmark/terminal-bench-2/uv.lock +1948 -0
  1322. package/biome.json +54 -0
  1323. package/docs/agents.md +295 -0
  1324. package/docs/bash-tool-guard.md +206 -0
  1325. package/docs/expected-execution-scenarios.md +348 -0
  1326. package/docs/ferment-storage-schema.md +199 -0
  1327. package/docs/ferment.md +633 -0
  1328. package/docs/hooks.md +263 -0
  1329. package/docs/subagents/README.md +22 -0
  1330. package/docs/subagents/code-reviewer.md +39 -0
  1331. package/docs/subagents/research-assistant.md +81 -0
  1332. package/docs/subagents/test-writer.md +49 -0
  1333. package/docs/teleport.md +424 -0
  1334. package/docs/windows/README.md +226 -0
  1335. package/extensions/active-tools.ts +74 -0
  1336. package/ikie.png +0 -0
  1337. package/package.json +125 -0
  1338. package/patches/@earendil-works__pi-ai@0.78.1.patch +68 -0
  1339. package/patches/@earendil-works__pi-coding-agent@0.78.1.patch +535 -0
  1340. package/patches/@earendil-works__pi-tui.patch +171 -0
  1341. package/patches/playwright-core@1.59.1.patch +24 -0
  1342. package/resources/oauth/error.html +185 -0
  1343. package/resources/oauth/success.html +185 -0
  1344. package/scripts/build-binary.js +113 -0
  1345. package/scripts/build-proxy-helper.js +66 -0
  1346. package/scripts/copy-resources.js +104 -0
  1347. package/scripts/dev-overlay.sh +52 -0
  1348. package/scripts/dev-startup.sh +82 -0
  1349. package/scripts/install-local.js +34 -0
  1350. package/scripts/install.ps1 +258 -0
  1351. package/scripts/install.sh +160 -0
  1352. package/scripts/package-release-asset.js +82 -0
  1353. package/scripts/patch-pi-ai-oauth.js +109 -0
  1354. package/scripts/run-tui-e2e.js +153 -0
  1355. package/scripts/set-version.js +31 -0
  1356. package/scripts/verify-acp-load.mjs +358 -0
  1357. package/scripts/verify-acp.mjs +217 -0
  1358. package/src/__mocks__/earendil-clipboard-image.js +6 -0
  1359. package/src/agent-discovery/agents/claude-code.test.ts +156 -0
  1360. package/src/agent-discovery/agents/claude-code.ts +85 -0
  1361. package/src/agent-discovery/agents/cursor.test.ts +178 -0
  1362. package/src/agent-discovery/agents/cursor.ts +74 -0
  1363. package/src/agent-discovery/agents/opencode.test.ts +461 -0
  1364. package/src/agent-discovery/agents/opencode.ts +156 -0
  1365. package/src/agent-discovery/agents/skills-only.test.ts +77 -0
  1366. package/src/agent-discovery/agents/skills-only.ts +47 -0
  1367. package/src/agent-discovery/engine.test.ts +408 -0
  1368. package/src/agent-discovery/engine.ts +117 -0
  1369. package/src/agent-discovery/index.ts +75 -0
  1370. package/src/agent-discovery/jsonc.ts +52 -0
  1371. package/src/ansi.ts +51 -0
  1372. package/src/api/me.test.ts +86 -0
  1373. package/src/api/me.ts +59 -0
  1374. package/src/auth/validator.test.ts +106 -0
  1375. package/src/auth/validator.ts +103 -0
  1376. package/src/auxiliary-files/resolver.test.ts +85 -0
  1377. package/src/auxiliary-files/resolver.ts +27 -0
  1378. package/src/auxiliary-files/validator.test.ts +68 -0
  1379. package/src/auxiliary-files/validator.ts +31 -0
  1380. package/src/cli-args.test.ts +232 -0
  1381. package/src/cli-args.ts +94 -0
  1382. package/src/cli-auth/callback-server.test.ts +169 -0
  1383. package/src/cli-auth/callback-server.ts +165 -0
  1384. package/src/cli-auth/index.test.ts +103 -0
  1385. package/src/cli-auth/index.ts +117 -0
  1386. package/src/cli-auth/oauth-page.ts +94 -0
  1387. package/src/cli.ts +564 -0
  1388. package/src/commands/_helpers.ts +87 -0
  1389. package/src/commands/banner.test.ts +39 -0
  1390. package/src/commands/banner.ts +74 -0
  1391. package/src/commands/claude.ts +28 -0
  1392. package/src/commands/config.test.ts +149 -0
  1393. package/src/commands/config.ts +98 -0
  1394. package/src/commands/cursor.ts +23 -0
  1395. package/src/commands/dispatch.test.ts +102 -0
  1396. package/src/commands/dispatch.ts +40 -0
  1397. package/src/commands/gsd2.ts +23 -0
  1398. package/src/commands/help.ts +104 -0
  1399. package/src/commands/login.ts +46 -0
  1400. package/src/commands/openclaw.ts +23 -0
  1401. package/src/commands/opencode.ts +31 -0
  1402. package/src/commands/registry.ts +44 -0
  1403. package/src/commands/resources.ts +77 -0
  1404. package/src/commands/setup-tools.test.ts +231 -0
  1405. package/src/commands/setup-tools.ts +164 -0
  1406. package/src/commands/setup.ts +28 -0
  1407. package/src/commands/update.test.ts +312 -0
  1408. package/src/commands/update.ts +291 -0
  1409. package/src/commands/version.ts +9 -0
  1410. package/src/components/editor.test.ts +182 -0
  1411. package/src/components/editor.ts +186 -0
  1412. package/src/components/footer.test.ts +790 -0
  1413. package/src/components/footer.ts +640 -0
  1414. package/src/components/logo-art.test.ts +30 -0
  1415. package/src/components/logo-art.ts +66 -0
  1416. package/src/components/logo.test.ts +316 -0
  1417. package/src/components/logo.ts +127 -0
  1418. package/src/components/tool-block.test.ts +75 -0
  1419. package/src/components/tool-block.ts +166 -0
  1420. package/src/config/footer-config.test.ts +191 -0
  1421. package/src/config/footer-config.ts +130 -0
  1422. package/src/config/json.test.ts +78 -0
  1423. package/src/config/json.ts +112 -0
  1424. package/src/config/scope.test.ts +49 -0
  1425. package/src/config/scope.ts +38 -0
  1426. package/src/config/shell-profile.test.ts +130 -0
  1427. package/src/config/shell-profile.ts +131 -0
  1428. package/src/config.test.ts +723 -0
  1429. package/src/config.ts +697 -0
  1430. package/src/entry.ts +62 -0
  1431. package/src/env.ts +4 -0
  1432. package/src/expand-state.ts +41 -0
  1433. package/src/extensions/activity.test.ts +160 -0
  1434. package/src/extensions/activity.ts +192 -0
  1435. package/src/extensions/agent-worker-context.test.ts +31 -0
  1436. package/src/extensions/agent-worker-context.ts +11 -0
  1437. package/src/extensions/agents/default-agents.test.ts +24 -0
  1438. package/src/extensions/agents/discovery-priority.test.ts +65 -0
  1439. package/src/extensions/agents/env.ts +33 -0
  1440. package/src/extensions/agents/index.test.ts +32 -0
  1441. package/src/extensions/agents/index.ts +2226 -0
  1442. package/src/extensions/agents/manager/agent-manager.test.ts +896 -0
  1443. package/src/extensions/agents/manager/agent-manager.ts +714 -0
  1444. package/src/extensions/agents/manager/agent-runner.test.ts +1846 -0
  1445. package/src/extensions/agents/manager/agent-runner.ts +964 -0
  1446. package/src/extensions/agents/manager/budget-retry-guard.test.ts +95 -0
  1447. package/src/extensions/agents/manager/budget-retry-guard.ts +57 -0
  1448. package/src/extensions/agents/manager/constants.ts +1 -0
  1449. package/src/extensions/agents/manager/group-join.ts +136 -0
  1450. package/src/extensions/agents/manager/output-file.test.ts +31 -0
  1451. package/src/extensions/agents/manager/output-file.ts +92 -0
  1452. package/src/extensions/agents/manager/session-file.test.ts +59 -0
  1453. package/src/extensions/agents/manager/session-file.ts +37 -0
  1454. package/src/extensions/agents/manager/usage.ts +52 -0
  1455. package/src/extensions/agents/memory/memory.test.ts +54 -0
  1456. package/src/extensions/agents/memory/memory.ts +166 -0
  1457. package/src/extensions/agents/memory.test.ts +54 -0
  1458. package/src/extensions/agents/package-resources.test.ts +147 -0
  1459. package/src/extensions/agents/package-resources.ts +37 -0
  1460. package/src/extensions/agents/personas/__snapshots__/default-agents.test.ts.snap +75 -0
  1461. package/src/extensions/agents/personas/agent-types.test.ts +33 -0
  1462. package/src/extensions/agents/personas/agent-types.ts +150 -0
  1463. package/src/extensions/agents/personas/custom-agents.test.ts +171 -0
  1464. package/src/extensions/agents/personas/custom-agents.ts +147 -0
  1465. package/src/extensions/agents/personas/default-agents.test.ts +101 -0
  1466. package/src/extensions/agents/personas/default-agents.ts +335 -0
  1467. package/src/extensions/agents/personas/discovery-priority.test.ts +65 -0
  1468. package/src/extensions/agents/personas/types.ts +229 -0
  1469. package/src/extensions/agents/prompt/context.ts +54 -0
  1470. package/src/extensions/agents/prompt/prompts.test.ts +314 -0
  1471. package/src/extensions/agents/prompt/prompts.ts +164 -0
  1472. package/src/extensions/agents/prompt/skill-loader.test.ts +41 -0
  1473. package/src/extensions/agents/prompt/skill-loader.ts +80 -0
  1474. package/src/extensions/agents/resolution/invocation-config.test.ts +81 -0
  1475. package/src/extensions/agents/resolution/invocation-config.ts +68 -0
  1476. package/src/extensions/agents/resolution/model-resolver.ts +85 -0
  1477. package/src/extensions/agents/resume-tool.test.ts +146 -0
  1478. package/src/extensions/agents/resume-tool.ts +90 -0
  1479. package/src/extensions/agents/settings.ts +163 -0
  1480. package/src/extensions/agents/skill-loader.test.ts +41 -0
  1481. package/src/extensions/agents/tool-result.ts +4 -0
  1482. package/src/extensions/agents/ui/agent-widget.ts +458 -0
  1483. package/src/extensions/agents/ui/conversation-viewer.ts +261 -0
  1484. package/src/extensions/agents/worker-budget-policy.ts +48 -0
  1485. package/src/extensions/agents/worker-report.test.ts +69 -0
  1486. package/src/extensions/agents/worker-report.ts +72 -0
  1487. package/src/extensions/assistant-prefix.ts +80 -0
  1488. package/src/extensions/bash-collapse.test.ts +21 -0
  1489. package/src/extensions/bash-collapse.ts +3 -0
  1490. package/src/extensions/bash-default-timeout.test.ts +189 -0
  1491. package/src/extensions/bash-default-timeout.ts +73 -0
  1492. package/src/extensions/bash-tool-guard-events.ts +39 -0
  1493. package/src/extensions/bash-tool-guard.integration.test.ts +771 -0
  1494. package/src/extensions/bash-tool-guard.test.ts +890 -0
  1495. package/src/extensions/bash-tool-guard.ts +640 -0
  1496. package/src/extensions/behaviours/bash-tokenize.test.ts +125 -0
  1497. package/src/extensions/behaviours/bash-tokenize.ts +272 -0
  1498. package/src/extensions/behaviours/bodies/bound-tool-output.md +11 -0
  1499. package/src/extensions/behaviours/bodies/gh-cli.md +80 -0
  1500. package/src/extensions/behaviours/bodies/git-hygiene.md +13 -0
  1501. package/src/extensions/behaviours/bodies/glab-cli.md +95 -0
  1502. package/src/extensions/behaviours/bodies/python-edit.md +10 -0
  1503. package/src/extensions/behaviours/bodies/re-read-before-edit.md +10 -0
  1504. package/src/extensions/behaviours/bodies.d.ts +7 -0
  1505. package/src/extensions/behaviours/build.test.ts +89 -0
  1506. package/src/extensions/behaviours/build.ts +63 -0
  1507. package/src/extensions/behaviours/engine.test.ts +300 -0
  1508. package/src/extensions/behaviours/engine.ts +131 -0
  1509. package/src/extensions/behaviours/eval-engine.test.ts +165 -0
  1510. package/src/extensions/behaviours/eval-engine.ts +104 -0
  1511. package/src/extensions/behaviours/frontmatter.ts +22 -0
  1512. package/src/extensions/behaviours/index.ts +35 -0
  1513. package/src/extensions/behaviours/matchers.test.ts +153 -0
  1514. package/src/extensions/behaviours/matchers.ts +69 -0
  1515. package/src/extensions/behaviours/registry.ts +73 -0
  1516. package/src/extensions/behaviours/session-context.test.ts +192 -0
  1517. package/src/extensions/behaviours/session-context.ts +170 -0
  1518. package/src/extensions/behaviours/stats.ts +47 -0
  1519. package/src/extensions/behaviours/tool-args.smoke.test.ts +34 -0
  1520. package/src/extensions/behaviours/tool-args.ts +65 -0
  1521. package/src/extensions/behaviours/triggers.ts +164 -0
  1522. package/src/extensions/behaviours/types.ts +49 -0
  1523. package/src/extensions/behaviours/wiring.smoke.test.ts +488 -0
  1524. package/src/extensions/behaviours/wiring.ts +196 -0
  1525. package/src/extensions/branch-command.test.ts +208 -0
  1526. package/src/extensions/branch-command.ts +89 -0
  1527. package/src/extensions/claude-code-hook-adapter/definition.test.ts +51 -0
  1528. package/src/extensions/claude-code-hook-adapter/definition.ts +36 -0
  1529. package/src/extensions/claude-code-hook-adapter/index.ts +6 -0
  1530. package/src/extensions/claude-code-skills/definition.test.ts +228 -0
  1531. package/src/extensions/claude-code-skills/definition.ts +475 -0
  1532. package/src/extensions/claude-code-skills/index.test.ts +227 -0
  1533. package/src/extensions/claude-code-skills/index.ts +101 -0
  1534. package/src/extensions/clipboard-image.test.ts +383 -0
  1535. package/src/extensions/clipboard-image.ts +266 -0
  1536. package/src/extensions/compaction-thresholds.test.ts +8 -0
  1537. package/src/extensions/compaction-thresholds.ts +13 -0
  1538. package/src/extensions/curator/index.test.ts +33 -0
  1539. package/src/extensions/curator/index.ts +296 -0
  1540. package/src/extensions/curator/review.test.ts +82 -0
  1541. package/src/extensions/curator/review.ts +438 -0
  1542. package/src/extensions/curator/state.test.ts +79 -0
  1543. package/src/extensions/curator/state.ts +61 -0
  1544. package/src/extensions/curator/transitions.test.ts +96 -0
  1545. package/src/extensions/curator/transitions.ts +56 -0
  1546. package/src/extensions/customize-footer-command.test.ts +258 -0
  1547. package/src/extensions/customize-footer-command.ts +158 -0
  1548. package/src/extensions/deferred-action.ts +38 -0
  1549. package/src/extensions/disabled/tool-result-pruning.test.ts +397 -0
  1550. package/src/extensions/disabled/tool-result-pruning.ts +181 -0
  1551. package/src/extensions/exit-utils.ts +8 -0
  1552. package/src/extensions/exploration-guard.test.ts +646 -0
  1553. package/src/extensions/exploration-guard.ts +293 -0
  1554. package/src/extensions/ferment/action-tool-names.ts +25 -0
  1555. package/src/extensions/ferment/agent-spawn-guard.test.ts +339 -0
  1556. package/src/extensions/ferment/agent-spawn-guard.ts +188 -0
  1557. package/src/extensions/ferment/ask-user.test.ts +838 -0
  1558. package/src/extensions/ferment/ask-user.ts +569 -0
  1559. package/src/extensions/ferment/auto-compaction.test.ts +933 -0
  1560. package/src/extensions/ferment/auto-compaction.ts +525 -0
  1561. package/src/extensions/ferment/breadcrumb-renderer.ts +46 -0
  1562. package/src/extensions/ferment/colors.ts +95 -0
  1563. package/src/extensions/ferment/command-parser.test.ts +82 -0
  1564. package/src/extensions/ferment/command-parser.ts +52 -0
  1565. package/src/extensions/ferment/commands.test.ts +1659 -0
  1566. package/src/extensions/ferment/commands.ts +1025 -0
  1567. package/src/extensions/ferment/constants.ts +37 -0
  1568. package/src/extensions/ferment/contextual-options.test.ts +70 -0
  1569. package/src/extensions/ferment/contextual-options.ts +107 -0
  1570. package/src/extensions/ferment/continuation.test.ts +141 -0
  1571. package/src/extensions/ferment/continuation.ts +59 -0
  1572. package/src/extensions/ferment/derive-state.test.ts +222 -0
  1573. package/src/extensions/ferment/derive-state.ts +158 -0
  1574. package/src/extensions/ferment/domain-events-emitter.ts +255 -0
  1575. package/src/extensions/ferment/domain-events.ts +146 -0
  1576. package/src/extensions/ferment/events.test.ts +616 -0
  1577. package/src/extensions/ferment/events.ts +561 -0
  1578. package/src/extensions/ferment/footer-status.test.ts +62 -0
  1579. package/src/extensions/ferment/footer-status.ts +61 -0
  1580. package/src/extensions/ferment/format.test.ts +55 -0
  1581. package/src/extensions/ferment/format.ts +111 -0
  1582. package/src/extensions/ferment/fsm-adapter.test.ts +43 -0
  1583. package/src/extensions/ferment/fsm-adapter.ts +112 -0
  1584. package/src/extensions/ferment/gate-registry.test.ts +176 -0
  1585. package/src/extensions/ferment/gate-registry.ts +352 -0
  1586. package/src/extensions/ferment/gate-validation.test.ts +319 -0
  1587. package/src/extensions/ferment/gate-validation.ts +160 -0
  1588. package/src/extensions/ferment/git-init.test.ts +146 -0
  1589. package/src/extensions/ferment/git-init.ts +66 -0
  1590. package/src/extensions/ferment/index.test.ts +1439 -0
  1591. package/src/extensions/ferment/index.ts +337 -0
  1592. package/src/extensions/ferment/judge.test.ts +172 -0
  1593. package/src/extensions/ferment/judge.ts +342 -0
  1594. package/src/extensions/ferment/nudge.test.ts +700 -0
  1595. package/src/extensions/ferment/nudge.ts +332 -0
  1596. package/src/extensions/ferment/oneshot.test.ts +115 -0
  1597. package/src/extensions/ferment/oneshot.ts +52 -0
  1598. package/src/extensions/ferment/pending-proposal-store.test.ts +272 -0
  1599. package/src/extensions/ferment/pending-proposal-store.ts +142 -0
  1600. package/src/extensions/ferment/phase-editor.test.ts +174 -0
  1601. package/src/extensions/ferment/phase-editor.ts +148 -0
  1602. package/src/extensions/ferment/phase-evidence.test.ts +154 -0
  1603. package/src/extensions/ferment/phase-evidence.ts +179 -0
  1604. package/src/extensions/ferment/plan-review-trigger.ts +34 -0
  1605. package/src/extensions/ferment/plan-review.test.ts +182 -0
  1606. package/src/extensions/ferment/plan-review.ts +205 -0
  1607. package/src/extensions/ferment/progress-overlay.test.ts +197 -0
  1608. package/src/extensions/ferment/progress-overlay.ts +326 -0
  1609. package/src/extensions/ferment/project-tests.test.ts +160 -0
  1610. package/src/extensions/ferment/project-tests.ts +246 -0
  1611. package/src/extensions/ferment/prompt-block.test.ts +501 -0
  1612. package/src/extensions/ferment/prompt-block.ts +203 -0
  1613. package/src/extensions/ferment/prompt-ui.test.ts +311 -0
  1614. package/src/extensions/ferment/prompt-ui.ts +302 -0
  1615. package/src/extensions/ferment/resume.test.ts +218 -0
  1616. package/src/extensions/ferment/resume.ts +180 -0
  1617. package/src/extensions/ferment/review-evidence.ts +269 -0
  1618. package/src/extensions/ferment/runtime-state-store.test.ts +148 -0
  1619. package/src/extensions/ferment/runtime-state-store.ts +132 -0
  1620. package/src/extensions/ferment/runtime.test.ts +38 -0
  1621. package/src/extensions/ferment/runtime.ts +208 -0
  1622. package/src/extensions/ferment/scheduler.ts +226 -0
  1623. package/src/extensions/ferment/scoping-benchmark.test.ts +137 -0
  1624. package/src/extensions/ferment/scoping-confirmation.test.ts +209 -0
  1625. package/src/extensions/ferment/scoping-confirmation.ts +87 -0
  1626. package/src/extensions/ferment/scoping-flow.integration.test.ts +203 -0
  1627. package/src/extensions/ferment/scoping.test.ts +235 -0
  1628. package/src/extensions/ferment/scoping.ts +208 -0
  1629. package/src/extensions/ferment/state.test.ts +300 -0
  1630. package/src/extensions/ferment/state.ts +696 -0
  1631. package/src/extensions/ferment/tips.test.ts +171 -0
  1632. package/src/extensions/ferment/tips.ts +61 -0
  1633. package/src/extensions/ferment/todo-headless-wiring.test.ts +641 -0
  1634. package/src/extensions/ferment/todo-sync.test.ts +805 -0
  1635. package/src/extensions/ferment/todo-sync.ts +520 -0
  1636. package/src/extensions/ferment/tool-helpers.test.ts +121 -0
  1637. package/src/extensions/ferment/tool-helpers.ts +217 -0
  1638. package/src/extensions/ferment/tool-names.test.ts +55 -0
  1639. package/src/extensions/ferment/tool-names.ts +78 -0
  1640. package/src/extensions/ferment/tool-schemas.test.ts +587 -0
  1641. package/src/extensions/ferment/tool-schemas.ts +428 -0
  1642. package/src/extensions/ferment/tool-scope.test.ts +373 -0
  1643. package/src/extensions/ferment/tool-scope.ts +176 -0
  1644. package/src/extensions/ferment/tools/knowledge.ts +60 -0
  1645. package/src/extensions/ferment/tools/lifecycle.test.ts +1196 -0
  1646. package/src/extensions/ferment/tools/lifecycle.ts +1296 -0
  1647. package/src/extensions/ferment/tools/phases.test.ts +379 -0
  1648. package/src/extensions/ferment/tools/phases.ts +757 -0
  1649. package/src/extensions/ferment/tools/steps.test.ts +998 -0
  1650. package/src/extensions/ferment/tools/steps.ts +765 -0
  1651. package/src/extensions/ferment/tools.integration.test.ts +1975 -0
  1652. package/src/extensions/ferment/ui.ts +10 -0
  1653. package/src/extensions/ferment/worker-prompt.test.ts +285 -0
  1654. package/src/extensions/ferment/worker-prompt.ts +85 -0
  1655. package/src/extensions/ferment/worktree.ts +44 -0
  1656. package/src/extensions/format.ts +12 -0
  1657. package/src/extensions/help.ts +172 -0
  1658. package/src/extensions/hide-thinking.test.ts +407 -0
  1659. package/src/extensions/hide-thinking.ts +375 -0
  1660. package/src/extensions/hook-adapters/adapter.integration.test.ts +134 -0
  1661. package/src/extensions/hook-adapters/adapter.test.ts +1062 -0
  1662. package/src/extensions/hook-adapters/adapter.ts +784 -0
  1663. package/src/extensions/hook-adapters/discovery.test.ts +105 -0
  1664. package/src/extensions/hook-adapters/discovery.ts +213 -0
  1665. package/src/extensions/ide-adapter/ARCHITECTURE.md +77 -0
  1666. package/src/extensions/ide-adapter/CONTRACT.md +129 -0
  1667. package/src/extensions/ide-adapter/README.md +24 -0
  1668. package/src/extensions/ide-adapter/at-mentions.test.ts +40 -0
  1669. package/src/extensions/ide-adapter/at-mentions.ts +44 -0
  1670. package/src/extensions/ide-adapter/index.test.ts +434 -0
  1671. package/src/extensions/ide-adapter/index.ts +250 -0
  1672. package/src/extensions/ide-adapter/lockfile.test.ts +137 -0
  1673. package/src/extensions/ide-adapter/lockfile.ts +82 -0
  1674. package/src/extensions/ide-adapter/mcp-client.test.ts +285 -0
  1675. package/src/extensions/ide-adapter/mcp-client.ts +208 -0
  1676. package/src/extensions/ide-adapter/types.ts +47 -0
  1677. package/src/extensions/ikie-minimal-tints.ts +124 -0
  1678. package/src/extensions/ikie-process.ts +49 -0
  1679. package/src/extensions/improve/SKILL.md +51 -0
  1680. package/src/extensions/improve/index.ts +72 -0
  1681. package/src/extensions/input-history.test.ts +475 -0
  1682. package/src/extensions/input-history.ts +111 -0
  1683. package/src/extensions/llm-response-log.test.ts +200 -0
  1684. package/src/extensions/llm-response-log.ts +87 -0
  1685. package/src/extensions/login/flow.test.ts +47 -0
  1686. package/src/extensions/login/flow.ts +638 -0
  1687. package/src/extensions/login/index.ts +57 -0
  1688. package/src/extensions/login/startup-auth.test.ts +510 -0
  1689. package/src/extensions/login/startup-auth.ts +205 -0
  1690. package/src/extensions/loop-guard.test.ts +993 -0
  1691. package/src/extensions/loop-guard.ts +710 -0
  1692. package/src/extensions/lsp/client.ts +501 -0
  1693. package/src/extensions/lsp/edits.test.ts +69 -0
  1694. package/src/extensions/lsp/edits.ts +78 -0
  1695. package/src/extensions/lsp/lsp-entry.test.ts +24 -0
  1696. package/src/extensions/lsp/servers.ts +76 -0
  1697. package/src/extensions/lsp/types.ts +166 -0
  1698. package/src/extensions/lsp/utils.test.ts +81 -0
  1699. package/src/extensions/lsp/utils.ts +80 -0
  1700. package/src/extensions/lsp.test.ts +1049 -0
  1701. package/src/extensions/lsp.ts +470 -0
  1702. package/src/extensions/mcp-adapter/CHANGELOG.md +264 -0
  1703. package/src/extensions/mcp-adapter/LICENSE +21 -0
  1704. package/src/extensions/mcp-adapter/README.md +316 -0
  1705. package/src/extensions/mcp-adapter/app-bridge.bundle.js +10430 -0
  1706. package/src/extensions/mcp-adapter/bm25.ts +187 -0
  1707. package/src/extensions/mcp-adapter/cache-resolver.integration.test.ts +282 -0
  1708. package/src/extensions/mcp-adapter/commands.ts +235 -0
  1709. package/src/extensions/mcp-adapter/config.test.ts +189 -0
  1710. package/src/extensions/mcp-adapter/config.ts +233 -0
  1711. package/src/extensions/mcp-adapter/consent-manager.ts +64 -0
  1712. package/src/extensions/mcp-adapter/context-providers.test.ts +123 -0
  1713. package/src/extensions/mcp-adapter/context-providers.ts +55 -0
  1714. package/src/extensions/mcp-adapter/direct-tool-visibility.test.ts +61 -0
  1715. package/src/extensions/mcp-adapter/direct-tool-visibility.ts +47 -0
  1716. package/src/extensions/mcp-adapter/direct-tools.ts +413 -0
  1717. package/src/extensions/mcp-adapter/errors.ts +198 -0
  1718. package/src/extensions/mcp-adapter/glimpse-ui.ts +78 -0
  1719. package/src/extensions/mcp-adapter/host-html-template.ts +423 -0
  1720. package/src/extensions/mcp-adapter/index.test.ts +323 -0
  1721. package/src/extensions/mcp-adapter/index.ts +604 -0
  1722. package/src/extensions/mcp-adapter/init.ts +402 -0
  1723. package/src/extensions/mcp-adapter/lifecycle.ts +93 -0
  1724. package/src/extensions/mcp-adapter/logger.ts +169 -0
  1725. package/src/extensions/mcp-adapter/mcp-auth-flow.ts +394 -0
  1726. package/src/extensions/mcp-adapter/mcp-auth.ts +267 -0
  1727. package/src/extensions/mcp-adapter/mcp-callback-server.ts +284 -0
  1728. package/src/extensions/mcp-adapter/mcp-oauth-provider.ts +288 -0
  1729. package/src/extensions/mcp-adapter/mcp-panel.test.ts +321 -0
  1730. package/src/extensions/mcp-adapter/mcp-panel.ts +835 -0
  1731. package/src/extensions/mcp-adapter/metadata-cache.test.ts +83 -0
  1732. package/src/extensions/mcp-adapter/metadata-cache.ts +332 -0
  1733. package/src/extensions/mcp-adapter/npx-resolver.ts +429 -0
  1734. package/src/extensions/mcp-adapter/oauth-handler.ts +57 -0
  1735. package/src/extensions/mcp-adapter/proxy-modes.test.ts +147 -0
  1736. package/src/extensions/mcp-adapter/proxy-modes.ts +1035 -0
  1737. package/src/extensions/mcp-adapter/resource-tools.ts +17 -0
  1738. package/src/extensions/mcp-adapter/server-manager.ts +355 -0
  1739. package/src/extensions/mcp-adapter/state.ts +45 -0
  1740. package/src/extensions/mcp-adapter/tool-metadata.test.ts +115 -0
  1741. package/src/extensions/mcp-adapter/tool-metadata.ts +185 -0
  1742. package/src/extensions/mcp-adapter/tool-registrar.ts +46 -0
  1743. package/src/extensions/mcp-adapter/types.ts +423 -0
  1744. package/src/extensions/mcp-adapter/ui-resource-handler.ts +143 -0
  1745. package/src/extensions/mcp-adapter/ui-server.ts +619 -0
  1746. package/src/extensions/mcp-adapter/ui-session.ts +378 -0
  1747. package/src/extensions/mcp-adapter/ui-stream-types.ts +93 -0
  1748. package/src/extensions/mcp-adapter/utils.ts +76 -0
  1749. package/src/extensions/model-catalog/builtin-models.ts +180 -0
  1750. package/src/extensions/model-catalog/guidelines/claude-family.ts +49 -0
  1751. package/src/extensions/model-catalog/guidelines/default-orchestration-guidelines.ts +11 -0
  1752. package/src/extensions/model-catalog/guidelines/default-phase-guidelines.ts +59 -0
  1753. package/src/extensions/model-catalog/guidelines/guidelines-resolver.test.ts +191 -0
  1754. package/src/extensions/model-catalog/guidelines/guidelines-resolver.ts +39 -0
  1755. package/src/extensions/model-catalog/guidelines/kimi-family.ts +82 -0
  1756. package/src/extensions/model-catalog/guidelines/minimax-family.ts +62 -0
  1757. package/src/extensions/model-catalog/guidelines/nemotron-family.ts +53 -0
  1758. package/src/extensions/model-catalog/index.ts +10 -0
  1759. package/src/extensions/model-catalog/model-metadata.test.ts +688 -0
  1760. package/src/extensions/model-catalog/model-metadata.ts +250 -0
  1761. package/src/extensions/model-catalog/model-registry.test.ts +228 -0
  1762. package/src/extensions/model-catalog/model-registry.ts +116 -0
  1763. package/src/extensions/model-catalog/ref-utils.ts +22 -0
  1764. package/src/extensions/model-catalog/types.ts +41 -0
  1765. package/src/extensions/model-guard.test.ts +756 -0
  1766. package/src/extensions/model-guard.ts +402 -0
  1767. package/src/extensions/model-switch.test.ts +1105 -0
  1768. package/src/extensions/model-switch.ts +261 -0
  1769. package/src/extensions/onboarding/picker-editor.ts +22 -0
  1770. package/src/extensions/onboarding/session-mode-picker.test.ts +135 -0
  1771. package/src/extensions/onboarding/session-mode-picker.ts +136 -0
  1772. package/src/extensions/onboarding/session-mode-startup.test.ts +237 -0
  1773. package/src/extensions/onboarding/session-mode-startup.ts +36 -0
  1774. package/src/extensions/onboarding/session-mode.test.ts +501 -0
  1775. package/src/extensions/onboarding/session-mode.ts +363 -0
  1776. package/src/extensions/orchestration/continuation-nudge.test.ts +595 -0
  1777. package/src/extensions/orchestration/continuation-nudge.ts +270 -0
  1778. package/src/extensions/orchestration/model-metadata.test.ts +671 -0
  1779. package/src/extensions/orchestration/model-metadata.ts +246 -0
  1780. package/src/extensions/orchestration/model-ref-utils.ts +5 -0
  1781. package/src/extensions/orchestration/model-registry/builtin-models.ts +223 -0
  1782. package/src/extensions/orchestration/model-registry/guidelines/claude-family.ts +49 -0
  1783. package/src/extensions/orchestration/model-registry/guidelines/default-orchestration-guidelines.ts +11 -0
  1784. package/src/extensions/orchestration/model-registry/guidelines/default-phase-guidelines.ts +67 -0
  1785. package/src/extensions/orchestration/model-registry/guidelines/guidelines-resolver.test.ts +273 -0
  1786. package/src/extensions/orchestration/model-registry/guidelines/guidelines-resolver.ts +39 -0
  1787. package/src/extensions/orchestration/model-registry/guidelines/kimi-family.ts +89 -0
  1788. package/src/extensions/orchestration/model-registry/guidelines/minimax-family.ts +68 -0
  1789. package/src/extensions/orchestration/model-registry/guidelines/nemotron-family.ts +60 -0
  1790. package/src/extensions/orchestration/model-registry/index.ts +4 -0
  1791. package/src/extensions/orchestration/model-registry/model-registry.test.ts +228 -0
  1792. package/src/extensions/orchestration/model-registry/model-registry.ts +116 -0
  1793. package/src/extensions/orchestration/model-registry/types.ts +41 -0
  1794. package/src/extensions/orchestration/model-roles-command.test.ts +367 -0
  1795. package/src/extensions/orchestration/model-roles-command.ts +531 -0
  1796. package/src/extensions/orchestration/model-roles.test.ts +448 -0
  1797. package/src/extensions/orchestration/model-roles.ts +302 -0
  1798. package/src/extensions/orchestration/orchestration-instructions.test.ts +459 -0
  1799. package/src/extensions/orchestration/orchestration-instructions.ts +614 -0
  1800. package/src/extensions/orphan-tool-result-sanitizer.test.ts +198 -0
  1801. package/src/extensions/orphan-tool-result-sanitizer.ts +128 -0
  1802. package/src/extensions/permissions/classifier-model.test.ts +127 -0
  1803. package/src/extensions/permissions/classifier-model.ts +65 -0
  1804. package/src/extensions/permissions/classifier.test.ts +334 -0
  1805. package/src/extensions/permissions/classifier.ts +228 -0
  1806. package/src/extensions/permissions/commands.ts +244 -0
  1807. package/src/extensions/permissions/config.test.ts +101 -0
  1808. package/src/extensions/permissions/config.ts +143 -0
  1809. package/src/extensions/permissions/constants.ts +1 -0
  1810. package/src/extensions/permissions/index.test.ts +1822 -0
  1811. package/src/extensions/permissions/index.ts +1193 -0
  1812. package/src/extensions/permissions/keybindings.test.ts +130 -0
  1813. package/src/extensions/permissions/keybindings.ts +91 -0
  1814. package/src/extensions/permissions/mode-controller-registry.ts +50 -0
  1815. package/src/extensions/permissions/mode-controller.ts +91 -0
  1816. package/src/extensions/permissions/mode.test.ts +51 -0
  1817. package/src/extensions/permissions/mode.ts +29 -0
  1818. package/src/extensions/permissions/plan-persistence.test.ts +56 -0
  1819. package/src/extensions/permissions/plan-persistence.ts +12 -0
  1820. package/src/extensions/permissions/plan-persona.test.ts +42 -0
  1821. package/src/extensions/permissions/prompter.ts +21 -0
  1822. package/src/extensions/permissions/prompts/classifier-system-prompt.ts +33 -0
  1823. package/src/extensions/permissions/prompts/plan-mode-supplement.test.ts +59 -0
  1824. package/src/extensions/permissions/prompts/plan-mode-supplement.ts +38 -0
  1825. package/src/extensions/permissions/prompts.test.ts +67 -0
  1826. package/src/extensions/permissions/prompts.ts +212 -0
  1827. package/src/extensions/permissions/rules.test.ts +327 -0
  1828. package/src/extensions/permissions/rules.ts +210 -0
  1829. package/src/extensions/permissions/select-utils.ts +2 -0
  1830. package/src/extensions/permissions/session-memory.test.ts +75 -0
  1831. package/src/extensions/permissions/session-memory.ts +94 -0
  1832. package/src/extensions/permissions/taxonomy.test.ts +684 -0
  1833. package/src/extensions/permissions/taxonomy.ts +616 -0
  1834. package/src/extensions/permissions/types.ts +70 -0
  1835. package/src/extensions/pi-compat.test.ts +201 -0
  1836. package/src/extensions/pi-package-lookup/index.test.ts +177 -0
  1837. package/src/extensions/pi-package-lookup/index.ts +263 -0
  1838. package/src/extensions/pi-package-lookup/native-compat.test.ts +230 -0
  1839. package/src/extensions/pi-package-lookup/native-compat.ts +279 -0
  1840. package/src/extensions/plugin-package-hook-adapter/definition.test.ts +220 -0
  1841. package/src/extensions/plugin-package-hook-adapter/definition.ts +60 -0
  1842. package/src/extensions/plugin-package-hook-adapter/index.ts +4 -0
  1843. package/src/extensions/prompt-construction/context-files.test.ts +167 -0
  1844. package/src/extensions/prompt-construction/context-files.ts +111 -0
  1845. package/src/extensions/prompt-construction/index.ts +8 -0
  1846. package/src/extensions/prompt-construction/prompt-enrichment.test.ts +1103 -0
  1847. package/src/extensions/prompt-construction/prompt-enrichment.ts +588 -0
  1848. package/src/extensions/prompt-construction/system-prompt-blocks.test.ts +323 -0
  1849. package/src/extensions/prompt-construction/system-prompt-blocks.ts +122 -0
  1850. package/src/extensions/prompt-construction/system-prompt.test.ts +528 -0
  1851. package/src/extensions/prompt-construction/system-prompt.ts +316 -0
  1852. package/src/extensions/prompt-construction/tool-visibility.test.ts +170 -0
  1853. package/src/extensions/prompt-construction/tool-visibility.ts +121 -0
  1854. package/src/extensions/prompt-summary.test.ts +56 -0
  1855. package/src/extensions/prompt-summary.ts +258 -0
  1856. package/src/extensions/questionnaire/constants.ts +6 -0
  1857. package/src/extensions/questionnaire/index.ts +8 -0
  1858. package/src/extensions/questionnaire/questionnaire-fallback.test.ts +948 -0
  1859. package/src/extensions/questionnaire/questionnaire-fallback.ts +230 -0
  1860. package/src/extensions/questionnaire/questionnaire-form.ts +314 -0
  1861. package/src/extensions/questionnaire/questionnaire-reducer.test.ts +508 -0
  1862. package/src/extensions/questionnaire/questionnaire-reducer.ts +510 -0
  1863. package/src/extensions/questionnaire/questionnaire.test.ts +425 -0
  1864. package/src/extensions/questionnaire/questionnaire.ts +280 -0
  1865. package/src/extensions/report-bug.test.ts +301 -0
  1866. package/src/extensions/report-bug.ts +93 -0
  1867. package/src/extensions/review-write-guard.integration.test.ts +167 -0
  1868. package/src/extensions/review-write-guard.test.ts +150 -0
  1869. package/src/extensions/review-write-guard.ts +143 -0
  1870. package/src/extensions/rtk-rewrite.test.ts +325 -0
  1871. package/src/extensions/rtk-rewrite.ts +201 -0
  1872. package/src/extensions/session-metadata/index.test.ts +158 -0
  1873. package/src/extensions/session-metadata/index.ts +66 -0
  1874. package/src/extensions/session-name.test.ts +248 -0
  1875. package/src/extensions/session-name.ts +192 -0
  1876. package/src/extensions/session-repair/orphan-tool-result-repair.test.ts +227 -0
  1877. package/src/extensions/session-repair/orphan-tool-result-repair.ts +183 -0
  1878. package/src/extensions/shared-footer.ts +24 -0
  1879. package/src/extensions/shared-input.test.ts +27 -0
  1880. package/src/extensions/shared-input.ts +24 -0
  1881. package/src/extensions/shutdown-marker.test.ts +195 -0
  1882. package/src/extensions/shutdown-marker.ts +61 -0
  1883. package/src/extensions/skills-manager/index.test.ts +17 -0
  1884. package/src/extensions/skills-manager/index.ts +18 -0
  1885. package/src/extensions/skills-manager/skill-manager.test.ts +350 -0
  1886. package/src/extensions/skills-manager/skill-manager.ts +508 -0
  1887. package/src/extensions/skills-manager/tool.test.ts +234 -0
  1888. package/src/extensions/skills-manager/tool.ts +241 -0
  1889. package/src/extensions/skills-manager/usage.test.ts +119 -0
  1890. package/src/extensions/skills-manager/usage.ts +249 -0
  1891. package/src/extensions/slash-commands.ts +22 -0
  1892. package/src/extensions/spinner.ts +117 -0
  1893. package/src/extensions/stale-ctx.ts +15 -0
  1894. package/src/extensions/startup-update.test.ts +130 -0
  1895. package/src/extensions/startup-update.ts +33 -0
  1896. package/src/extensions/stats/api.ts +168 -0
  1897. package/src/extensions/stats/display.ts +210 -0
  1898. package/src/extensions/stats/index.ts +130 -0
  1899. package/src/extensions/stats/stats.test.ts +547 -0
  1900. package/src/extensions/stats/types.ts +263 -0
  1901. package/src/extensions/stats/visual.ts +439 -0
  1902. package/src/extensions/strip-images.test.ts +118 -0
  1903. package/src/extensions/strip-images.ts +162 -0
  1904. package/src/extensions/superpowers/config.ts +10 -0
  1905. package/src/extensions/superpowers.test.ts +17 -0
  1906. package/src/extensions/superpowers.ts +5 -0
  1907. package/src/extensions/surveys/index.test.ts +200 -0
  1908. package/src/extensions/surveys/index.ts +107 -0
  1909. package/src/extensions/surveys/survey.test.ts +157 -0
  1910. package/src/extensions/surveys/survey.ts +204 -0
  1911. package/src/extensions/tags.test.ts +275 -0
  1912. package/src/extensions/tags.ts +662 -0
  1913. package/src/extensions/telemetry/README.md +113 -0
  1914. package/src/extensions/telemetry/accumulator.test.ts +260 -0
  1915. package/src/extensions/telemetry/accumulator.ts +146 -0
  1916. package/src/extensions/telemetry/config-snapshot.test.ts +259 -0
  1917. package/src/extensions/telemetry/config-snapshot.ts +177 -0
  1918. package/src/extensions/telemetry/handlers/messages.test.ts +422 -0
  1919. package/src/extensions/telemetry/handlers/messages.ts +113 -0
  1920. package/src/extensions/telemetry/handlers/session.test.ts +198 -0
  1921. package/src/extensions/telemetry/handlers/session.ts +24 -0
  1922. package/src/extensions/telemetry/handlers/tools.test.ts +416 -0
  1923. package/src/extensions/telemetry/handlers/tools.ts +171 -0
  1924. package/src/extensions/telemetry/handlers/transport-errors.test.ts +178 -0
  1925. package/src/extensions/telemetry/handlers/transport-errors.ts +42 -0
  1926. package/src/extensions/telemetry/helpers.test.ts +266 -0
  1927. package/src/extensions/telemetry/helpers.ts +146 -0
  1928. package/src/extensions/telemetry/index.test.ts +1170 -0
  1929. package/src/extensions/telemetry/index.ts +609 -0
  1930. package/src/extensions/telemetry/pre-session.test.ts +390 -0
  1931. package/src/extensions/telemetry/pre-session.ts +135 -0
  1932. package/src/extensions/telemetry/session-context.test.ts +487 -0
  1933. package/src/extensions/telemetry/session-context.ts +281 -0
  1934. package/src/extensions/telemetry/session-type.ts +5 -0
  1935. package/src/extensions/telemetry/settings-change-emitter.test.ts +197 -0
  1936. package/src/extensions/telemetry/settings-change-emitter.ts +127 -0
  1937. package/src/extensions/telemetry/survey.test.ts +140 -0
  1938. package/src/extensions/telemetry/survey.ts +70 -0
  1939. package/src/extensions/telemetry/transport.test.ts +301 -0
  1940. package/src/extensions/telemetry/transport.ts +217 -0
  1941. package/src/extensions/teleport/commands/args.test.ts +166 -0
  1942. package/src/extensions/teleport/commands/args.ts +226 -0
  1943. package/src/extensions/teleport/commands/attach.test.ts +209 -0
  1944. package/src/extensions/teleport/commands/attach.ts +91 -0
  1945. package/src/extensions/teleport/commands/errors.ts +26 -0
  1946. package/src/extensions/teleport/commands/remote-sessions.test.ts +350 -0
  1947. package/src/extensions/teleport/commands/remote-sessions.ts +193 -0
  1948. package/src/extensions/teleport/commands/ssh-config.ts +25 -0
  1949. package/src/extensions/teleport/commands/sync.test.ts +104 -0
  1950. package/src/extensions/teleport/commands/sync.ts +205 -0
  1951. package/src/extensions/teleport/commands/teleport.test.ts +593 -0
  1952. package/src/extensions/teleport/commands/teleport.ts +359 -0
  1953. package/src/extensions/teleport/commands/terminal.test.ts +228 -0
  1954. package/src/extensions/teleport/commands/terminal.ts +97 -0
  1955. package/src/extensions/teleport/commands/workspace-ref.test.ts +269 -0
  1956. package/src/extensions/teleport/commands/workspace-ref.ts +105 -0
  1957. package/src/extensions/teleport/index.test.ts +72 -0
  1958. package/src/extensions/teleport/index.ts +66 -0
  1959. package/src/extensions/teleport/overlay/keybindings.test.ts +101 -0
  1960. package/src/extensions/teleport/overlay/keybindings.ts +65 -0
  1961. package/src/extensions/teleport/overlay/overlay-component.test.ts +102 -0
  1962. package/src/extensions/teleport/overlay/overlay-component.ts +284 -0
  1963. package/src/extensions/teleport/overlay/reconnect-banner.test.ts +63 -0
  1964. package/src/extensions/teleport/overlay/reconnect-banner.ts +69 -0
  1965. package/src/extensions/teleport/overlay/tab-bar.test.ts +72 -0
  1966. package/src/extensions/teleport/overlay/tab-bar.ts +146 -0
  1967. package/src/extensions/teleport/overlay/tab-manager.test.ts +484 -0
  1968. package/src/extensions/teleport/overlay/tab-manager.ts +293 -0
  1969. package/src/extensions/teleport/preflight/git.test.ts +94 -0
  1970. package/src/extensions/teleport/preflight/git.ts +40 -0
  1971. package/src/extensions/teleport/preflight/index.test.ts +97 -0
  1972. package/src/extensions/teleport/preflight/index.ts +43 -0
  1973. package/src/extensions/teleport/preflight/rsync.test.ts +39 -0
  1974. package/src/extensions/teleport/preflight/rsync.ts +23 -0
  1975. package/src/extensions/teleport/preflight/workspace-size.ts +2 -0
  1976. package/src/extensions/teleport/provisioning/concurrency.ts +40 -0
  1977. package/src/extensions/teleport/provisioning/constants.ts +3 -0
  1978. package/src/extensions/teleport/provisioning/estimate-bytes.test.ts +107 -0
  1979. package/src/extensions/teleport/provisioning/estimate-bytes.ts +123 -0
  1980. package/src/extensions/teleport/provisioning/git-provision.test.ts +76 -0
  1981. package/src/extensions/teleport/provisioning/git-provision.ts +54 -0
  1982. package/src/extensions/teleport/provisioning/include-list.test.ts +222 -0
  1983. package/src/extensions/teleport/provisioning/include-list.ts +203 -0
  1984. package/src/extensions/teleport/provisioning/paths.ts +54 -0
  1985. package/src/extensions/teleport/provisioning/proxy-command.ts +30 -0
  1986. package/src/extensions/teleport/provisioning/rsync-runner.test.ts +544 -0
  1987. package/src/extensions/teleport/provisioning/rsync-runner.ts +675 -0
  1988. package/src/extensions/teleport/pty/mouse-capture.ts +7 -0
  1989. package/src/extensions/teleport/pty/reconnect-supervisor.ts +117 -0
  1990. package/src/extensions/teleport/pty/terminal-component.test.ts +282 -0
  1991. package/src/extensions/teleport/pty/terminal-component.ts +331 -0
  1992. package/src/extensions/teleport/pty/websocket-transport.test.ts +440 -0
  1993. package/src/extensions/teleport/pty/websocket-transport.ts +228 -0
  1994. package/src/extensions/teleport/pty/xterm-core.test.ts +79 -0
  1995. package/src/extensions/teleport/pty/xterm-core.ts +159 -0
  1996. package/src/extensions/teleport/session-filter.ts +10 -0
  1997. package/src/extensions/teleport/ssh-config/paths.ts +27 -0
  1998. package/src/extensions/teleport/ssh-config/render.test.ts +111 -0
  1999. package/src/extensions/teleport/ssh-config/render.ts +97 -0
  2000. package/src/extensions/teleport/ssh-config/sync.test.ts +170 -0
  2001. package/src/extensions/teleport/ssh-config/sync.ts +92 -0
  2002. package/src/extensions/teleport/types.ts +14 -0
  2003. package/src/extensions/teleport/ui/format-bytes.ts +13 -0
  2004. package/src/extensions/teleport/ui/git-token-prompt.ts +164 -0
  2005. package/src/extensions/teleport/ui/help-modal.ts +100 -0
  2006. package/src/extensions/teleport/ui/progress.test.ts +236 -0
  2007. package/src/extensions/teleport/ui/progress.ts +345 -0
  2008. package/src/extensions/teleport/ui/remote-sessions-panel.test.ts +221 -0
  2009. package/src/extensions/teleport/ui/remote-sessions-panel.ts +309 -0
  2010. package/src/extensions/teleport/ui/sessions-table.ts +24 -0
  2011. package/src/extensions/teleport/ui/sync-progress-row.ts +30 -0
  2012. package/src/extensions/teleport/ui/tty-handoff.ts +131 -0
  2013. package/src/extensions/teleport/ui/workspaces-panel.test.ts +307 -0
  2014. package/src/extensions/teleport/ui/workspaces-panel.ts +364 -0
  2015. package/src/extensions/teleport/ui/workspaces-table.ts +12 -0
  2016. package/src/extensions/terminal-colors.ts +256 -0
  2017. package/src/extensions/terminal-compat/keyboard-capability.test.ts +69 -0
  2018. package/src/extensions/terminal-compat/keyboard-capability.ts +103 -0
  2019. package/src/extensions/terminal-compat/startup-warning.test.ts +273 -0
  2020. package/src/extensions/terminal-compat/startup-warning.ts +77 -0
  2021. package/src/extensions/theme-selector.test.ts +297 -0
  2022. package/src/extensions/theme-selector.ts +156 -0
  2023. package/src/extensions/thinking-steps/index.ts +429 -0
  2024. package/src/extensions/thinking-steps/internal-patch.ts +483 -0
  2025. package/src/extensions/thinking-steps/parse.ts +1376 -0
  2026. package/src/extensions/thinking-steps/persistence.ts +95 -0
  2027. package/src/extensions/thinking-steps/render.ts +496 -0
  2028. package/src/extensions/thinking-steps/state.ts +482 -0
  2029. package/src/extensions/thinking-steps/types.ts +55 -0
  2030. package/src/extensions/tips/general-tips.test.ts +33 -0
  2031. package/src/extensions/tips/general-tips.ts +81 -0
  2032. package/src/extensions/tips/index.test.ts +198 -0
  2033. package/src/extensions/tips/index.ts +231 -0
  2034. package/src/extensions/tips/presenter.test.ts +160 -0
  2035. package/src/extensions/tips/presenter.ts +170 -0
  2036. package/src/extensions/tips/registry.test.ts +59 -0
  2037. package/src/extensions/tips/registry.ts +66 -0
  2038. package/src/extensions/tips/tip-row.test.ts +97 -0
  2039. package/src/extensions/tips/tip-row.ts +48 -0
  2040. package/src/extensions/tips/tips-panel.test.ts +222 -0
  2041. package/src/extensions/tips/tips-panel.ts +310 -0
  2042. package/src/extensions/tips/types.ts +21 -0
  2043. package/src/extensions/todos/command.test.ts +103 -0
  2044. package/src/extensions/todos/command.ts +266 -0
  2045. package/src/extensions/todos/constants.ts +1 -0
  2046. package/src/extensions/todos/index.test.ts +405 -0
  2047. package/src/extensions/todos/index.ts +238 -0
  2048. package/src/extensions/todos/prompt-block.test.ts +219 -0
  2049. package/src/extensions/todos/prompt-block.ts +176 -0
  2050. package/src/extensions/todos/reducer.test.ts +141 -0
  2051. package/src/extensions/todos/reducer.ts +155 -0
  2052. package/src/extensions/todos/scope.test.ts +42 -0
  2053. package/src/extensions/todos/scope.ts +109 -0
  2054. package/src/extensions/todos/store.test.ts +78 -0
  2055. package/src/extensions/todos/store.ts +92 -0
  2056. package/src/extensions/todos/tool.test.ts +84 -0
  2057. package/src/extensions/todos/tool.ts +240 -0
  2058. package/src/extensions/todos/types.ts +79 -0
  2059. package/src/extensions/todos/widget.test.ts +348 -0
  2060. package/src/extensions/todos/widget.ts +332 -0
  2061. package/src/extensions/tool-grouping.test.ts +387 -0
  2062. package/src/extensions/tool-grouping.ts +346 -0
  2063. package/src/extensions/tool-rendering.test.ts +401 -0
  2064. package/src/extensions/tool-rendering.ts +4511 -0
  2065. package/src/extensions/trace-id.test.ts +230 -0
  2066. package/src/extensions/trace-id.ts +46 -0
  2067. package/src/extensions/ui-branch-poll.test.ts +164 -0
  2068. package/src/extensions/ui-branch-poll.ts +57 -0
  2069. package/src/extensions/ui.test.ts +185 -0
  2070. package/src/extensions/ui.ts +649 -0
  2071. package/src/extensions/web-fetch/browser-pool.test.ts +237 -0
  2072. package/src/extensions/web-fetch/browser-pool.ts +145 -0
  2073. package/src/extensions/web-fetch/cache.test.ts +196 -0
  2074. package/src/extensions/web-fetch/cache.ts +114 -0
  2075. package/src/extensions/web-fetch/content-converter.test.ts +341 -0
  2076. package/src/extensions/web-fetch/content-converter.ts +188 -0
  2077. package/src/extensions/web-fetch/execute-handler.test.ts +384 -0
  2078. package/src/extensions/web-fetch/execute-handler.ts +131 -0
  2079. package/src/extensions/web-fetch/index.ts +113 -0
  2080. package/src/extensions/web-fetch/integration.test.ts +618 -0
  2081. package/src/extensions/web-fetch/page-fetcher.test.ts +532 -0
  2082. package/src/extensions/web-fetch/page-fetcher.ts +358 -0
  2083. package/src/extensions/web-fetch/url-validator.test.ts +230 -0
  2084. package/src/extensions/web-fetch/url-validator.ts +153 -0
  2085. package/src/extensions/web-search/execute-handler.test.ts +216 -0
  2086. package/src/extensions/web-search/execute-handler.ts +151 -0
  2087. package/src/extensions/web-search/index.ts +107 -0
  2088. package/src/ferment/engine.test.ts +279 -0
  2089. package/src/ferment/engine.ts +320 -0
  2090. package/src/ferment/event-mapper.ts +313 -0
  2091. package/src/ferment/event-store.property.test.ts +240 -0
  2092. package/src/ferment/event-store.test.ts +780 -0
  2093. package/src/ferment/event-store.ts +1332 -0
  2094. package/src/ferment/fsm.test.ts +630 -0
  2095. package/src/ferment/fsm.ts +466 -0
  2096. package/src/ferment/lifecycle.ts +35 -0
  2097. package/src/ferment/state-machine.test.ts +1215 -0
  2098. package/src/ferment/state-machine.ts +994 -0
  2099. package/src/ferment/stats.test.ts +31 -0
  2100. package/src/ferment/stats.ts +334 -0
  2101. package/src/ferment/store.test.ts +543 -0
  2102. package/src/ferment/store.ts +906 -0
  2103. package/src/ferment/success-criteria.ts +51 -0
  2104. package/src/ferment/text.ts +11 -0
  2105. package/src/ferment/title.test.ts +35 -0
  2106. package/src/ferment/title.ts +28 -0
  2107. package/src/ferment/types.ts +277 -0
  2108. package/src/fs-paths.test.ts +104 -0
  2109. package/src/fs-paths.ts +112 -0
  2110. package/src/integrations/__fixtures__/models.ts +72 -0
  2111. package/src/integrations/bun-sqlite.d.ts +22 -0
  2112. package/src/integrations/claude-code.test.ts +488 -0
  2113. package/src/integrations/claude-code.ts +221 -0
  2114. package/src/integrations/constants.ts +9 -0
  2115. package/src/integrations/cursor.test.ts +91 -0
  2116. package/src/integrations/cursor.ts +188 -0
  2117. package/src/integrations/detect.ts +92 -0
  2118. package/src/integrations/gsd2.test.ts +146 -0
  2119. package/src/integrations/gsd2.ts +162 -0
  2120. package/src/integrations/models.ts +212 -0
  2121. package/src/integrations/openclaw.test.ts +314 -0
  2122. package/src/integrations/openclaw.ts +276 -0
  2123. package/src/integrations/opencode.test.ts +216 -0
  2124. package/src/integrations/opencode.ts +226 -0
  2125. package/src/integrations/provider/opencode.ts +37 -0
  2126. package/src/integrations/registry.test.ts +43 -0
  2127. package/src/integrations/registry.ts +33 -0
  2128. package/src/integrations/spawn.ts +88 -0
  2129. package/src/integrations/types.ts +35 -0
  2130. package/src/login-command-patch.test.ts +609 -0
  2131. package/src/login-command-patch.ts +299 -0
  2132. package/src/models.test.ts +827 -0
  2133. package/src/models.ts +379 -0
  2134. package/src/modes/acp/acp-prompter.ts +64 -0
  2135. package/src/modes/acp/acp-ui-context.test.ts +1001 -0
  2136. package/src/modes/acp/acp-ui-context.ts +435 -0
  2137. package/src/modes/acp/capabilities.ts +36 -0
  2138. package/src/modes/acp/commands.test.ts +29 -0
  2139. package/src/modes/acp/commands.ts +19 -0
  2140. package/src/modes/acp/permission-prompter-registry.ts +17 -0
  2141. package/src/modes/acp/server.test.ts +4392 -0
  2142. package/src/modes/acp/server.ts +1569 -0
  2143. package/src/modes/acp/utils.ts +10 -0
  2144. package/src/oauth-page-patch.test.ts +84 -0
  2145. package/src/ollama.test.ts +1469 -0
  2146. package/src/ollama.ts +491 -0
  2147. package/src/paste-interceptor.test.ts +179 -0
  2148. package/src/paste-interceptor.ts +61 -0
  2149. package/src/paste-to-editor-patch.test.ts +24 -0
  2150. package/src/paste-to-editor-patch.ts +27 -0
  2151. package/src/posthog-device.ts +31 -0
  2152. package/src/proxy.test.ts +36 -0
  2153. package/src/proxy.ts +36 -0
  2154. package/src/resources/bash-hook-discovery.ts +69 -0
  2155. package/src/resources/bash-hooks.test.ts +93 -0
  2156. package/src/resources/bash-hooks.ts +109 -0
  2157. package/src/resources/claude-code-hook-resources.ts +35 -0
  2158. package/src/resources/definitions.test.ts +92 -0
  2159. package/src/resources/definitions.ts +149 -0
  2160. package/src/resources/extension.test.ts +168 -0
  2161. package/src/resources/extension.ts +114 -0
  2162. package/src/resources/filter.ts +11 -0
  2163. package/src/resources/package-resources.test.ts +234 -0
  2164. package/src/resources/package-resources.ts +152 -0
  2165. package/src/resources/rtk-install.test.ts +37 -0
  2166. package/src/resources/rtk-install.ts +289 -0
  2167. package/src/resources/store.test.ts +118 -0
  2168. package/src/resources/store.ts +76 -0
  2169. package/src/resources/tool-blocker.ts +14 -0
  2170. package/src/resources/types.ts +23 -0
  2171. package/src/resources/ui.test.ts +74 -0
  2172. package/src/resources/ui.ts +221 -0
  2173. package/src/sandbox/cloud/auth.test.ts +219 -0
  2174. package/src/sandbox/cloud/auth.ts +127 -0
  2175. package/src/sandbox/cloud/http.test.ts +88 -0
  2176. package/src/sandbox/cloud/http.ts +46 -0
  2177. package/src/sandbox/cloud/index.ts +18 -0
  2178. package/src/sandbox/cloud/keys.test.ts +44 -0
  2179. package/src/sandbox/cloud/keys.ts +34 -0
  2180. package/src/sandbox/cloud/readiness.test.ts +115 -0
  2181. package/src/sandbox/cloud/readiness.ts +122 -0
  2182. package/src/sandbox/cloud/types.ts +70 -0
  2183. package/src/sandbox/cloud/uri.test.ts +51 -0
  2184. package/src/sandbox/cloud/uri.ts +30 -0
  2185. package/src/sandbox/cloud/workspaces.test.ts +249 -0
  2186. package/src/sandbox/cloud/workspaces.ts +161 -0
  2187. package/src/sandbox/constants.ts +2 -0
  2188. package/src/sandbox/git-credentials.test.ts +89 -0
  2189. package/src/sandbox/git-credentials.ts +72 -0
  2190. package/src/sandbox/worker/client.test.ts +156 -0
  2191. package/src/sandbox/worker/client.ts +201 -0
  2192. package/src/sandbox/worker/git-identity.test.ts +99 -0
  2193. package/src/sandbox/worker/git-identity.ts +69 -0
  2194. package/src/sandbox/worker/index.ts +36 -0
  2195. package/src/sandbox/worker/secrets.test.ts +61 -0
  2196. package/src/sandbox/worker/secrets.ts +28 -0
  2197. package/src/sandbox/worker/sessions.test.ts +197 -0
  2198. package/src/sandbox/worker/sessions.ts +32 -0
  2199. package/src/sandbox/worker/status.test.ts +57 -0
  2200. package/src/sandbox/worker/status.ts +6 -0
  2201. package/src/sandbox/worker/types.ts +119 -0
  2202. package/src/set-package-dir.ts +5 -0
  2203. package/src/settings-watcher.test.ts +116 -0
  2204. package/src/settings-watcher.ts +79 -0
  2205. package/src/setup-wizard/apply-tools.test.ts +131 -0
  2206. package/src/setup-wizard/apply-tools.ts +70 -0
  2207. package/src/setup-wizard/index.ts +107 -0
  2208. package/src/setup-wizard/prompt.ts +126 -0
  2209. package/src/setup-wizard/shell-profile.test.ts +154 -0
  2210. package/src/setup-wizard/shell-profile.ts +169 -0
  2211. package/src/setup-wizard/state.ts +45 -0
  2212. package/src/setup-wizard/steps/auth.test.ts +145 -0
  2213. package/src/setup-wizard/steps/auth.ts +130 -0
  2214. package/src/setup-wizard/steps/done.test.ts +267 -0
  2215. package/src/setup-wizard/steps/done.ts +121 -0
  2216. package/src/setup-wizard/steps/rtk.ts +6 -0
  2217. package/src/setup-wizard/steps/telemetry.test.ts +46 -0
  2218. package/src/setup-wizard/steps/telemetry.ts +41 -0
  2219. package/src/setup-wizard/steps/tools.ts +45 -0
  2220. package/src/setup-wizard/steps/welcome.ts +42 -0
  2221. package/src/setup-wizard.test.ts +384 -0
  2222. package/src/setup-wizard.ts +405 -0
  2223. package/src/shared/planning/entry-trigger-registry.test.ts +427 -0
  2224. package/src/shared/planning/entry-trigger-registry.ts +216 -0
  2225. package/src/shared/planning/plan-artifact-store.test.ts +338 -0
  2226. package/src/shared/planning/plan-artifact-store.ts +244 -0
  2227. package/src/shared/planning/plan-decomposition.test.ts +183 -0
  2228. package/src/shared/planning/plan-decomposition.ts +338 -0
  2229. package/src/shared/planning/planning-stop-nudge.test.ts +217 -0
  2230. package/src/shared/planning/planning-stop-nudge.ts +133 -0
  2231. package/src/shared/planning/prompt-supplement-registry.test.ts +264 -0
  2232. package/src/shared/planning/prompt-supplement-registry.ts +250 -0
  2233. package/src/shared/planning/read-only-tool-registry.test.ts +96 -0
  2234. package/src/shared/planning/read-only-tool-registry.ts +98 -0
  2235. package/src/shared/planning/shared-planning-process.test.ts +224 -0
  2236. package/src/shared/planning/shared-planning-process.ts +128 -0
  2237. package/src/shared/planning/tool-catalog.test.ts +344 -0
  2238. package/src/shared/planning/tool-catalog.ts +258 -0
  2239. package/src/shared/planning/tool-profile-manager.test.ts +409 -0
  2240. package/src/shared/planning/tool-profile-manager.ts +281 -0
  2241. package/src/skill-paths.test.ts +33 -0
  2242. package/src/skill-paths.ts +18 -0
  2243. package/src/skills-wizard.ts +44 -0
  2244. package/src/ssh-proxy.test.ts +102 -0
  2245. package/src/ssh-proxy.ts +79 -0
  2246. package/src/startup-context.ts +23 -0
  2247. package/src/startup-settings.test.ts +37 -0
  2248. package/src/startup-settings.ts +26 -0
  2249. package/src/terminal-bg-probe.test.ts +131 -0
  2250. package/src/terminal-bg-probe.ts +238 -0
  2251. package/src/theme-file-watcher.ts +95 -0
  2252. package/src/types/before-provider-headers.ts +48 -0
  2253. package/src/types/pi-coding-agent-utils.d.ts +34 -0
  2254. package/src/update/extract.ts +75 -0
  2255. package/src/update/github.test.ts +133 -0
  2256. package/src/update/github.ts +190 -0
  2257. package/src/update/install.test.ts +210 -0
  2258. package/src/update/install.ts +205 -0
  2259. package/src/update/paths.test.ts +97 -0
  2260. package/src/update/paths.ts +109 -0
  2261. package/src/update/state.test.ts +215 -0
  2262. package/src/update/state.ts +94 -0
  2263. package/src/update/workflow.test.ts +397 -0
  2264. package/src/update/workflow.ts +217 -0
  2265. package/src/upstream-retry-patch.test.ts +77 -0
  2266. package/src/upstream-retry-patch.ts +41 -0
  2267. package/src/utils/clipboard-image.test.ts +117 -0
  2268. package/src/utils/clipboard-image.ts +316 -0
  2269. package/src/utils/clipboard-linux-routing.test.ts +100 -0
  2270. package/src/utils/clipboard-linux-subprocess.test.ts +176 -0
  2271. package/src/utils/clipboard-linux-subprocess.ts +58 -0
  2272. package/src/utils/clipboard-native-harness-wsl.test.ts +109 -0
  2273. package/src/utils/clipboard-native-harness.test.ts +54 -0
  2274. package/src/utils/clipboard-native-harness.ts +146 -0
  2275. package/src/utils/clipboard-read.test.ts +88 -0
  2276. package/src/utils/clipboard-read.ts +69 -0
  2277. package/src/utils/export-post-process.test.ts +539 -0
  2278. package/src/utils/export-post-process.ts +213 -0
  2279. package/src/utils/http.test.ts +302 -0
  2280. package/src/utils/http.ts +106 -0
  2281. package/src/utils/image-registry.test.ts +88 -0
  2282. package/src/utils/image-registry.ts +132 -0
  2283. package/src/utils/image-utils.test.ts +58 -0
  2284. package/src/utils/image-utils.ts +38 -0
  2285. package/src/utils/os-metadata.ts +65 -0
  2286. package/src/utils/sandbox.test.ts +98 -0
  2287. package/src/utils/sandbox.ts +24 -0
  2288. package/src/utils/session-metadata-store.test.ts +228 -0
  2289. package/src/utils/session-metadata-store.ts +96 -0
  2290. package/src/utils/spawn-ikie-subprocess.ts +57 -0
  2291. package/src/utils/trace-id-export.test.ts +343 -0
  2292. package/src/utils/trace-id-export.ts +84 -0
  2293. package/src/utils.test.ts +38 -0
  2294. package/src/utils.ts +65 -0
  2295. package/test-cases/README.md +54 -0
  2296. package/test-cases/bitcoin-price.md +52 -0
  2297. package/test-cases/golang-question.md +29 -0
  2298. package/test-cases/offender.md +32 -0
  2299. package/test-cases/pi-mono-design.md +27 -0
  2300. package/test-cases/pi-mono-tool-card-loop.txt +1381 -0
  2301. package/test-cases/pi-mono-tool-card.md +60 -0
  2302. package/test-cases/pokemon.md +27 -0
  2303. package/test-cases/problem-740.md +20 -0
  2304. package/test-cases/python-project.md +24 -0
  2305. package/test-cases/remove-home-directory.md +53 -0
  2306. package/test-cases/use-gh.md +25 -0
  2307. package/tests/e2e/acp/all-capabilities.test.ts +102 -0
  2308. package/tests/e2e/acp/elicitation-dialogs.test.ts +139 -0
  2309. package/tests/e2e/acp/elicitation-only.test.ts +76 -0
  2310. package/tests/e2e/acp/message-id.test.ts +139 -0
  2311. package/tests/e2e/acp/no-capabilities.test.ts +71 -0
  2312. package/tests/e2e/acp/permission-flow.test.ts +237 -0
  2313. package/tests/e2e/acp/support/acp-fixture.ts +413 -0
  2314. package/tests/e2e/acp/support/scenarios.ts +55 -0
  2315. package/tests/e2e/acp/support/test-dialog-extension.js +22 -0
  2316. package/tests/e2e/acp/support/test-ui-extension.js +14 -0
  2317. package/tests/e2e/acp/vitest.config.ts +12 -0
  2318. package/tests/e2e/tui/ask-user-form.test.ts +310 -0
  2319. package/tests/e2e/tui/basic-session-lifecycle.test.ts +20 -0
  2320. package/tests/e2e/tui/branch-resume.test.ts +71 -0
  2321. package/tests/e2e/tui/cooking-animation.test.ts +213 -0
  2322. package/tests/e2e/tui/editor-narrow-layout.test.ts +47 -0
  2323. package/tests/e2e/tui/extension-custom-headers.test.ts +75 -0
  2324. package/tests/e2e/tui/ferment-draft-proposal-persistence.test.ts +125 -0
  2325. package/tests/e2e/tui/ferment-new-runs-planning.test.ts +211 -0
  2326. package/tests/e2e/tui/ferment-phase-review.test.ts +78 -0
  2327. package/tests/e2e/tui/ferment-plan-review-suppression.test.ts +404 -0
  2328. package/tests/e2e/tui/multi-model-command.test.ts +624 -0
  2329. package/tests/e2e/tui/nudge-wiring.test.ts +129 -0
  2330. package/tests/e2e/tui/ollama-models.test.ts +143 -0
  2331. package/tests/e2e/tui/oneshot-bypasses-dropdown.test.ts +97 -0
  2332. package/tests/e2e/tui/plan-mode-tool-switch.test.ts +73 -0
  2333. package/tests/e2e/tui/plan-review-dismissal.test.ts +291 -0
  2334. package/tests/e2e/tui/plan-to-ferment-promo.test.ts +204 -0
  2335. package/tests/e2e/tui/skip-list.js +9 -0
  2336. package/tests/e2e/tui/support/assertions.ts +41 -0
  2337. package/tests/e2e/tui/support/fake-ollama-server.ts +356 -0
  2338. package/tests/e2e/tui/support/fake-openai-server.ts +361 -0
  2339. package/tests/e2e/tui/support/ikie-fixture.ts +374 -0
  2340. package/tests/e2e/tui/theme-selector.test.ts +99 -0
  2341. package/tests/e2e/tui/todo-overlay.test.ts +163 -0
  2342. package/tests/e2e/tui/todo-widget-ferment.test.ts +346 -0
  2343. package/tests/e2e/tui/tui-test.config.ts +6 -0
  2344. package/tests/smoke/agent-session-tracking.test.ts +203 -0
  2345. package/tests/smoke/binary.test.ts +186 -0
  2346. package/tests/smoke/ferment-oneshot-exit.test.ts +514 -0
  2347. package/tests/smoke/harness.ts +236 -0
  2348. package/tests/smoke/interactive-paste.test.ts +167 -0
  2349. package/tests/smoke/vitest.config.ts +12 -0
  2350. package/tests/smoke/web-fetch.test.ts +41 -0
  2351. package/tests/smoke/web-search.test.ts +47 -0
  2352. package/themes/catppuccin-macchiato.json +82 -0
  2353. package/themes/dark.json +87 -0
  2354. package/themes/dracula.json +79 -0
  2355. package/themes/github-dark.json +80 -0
  2356. package/themes/github-light.json +80 -0
  2357. package/themes/ikie-light.json +92 -0
  2358. package/themes/ikie-minimal.json +79 -0
  2359. package/themes/ikie.json +96 -0
  2360. package/themes/light.json +86 -0
  2361. package/themes/lucent-orng.json +79 -0
  2362. package/themes/monokai.json +78 -0
  2363. package/themes/neon.json +87 -0
  2364. package/themes/night-owl.json +87 -0
  2365. package/themes/nord.json +82 -0
  2366. package/themes/one-dark.json +79 -0
  2367. package/themes/solarized-dark.json +81 -0
  2368. package/themes/solarized-light.json +81 -0
  2369. package/tools/proxy-helper/Makefile +11 -0
  2370. package/tools/proxy-helper/cmd/proxy/proxy.go +211 -0
  2371. package/tools/proxy-helper/cmd/proxy/proxy_test.go +309 -0
  2372. package/tools/proxy-helper/go.mod +13 -0
  2373. package/tools/proxy-helper/go.sum +12 -0
  2374. package/tools/proxy-helper/main.go +29 -0
  2375. package/tools/proxy-helper/pkg/cast/cast.go +287 -0
  2376. package/tsconfig.json +17 -0
  2377. package/vendor/superpowers/.claude-plugin/marketplace.json +20 -0
  2378. package/vendor/superpowers/.claude-plugin/plugin.json +20 -0
  2379. package/vendor/superpowers/.codex-plugin/plugin.json +47 -0
  2380. package/vendor/superpowers/.cursor-plugin/plugin.json +25 -0
  2381. package/vendor/superpowers/.gitattributes +18 -0
  2382. package/vendor/superpowers/.github/FUNDING.yml +3 -0
  2383. package/vendor/superpowers/.github/ISSUE_TEMPLATE/bug_report.md +52 -0
  2384. package/vendor/superpowers/.github/ISSUE_TEMPLATE/config.yml +5 -0
  2385. package/vendor/superpowers/.github/ISSUE_TEMPLATE/feature_request.md +34 -0
  2386. package/vendor/superpowers/.github/ISSUE_TEMPLATE/platform_support.md +23 -0
  2387. package/vendor/superpowers/.github/PULL_REQUEST_TEMPLATE.md +126 -0
  2388. package/vendor/superpowers/.opencode/INSTALL.md +110 -0
  2389. package/vendor/superpowers/.opencode/plugins/superpowers.js +135 -0
  2390. package/vendor/superpowers/.version-bump.json +20 -0
  2391. package/vendor/superpowers/CLAUDE.md +106 -0
  2392. package/vendor/superpowers/CODE_OF_CONDUCT.md +128 -0
  2393. package/vendor/superpowers/GEMINI.md +2 -0
  2394. package/vendor/superpowers/LICENSE +21 -0
  2395. package/vendor/superpowers/README.md +233 -0
  2396. package/vendor/superpowers/RELEASE-NOTES.md +1180 -0
  2397. package/vendor/superpowers/assets/app-icon.png +0 -0
  2398. package/vendor/superpowers/assets/superpowers-small.svg +1 -0
  2399. package/vendor/superpowers/docs/README.opencode.md +157 -0
  2400. package/vendor/superpowers/docs/plans/2025-11-22-opencode-support-design.md +294 -0
  2401. package/vendor/superpowers/docs/plans/2025-11-22-opencode-support-implementation.md +1095 -0
  2402. package/vendor/superpowers/docs/plans/2025-11-28-skills-improvements-from-user-feedback.md +711 -0
  2403. package/vendor/superpowers/docs/plans/2026-01-17-visual-brainstorming.md +571 -0
  2404. package/vendor/superpowers/docs/superpowers/plans/2026-01-22-document-review-system.md +301 -0
  2405. package/vendor/superpowers/docs/superpowers/plans/2026-02-19-visual-brainstorming-refactor.md +523 -0
  2406. package/vendor/superpowers/docs/superpowers/plans/2026-03-11-zero-dep-brainstorm-server.md +479 -0
  2407. package/vendor/superpowers/docs/superpowers/plans/2026-03-23-codex-app-compatibility.md +564 -0
  2408. package/vendor/superpowers/docs/superpowers/plans/2026-04-06-worktree-rototill.md +879 -0
  2409. package/vendor/superpowers/docs/superpowers/specs/2026-01-22-document-review-system-design.md +136 -0
  2410. package/vendor/superpowers/docs/superpowers/specs/2026-02-19-visual-brainstorming-refactor-design.md +162 -0
  2411. package/vendor/superpowers/docs/superpowers/specs/2026-03-11-zero-dep-brainstorm-server-design.md +118 -0
  2412. package/vendor/superpowers/docs/superpowers/specs/2026-03-23-codex-app-compatibility-design.md +244 -0
  2413. package/vendor/superpowers/docs/superpowers/specs/2026-04-06-worktree-rototill-design.md +342 -0
  2414. package/vendor/superpowers/docs/testing.md +303 -0
  2415. package/vendor/superpowers/docs/windows/polyglot-hooks.md +212 -0
  2416. package/vendor/superpowers/gemini-extension.json +6 -0
  2417. package/vendor/superpowers/hooks/hooks-cursor.json +10 -0
  2418. package/vendor/superpowers/hooks/hooks.json +16 -0
  2419. package/vendor/superpowers/hooks/run-hook.cmd +46 -0
  2420. package/vendor/superpowers/hooks/session-start +57 -0
  2421. package/vendor/superpowers/package.json +6 -0
  2422. package/vendor/superpowers/scripts/bump-version.sh +220 -0
  2423. package/vendor/superpowers/scripts/sync-to-codex-plugin.sh +462 -0
  2424. package/vendor/superpowers/skills/brainstorming/SKILL.md +164 -0
  2425. package/vendor/superpowers/skills/brainstorming/scripts/frame-template.html +214 -0
  2426. package/vendor/superpowers/skills/brainstorming/scripts/helper.js +88 -0
  2427. package/vendor/superpowers/skills/brainstorming/scripts/server.cjs +354 -0
  2428. package/vendor/superpowers/skills/brainstorming/scripts/start-server.sh +148 -0
  2429. package/vendor/superpowers/skills/brainstorming/scripts/stop-server.sh +56 -0
  2430. package/vendor/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  2431. package/vendor/superpowers/skills/brainstorming/visual-companion.md +287 -0
  2432. package/vendor/superpowers/skills/dispatching-parallel-agents/SKILL.md +182 -0
  2433. package/vendor/superpowers/skills/executing-plans/SKILL.md +70 -0
  2434. package/vendor/superpowers/skills/finishing-a-development-branch/SKILL.md +251 -0
  2435. package/vendor/superpowers/skills/receiving-code-review/SKILL.md +213 -0
  2436. package/vendor/superpowers/skills/requesting-code-review/SKILL.md +103 -0
  2437. package/vendor/superpowers/skills/requesting-code-review/code-reviewer.md +168 -0
  2438. package/vendor/superpowers/skills/subagent-driven-development/SKILL.md +279 -0
  2439. package/vendor/superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +25 -0
  2440. package/vendor/superpowers/skills/subagent-driven-development/implementer-prompt.md +113 -0
  2441. package/vendor/superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  2442. package/vendor/superpowers/skills/systematic-debugging/CREATION-LOG.md +119 -0
  2443. package/vendor/superpowers/skills/systematic-debugging/SKILL.md +296 -0
  2444. package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  2445. package/vendor/superpowers/skills/systematic-debugging/condition-based-waiting.md +115 -0
  2446. package/vendor/superpowers/skills/systematic-debugging/defense-in-depth.md +122 -0
  2447. package/vendor/superpowers/skills/systematic-debugging/find-polluter.sh +63 -0
  2448. package/vendor/superpowers/skills/systematic-debugging/root-cause-tracing.md +169 -0
  2449. package/vendor/superpowers/skills/systematic-debugging/test-academic.md +14 -0
  2450. package/vendor/superpowers/skills/systematic-debugging/test-pressure-1.md +58 -0
  2451. package/vendor/superpowers/skills/systematic-debugging/test-pressure-2.md +68 -0
  2452. package/vendor/superpowers/skills/systematic-debugging/test-pressure-3.md +69 -0
  2453. package/vendor/superpowers/skills/test-driven-development/SKILL.md +371 -0
  2454. package/vendor/superpowers/skills/test-driven-development/testing-anti-patterns.md +299 -0
  2455. package/vendor/superpowers/skills/using-git-worktrees/SKILL.md +215 -0
  2456. package/vendor/superpowers/skills/using-superpowers/SKILL.md +117 -0
  2457. package/vendor/superpowers/skills/using-superpowers/references/codex-tools.md +59 -0
  2458. package/vendor/superpowers/skills/using-superpowers/references/copilot-tools.md +42 -0
  2459. package/vendor/superpowers/skills/using-superpowers/references/gemini-tools.md +51 -0
  2460. package/vendor/superpowers/skills/verification-before-completion/SKILL.md +139 -0
  2461. package/vendor/superpowers/skills/writing-plans/SKILL.md +152 -0
  2462. package/vendor/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  2463. package/vendor/superpowers/skills/writing-skills/SKILL.md +655 -0
  2464. package/vendor/superpowers/skills/writing-skills/anthropic-best-practices.md +1150 -0
  2465. package/vendor/superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  2466. package/vendor/superpowers/skills/writing-skills/graphviz-conventions.dot +172 -0
  2467. package/vendor/superpowers/skills/writing-skills/persuasion-principles.md +187 -0
  2468. package/vendor/superpowers/skills/writing-skills/render-graphs.js +168 -0
  2469. package/vendor/superpowers/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  2470. package/vendor/superpowers/tests/brainstorm-server/package-lock.json +36 -0
  2471. package/vendor/superpowers/tests/brainstorm-server/package.json +10 -0
  2472. package/vendor/superpowers/tests/brainstorm-server/server.test.js +427 -0
  2473. package/vendor/superpowers/tests/brainstorm-server/windows-lifecycle.test.sh +351 -0
  2474. package/vendor/superpowers/tests/brainstorm-server/ws-protocol.test.js +392 -0
  2475. package/vendor/superpowers/tests/claude-code/README.md +170 -0
  2476. package/vendor/superpowers/tests/claude-code/analyze-token-usage.py +168 -0
  2477. package/vendor/superpowers/tests/claude-code/run-skill-tests.sh +188 -0
  2478. package/vendor/superpowers/tests/claude-code/test-document-review-system.sh +177 -0
  2479. package/vendor/superpowers/tests/claude-code/test-helpers.sh +202 -0
  2480. package/vendor/superpowers/tests/claude-code/test-requesting-code-review.sh +214 -0
  2481. package/vendor/superpowers/tests/claude-code/test-subagent-driven-development-integration.sh +322 -0
  2482. package/vendor/superpowers/tests/claude-code/test-subagent-driven-development.sh +165 -0
  2483. package/vendor/superpowers/tests/claude-code/test-worktree-native-preference.sh +176 -0
  2484. package/vendor/superpowers/tests/codex-plugin-sync/test-sync-to-codex-plugin.sh +615 -0
  2485. package/vendor/superpowers/tests/explicit-skill-requests/prompts/action-oriented.txt +3 -0
  2486. package/vendor/superpowers/tests/explicit-skill-requests/prompts/after-planning-flow.txt +17 -0
  2487. package/vendor/superpowers/tests/explicit-skill-requests/prompts/claude-suggested-it.txt +11 -0
  2488. package/vendor/superpowers/tests/explicit-skill-requests/prompts/i-know-what-sdd-means.txt +8 -0
  2489. package/vendor/superpowers/tests/explicit-skill-requests/prompts/mid-conversation-execute-plan.txt +3 -0
  2490. package/vendor/superpowers/tests/explicit-skill-requests/prompts/please-use-brainstorming.txt +1 -0
  2491. package/vendor/superpowers/tests/explicit-skill-requests/prompts/skip-formalities.txt +3 -0
  2492. package/vendor/superpowers/tests/explicit-skill-requests/prompts/subagent-driven-development-please.txt +1 -0
  2493. package/vendor/superpowers/tests/explicit-skill-requests/prompts/use-systematic-debugging.txt +1 -0
  2494. package/vendor/superpowers/tests/explicit-skill-requests/run-all.sh +70 -0
  2495. package/vendor/superpowers/tests/explicit-skill-requests/run-claude-describes-sdd.sh +100 -0
  2496. package/vendor/superpowers/tests/explicit-skill-requests/run-extended-multiturn-test.sh +113 -0
  2497. package/vendor/superpowers/tests/explicit-skill-requests/run-haiku-test.sh +144 -0
  2498. package/vendor/superpowers/tests/explicit-skill-requests/run-multiturn-test.sh +143 -0
  2499. package/vendor/superpowers/tests/explicit-skill-requests/run-test.sh +136 -0
  2500. package/vendor/superpowers/tests/opencode/run-tests.sh +165 -0
  2501. package/vendor/superpowers/tests/opencode/setup.sh +88 -0
  2502. package/vendor/superpowers/tests/opencode/test-bootstrap-caching.mjs +124 -0
  2503. package/vendor/superpowers/tests/opencode/test-bootstrap-caching.sh +32 -0
  2504. package/vendor/superpowers/tests/opencode/test-plugin-loading.sh +82 -0
  2505. package/vendor/superpowers/tests/opencode/test-priority.sh +217 -0
  2506. package/vendor/superpowers/tests/opencode/test-tools.sh +95 -0
  2507. package/vendor/superpowers/tests/skill-triggering/prompts/dispatching-parallel-agents.txt +8 -0
  2508. package/vendor/superpowers/tests/skill-triggering/prompts/executing-plans.txt +1 -0
  2509. package/vendor/superpowers/tests/skill-triggering/prompts/requesting-code-review.txt +3 -0
  2510. package/vendor/superpowers/tests/skill-triggering/prompts/systematic-debugging.txt +11 -0
  2511. package/vendor/superpowers/tests/skill-triggering/prompts/test-driven-development.txt +7 -0
  2512. package/vendor/superpowers/tests/skill-triggering/prompts/writing-plans.txt +10 -0
  2513. package/vendor/superpowers/tests/skill-triggering/run-all.sh +60 -0
  2514. package/vendor/superpowers/tests/skill-triggering/run-test.sh +88 -0
  2515. package/vendor/superpowers/tests/subagent-driven-dev/go-fractals/design.md +81 -0
  2516. package/vendor/superpowers/tests/subagent-driven-dev/go-fractals/plan.md +172 -0
  2517. package/vendor/superpowers/tests/subagent-driven-dev/go-fractals/scaffold.sh +45 -0
  2518. package/vendor/superpowers/tests/subagent-driven-dev/run-test.sh +106 -0
  2519. package/vendor/superpowers/tests/subagent-driven-dev/svelte-todo/design.md +70 -0
  2520. package/vendor/superpowers/tests/subagent-driven-dev/svelte-todo/plan.md +222 -0
  2521. package/vendor/superpowers/tests/subagent-driven-dev/svelte-todo/scaffold.sh +46 -0
  2522. package/vitest.config.ts +22 -0
@@ -0,0 +1,1569 @@
1
+ // ACP (Agent Client Protocol) mode: JSON-RPC 2.0 over stdio using
2
+ // @agentclientprotocol/sdk. Lets IDE extensions, Zed, openclaw drive ikie in-process.
3
+
4
+ import { closeSync, openSync, readFileSync, readSync, readdirSync } from "node:fs"
5
+ import { join } from "node:path"
6
+ import { Readable, Writable } from "node:stream"
7
+ import {
8
+ type SessionInfo as AcpSessionInfo,
9
+ type Agent,
10
+ AgentSideConnection,
11
+ type AuthenticateRequest,
12
+ type AuthenticateResponse,
13
+ type CancelNotification,
14
+ type ClientCapabilities,
15
+ type CloseSessionRequest,
16
+ type CloseSessionResponse,
17
+ type ContentBlock,
18
+ type InitializeRequest,
19
+ type InitializeResponse,
20
+ type ListSessionsRequest,
21
+ type ListSessionsResponse,
22
+ type LoadSessionRequest,
23
+ type LoadSessionResponse,
24
+ type NewSessionRequest,
25
+ type NewSessionResponse,
26
+ PROTOCOL_VERSION,
27
+ type PromptRequest,
28
+ type PromptResponse,
29
+ RequestError,
30
+ type SessionConfigOption,
31
+ type SessionModelState,
32
+ type SessionNotification,
33
+ type SetSessionConfigOptionRequest,
34
+ type SetSessionConfigOptionResponse,
35
+ type SetSessionModelRequest,
36
+ type SetSessionModelResponse,
37
+ type ToolCallContent,
38
+ type ToolCallLocation,
39
+ type ToolCallUpdate,
40
+ type ToolKind,
41
+ ndJsonStream,
42
+ } from "@agentclientprotocol/sdk"
43
+ import type { ImageContent } from "@earendil-works/pi-ai"
44
+ import {
45
+ type AgentSession,
46
+ AuthStorage,
47
+ DefaultResourceLoader,
48
+ type ExtensionFactory,
49
+ ModelRegistry,
50
+ type SessionInfo as PiSessionInfo,
51
+ type SessionHeader,
52
+ SessionManager,
53
+ SettingsManager,
54
+ createAgentSession,
55
+ initTheme,
56
+ } from "@earendil-works/pi-coding-agent"
57
+ import type { AgentSessionEvent, ExtensionUIContext } from "@earendil-works/pi-coding-agent"
58
+ import { isHideThinkingEnabled } from "../../extensions/hide-thinking.js"
59
+ import { loadConfig } from "../../extensions/permissions/config.js"
60
+ import { PERMISSIONS_ENV_KEY } from "../../extensions/permissions/constants.js"
61
+ import {
62
+ registerSessionPermissionFlagController,
63
+ unregisterSessionPermissionFlagController,
64
+ } from "../../extensions/permissions/mode-controller-registry.js"
65
+ import {
66
+ clearPermissionMode,
67
+ createSessionPermissionFlagController,
68
+ getPermissionMode,
69
+ setPermissionMode,
70
+ } from "../../extensions/permissions/mode-controller.js"
71
+ import { resolveMode } from "../../extensions/permissions/mode.js"
72
+ import {
73
+ ALL_PERMISSION_MODES,
74
+ type PermissionMode,
75
+ type SessionPermissionFlagController,
76
+ } from "../../extensions/permissions/types.js"
77
+ import { createAcpPermissionPrompter } from "./acp-prompter.js"
78
+ import { createAcpUIContext } from "./acp-ui-context.js"
79
+ import { ADVERTISED_CAPABILITIES, CAPABILITIES_KEY } from "./capabilities.js"
80
+ import { AVAILABLE_COMMANDS } from "./commands.js"
81
+ import { registerAcpPrompter, unregisterAcpPrompter } from "./permission-prompter-registry.js"
82
+
83
+ /**
84
+ * Produces an unbound AgentSession for a newSession request. The ACP agent owns
85
+ * model verification, extension binding, ACP prompter registration, and final
86
+ * lifecycle registration. Exposed so tests can inject fakes; production uses
87
+ * {@link defaultSessionFactory}.
88
+ */
89
+ export type AcpSessionFactory = (params: NewSessionRequest) => Promise<AgentSession>
90
+
91
+ /**
92
+ * Enumerates persisted sessions for a listSessions request. Mirrors pi's
93
+ * SessionManager.list/listAll seam so tests can stub disk access.
94
+ */
95
+ export type AcpSessionLister = (params: ListSessionsRequest) => Promise<PiSessionInfo[]>
96
+
97
+ /**
98
+ * Opens a persisted, unbound session for a loadSession request. The returned
99
+ * AgentSession is seeded with the on-disk transcript; the ACP agent owns model
100
+ * verification, extension binding, replay, and response shaping. Exposed so
101
+ * tests can stub disk access.
102
+ */
103
+ export type AcpSessionLoader = (params: LoadSessionRequest) => Promise<AgentSession>
104
+
105
+ export interface RunAcpOptions {
106
+ extensionFactories: ExtensionFactory[]
107
+ agentDir: string
108
+ /** Override for tests. Defaults to the pi-coding-agent-backed factory. */
109
+ sessionFactory?: AcpSessionFactory
110
+ /** Override for tests. Defaults to {@link defaultSessionLister}. */
111
+ sessionLister?: AcpSessionLister
112
+ /** Override for tests. Defaults to {@link defaultSessionLoader}. */
113
+ sessionLoader?: AcpSessionLoader
114
+ }
115
+
116
+ type TurnContext = {
117
+ cancelled: boolean
118
+ hiddenToolCallIds: Set<string>
119
+ resolve: (res: PromptResponse) => void
120
+ reject: (err: unknown) => void
121
+ }
122
+
123
+ type SessionRecord = {
124
+ session: AgentSession
125
+ unsubscribe: () => void
126
+ turn?: TurnContext
127
+ /**
128
+ * Session-wide monotonic counter for ACP messageIds. Every distinct
129
+ * content block (text or thinking) across every assistant message in
130
+ * the session gets a fresh value — so two turns whose first text block
131
+ * both sit at contentIndex=0 still get distinct ids, satisfying the
132
+ * ACP contract "a change in messageId indicates a new message has
133
+ * started" without depending on contentIndex (which resets per turn).
134
+ * Seeded from the branch on loadSession so replay emits matching ids.
135
+ */
136
+ nextBlockId: number
137
+ /**
138
+ * Per-assistant-message map from pi-mono's contentIndex → assigned
139
+ * messageId. Cleared on each agent_start/message_start so a new assistant message
140
+ * starts a fresh contentIndex namespace without colliding with the
141
+ * previous message's assignments.
142
+ */
143
+ contentIndexToBlockId: Map<number, string>
144
+ }
145
+
146
+ export class IkieAcpAgent implements Agent {
147
+ private sessions = new Map<string, SessionRecord>()
148
+ private readonly sessionFactory: AcpSessionFactory
149
+ private readonly agentDir: string
150
+ private readonly sessionLister: AcpSessionLister
151
+ private readonly sessionLoader: AcpSessionLoader
152
+ private readonly permissionsEnvFlag = process.env[PERMISSIONS_ENV_KEY]
153
+ private clientCapabilities: ClientCapabilities | undefined
154
+ // Track non-text prompt block types we've already warned about so a
155
+ // misbehaving client that sends 1000 image blocks doesn't flood stderr.
156
+ private warnedBlockTypes = new Set<string>()
157
+ // In-flight loadSession calls, keyed by session id. Without this, two
158
+ // concurrent loads of the same id both pass the `sessions.has()` guard, open
159
+ // the JSONL twice, and the later registration overwrites (and leaks) the
160
+ // earlier session record.
161
+ private loadingSessions = new Map<string, Promise<LoadSessionResponse>>()
162
+ private shutdownPromise: Promise<void> | undefined
163
+
164
+ /**
165
+ * Resolve the initial permission mode for a session based on:
166
+ * 1. Environment variable IKIE_PERMISSIONS
167
+ * 2. Permissions config file's defaultMode (loaded from cwd)
168
+ *
169
+ * This ensures ACP sessions respect the same precedence as CLI sessions:
170
+ * env < config < flags (flags not applicable in ACP)
171
+ */
172
+ private resolveInitialMode(cwd: string): PermissionMode {
173
+ const { loaded } = loadConfig({ cwd })
174
+ return resolveMode({
175
+ flag: undefined,
176
+ env: this.permissionsEnvFlag,
177
+ config: loaded.config.defaultMode,
178
+ }).mode
179
+ }
180
+
181
+ constructor(
182
+ private readonly conn: AgentSideConnection,
183
+ options: RunAcpOptions,
184
+ ) {
185
+ this.sessionFactory = options.sessionFactory ?? defaultSessionFactory(options)
186
+ this.agentDir = options.agentDir
187
+ this.sessionLister = options.sessionLister ?? defaultSessionLister(options)
188
+ this.sessionLoader = options.sessionLoader ?? defaultSessionLoader(options)
189
+ }
190
+
191
+ async initialize(request: InitializeRequest): Promise<InitializeResponse> {
192
+ this.clientCapabilities = request.clientCapabilities
193
+
194
+ const authStorage = AuthStorage.create(join(this.agentDir, "auth.json"))
195
+ const modelRegistry = ModelRegistry.create(authStorage, join(this.agentDir, "models.json"))
196
+ const supportsImages = modelRegistry.getAvailable().some((m) => m.input?.includes("image"))
197
+ return {
198
+ protocolVersion: PROTOCOL_VERSION,
199
+ agentCapabilities: {
200
+ loadSession: true,
201
+ // `list: {}` advertises support for session/list per spec
202
+ // (SessionListCapabilities is `{ _meta? }` — empty object means
203
+ // "supported"). loadSession remains the top-level flag because
204
+ // the spec hasn't unified it under sessionCapabilities yet.
205
+ sessionCapabilities: { list: {}, close: {} },
206
+ promptCapabilities: { image: supportsImages, audio: false, embeddedContext: false },
207
+ // Extended capabilities
208
+ _meta: { [CAPABILITIES_KEY]: ADVERTISED_CAPABILITIES },
209
+ },
210
+ authMethods: [],
211
+ }
212
+ }
213
+
214
+ async listSessions(params: ListSessionsRequest): Promise<ListSessionsResponse> {
215
+ // Cursor pagination is out of scope for v1: pi reads only JSONL headers,
216
+ // so even four-digit session counts comfortably meet the 500ms NFR
217
+ // (revisit only if real installs hit slowness). `additionalDirectories`
218
+ // (@experimental) is honored when non-empty by the default lister.
219
+ const piSessions = await this.sessionLister(params)
220
+ // Dedupe by session id: the default lister merges results from multiple
221
+ // roots (cwd + additionalDirectories), and the same session can surface
222
+ // twice when a client passes its cwd as one of the additional roots.
223
+ // Keep first occurrence so cwd-listed entries win.
224
+ const seen = new Set<string>()
225
+ const sessions: ReturnType<typeof toAcpSessionInfo>[] = []
226
+ for (const s of piSessions) {
227
+ if (seen.has(s.id)) continue
228
+ seen.add(s.id)
229
+ sessions.push(toAcpSessionInfo(s))
230
+ }
231
+ // Sort newest-first by updatedAt so Zed's picker surfaces recent threads
232
+ // at the top without client-side sorting.
233
+ sessions.sort((a, b) => (b.updatedAt ?? "").localeCompare(a.updatedAt ?? ""))
234
+ // Explicit `nextCursor: null` signals end-of-pagination per the v1 spec
235
+ // so clients don't infer it from an omitted field.
236
+ return { sessions, nextCursor: null }
237
+ }
238
+
239
+ async authenticate(_: AuthenticateRequest): Promise<AuthenticateResponse> {
240
+ return {}
241
+ }
242
+
243
+ async newSession(params: NewSessionRequest): Promise<NewSessionResponse> {
244
+ // mcpServers isn't plumbed: ikie loads MCP servers from its own config via
245
+ // mcpAdapterExtension, so a caller-supplied list would be silently ignored.
246
+ // Surface that as invalidParams instead of accepting the request and
247
+ // pretending those servers are live.
248
+ if (Array.isArray(params.mcpServers) && params.mcpServers.length > 0) {
249
+ throw RequestError.invalidParams(undefined, "mcpServers is not supported; configure MCP servers via ikie config")
250
+ }
251
+ const cwd = params.cwd ?? process.cwd()
252
+ const initialMode = this.resolveInitialMode(cwd)
253
+ const session = await this.sessionFactory(params)
254
+ // Once the factory hands us a live session we own its lifecycle. If model
255
+ // verification, extension binding, subscribe, or the registering Map.set
256
+ // throws before we hand it back to the caller, nothing else will ever
257
+ // dispose it — so make ownership transfer atomic.
258
+ try {
259
+ assertSessionHasModel(session)
260
+
261
+ const sessionId = session.sessionId
262
+ const uiContext = this.createUiContext(session)
263
+ const permissionFlagController = registerPermissionFlagController(sessionId, initialMode, (params) =>
264
+ this.send(params),
265
+ )
266
+ registerAcpPrompter(sessionId, createAcpPermissionPrompter(this.conn, sessionId, uiContext, buildToolCallUpdate))
267
+ await this.bindAcpExtensions(session, uiContext)
268
+
269
+ const unsubscribe = session.subscribe((event) => this.onSessionEvent(sessionId, event))
270
+ this.sessions.set(sessionId, {
271
+ session,
272
+ unsubscribe,
273
+ nextBlockId: 0,
274
+ contentIndexToBlockId: new Map(),
275
+ })
276
+
277
+ this.sendAvailableCommandsUpdate(sessionId)
278
+
279
+ return {
280
+ sessionId,
281
+ models: buildSessionModelState(session),
282
+ configOptions: [buildPermissionsConfigOption(permissionFlagController.getMode()?.mode)],
283
+ }
284
+ } catch (err) {
285
+ unregisterAcpPrompter(session.sessionId)
286
+ unregisterSessionPermissionFlagController(session.sessionId)
287
+ clearPermissionMode(session.sessionId)
288
+
289
+ session.dispose()
290
+ throw err
291
+ }
292
+ }
293
+
294
+ private createUiContext(session: AgentSession): ExtensionUIContext {
295
+ // Build the ExtensionUIContext that pi's runner routes `ctx.ui.*` calls
296
+ // through. Bound to a single session for its lifetime — the connection,
297
+ // capabilities, and `send` callback are all session-scoped state.
298
+ return createAcpUIContext(this.conn, session.sessionId, this.clientCapabilities, (params) => this.send(params))
299
+ }
300
+
301
+ private async bindAcpExtensions(session: AgentSession, uiContext: ExtensionUIContext): Promise<void> {
302
+ await session.bindExtensions({
303
+ uiContext,
304
+ // Mode is "rpc" so extensions can branch on `ctx.mode === "rpc"` to detect
305
+ // this transport (added in pi-coding-agent 0.78.1). `ctx.hasUI` is derived
306
+ // from the uiContext by the runner, so extensions that only check the
307
+ // legacy boolean keep working too.
308
+ mode: "rpc",
309
+ onError: (err) => {
310
+ process.stderr.write(`acp ext error [${err.extensionPath}] ${err.event}: ${err.error}\n`)
311
+ },
312
+ })
313
+ }
314
+
315
+ async unstable_setSessionModel(params: SetSessionModelRequest): Promise<SetSessionModelResponse> {
316
+ const entry = this.sessions.get(params.sessionId)
317
+ if (!entry) {
318
+ throw RequestError.invalidParams(undefined, `unknown sessionId ${params.sessionId}`)
319
+ }
320
+ if (entry.turn) {
321
+ throw RequestError.invalidRequest(undefined, "a prompt is already in progress for this session")
322
+ }
323
+ const { session } = entry
324
+ const availableModels = session.modelRegistry.getAvailable()
325
+ const selectedModel = availableModels.find((m) => getAcpModelId(m) === params.modelId)
326
+ if (!selectedModel) {
327
+ throw RequestError.invalidParams(undefined, `Unknown or unavailable model: ${params.modelId}`)
328
+ }
329
+ try {
330
+ await session.setModel(selectedModel)
331
+ } catch (err) {
332
+ if (err instanceof RequestError) {
333
+ throw err
334
+ }
335
+ throw RequestError.invalidParams(
336
+ undefined,
337
+ `Failed to switch model: ${err instanceof Error ? err.message : String(err)}`,
338
+ )
339
+ }
340
+ return {}
341
+ }
342
+
343
+ async setSessionConfigOption(params: SetSessionConfigOptionRequest): Promise<SetSessionConfigOptionResponse> {
344
+ const entry = this.sessions.get(params.sessionId)
345
+ if (!entry) {
346
+ throw RequestError.invalidParams(undefined, `unknown sessionId ${params.sessionId}`)
347
+ }
348
+
349
+ switch (params.configId) {
350
+ case "permissions-mode": {
351
+ const value = params.value as PermissionMode
352
+ if (!ALL_PERMISSION_MODES.includes(value)) {
353
+ throw RequestError.invalidParams(undefined, `invalid mode ${value}`)
354
+ }
355
+ setPermissionMode(params.sessionId, value, "user")
356
+ return {
357
+ configOptions: [buildPermissionsConfigOption(value)],
358
+ }
359
+ }
360
+ default:
361
+ throw RequestError.invalidParams(undefined, `unknown config option ${params.configId}`)
362
+ }
363
+ }
364
+
365
+ async loadSession(params: LoadSessionRequest): Promise<LoadSessionResponse> {
366
+ // Same posture as newSession: mcpServers isn't plumbed, surface as
367
+ // invalidParams instead of silently dropping caller intent.
368
+ if (Array.isArray(params.mcpServers) && params.mcpServers.length > 0) {
369
+ throw RequestError.invalidParams(undefined, "mcpServers is not supported; configure MCP servers via ikie config")
370
+ }
371
+ const sessionId = params.sessionId
372
+ const existing = this.sessions.get(sessionId)
373
+ if (existing) {
374
+ if (existing.turn) {
375
+ throw RequestError.invalidRequest(undefined, `session ${sessionId} has a turn in progress; cancel it first`)
376
+ }
377
+ this.replayTranscript(existing.session)
378
+ this.sendAvailableCommandsUpdate(sessionId)
379
+
380
+ return {
381
+ models: this.modelStateForSession(existing.session),
382
+ configOptions: [
383
+ buildPermissionsConfigOption(getPermissionMode(sessionId)?.mode ?? this.resolveInitialMode(params.cwd)),
384
+ ],
385
+ }
386
+ }
387
+ const loading = this.loadingSessions.get(sessionId)
388
+ if (loading) return loading
389
+
390
+ const loadingPromise = this.loadSessionFresh(params)
391
+ this.loadingSessions.set(sessionId, loadingPromise)
392
+ try {
393
+ return await loadingPromise
394
+ } finally {
395
+ if (this.loadingSessions.get(sessionId) === loadingPromise) {
396
+ this.loadingSessions.delete(sessionId)
397
+ }
398
+ }
399
+ }
400
+
401
+ private async loadSessionFresh(params: LoadSessionRequest): Promise<LoadSessionResponse> {
402
+ const cwd = params.cwd
403
+ const initialMode = this.resolveInitialMode(cwd)
404
+ let session: AgentSession
405
+ session = await this.sessionLoader(params)
406
+ // Atomic ownership transfer mirrors newSession but covers the full
407
+ // register → replay → respond path: a throw at any point after the
408
+ // loader hands back a live session must unwind registration AND dispose,
409
+ // otherwise the session sits in `sessions` while loadSession rejects —
410
+ // Zed thinks load failed but the agent thinks the id is live, and the
411
+ // next loadSession for the same id wrongly returns invalidRequest.
412
+ const sid = session.sessionId
413
+ // Defensive: pi reads the sessionId from the JSONL header, not the
414
+ // filename, so a corrupted / hand-edited session whose header id
415
+ // disagrees with the requested id would land under the wrong key in
416
+ // `sessions`. Subsequent session/prompt for params.sessionId would then
417
+ // fail with "unknown sessionId" while the file is still held open.
418
+ // Reject up front and dispose so we don't quietly diverge.
419
+ if (sid !== params.sessionId) {
420
+ session.dispose()
421
+ throw RequestError.invalidParams(
422
+ undefined,
423
+ `session header id ${sid} does not match requested sessionId ${params.sessionId}`,
424
+ )
425
+ }
426
+ try {
427
+ assertSessionHasModel(session)
428
+
429
+ const uiContext = this.createUiContext(session)
430
+ const permissionFlagController = registerPermissionFlagController(sid, initialMode, (params) => this.send(params))
431
+ registerAcpPrompter(sid, createAcpPermissionPrompter(this.conn, sid, uiContext, buildToolCallUpdate))
432
+ await this.bindAcpExtensions(session, uiContext)
433
+
434
+ const unsubscribe = session.subscribe((event) => this.onSessionEvent(sid, event))
435
+ const record: SessionRecord = {
436
+ session,
437
+ unsubscribe,
438
+ nextBlockId: 0,
439
+ contentIndexToBlockId: new Map(),
440
+ }
441
+ this.sessions.set(sid, record)
442
+
443
+ // Seed the block counter from the persisted branch so replay emits the
444
+ // same messageIds the live turn would have — and so any new block the
445
+ // user creates after the load gets a fresh, non-colliding id.
446
+ this.seedBlockCounterFromBranch(session, record)
447
+
448
+ // Replay BEFORE the response resolves so client sees a coherent transcript
449
+ // when the loadSession promise settles. No turn context is created, so a
450
+ // concurrent session/cancel during replay is a no-op — a turn must not
451
+ // be considered active during replay.
452
+ this.replayTranscript(session)
453
+ this.sendAvailableCommandsUpdate(sid)
454
+
455
+ return {
456
+ models: this.modelStateForSession(session),
457
+ configOptions: [buildPermissionsConfigOption(permissionFlagController.getMode()?.mode)],
458
+ }
459
+ } catch (err) {
460
+ unregisterAcpPrompter(sid)
461
+ unregisterSessionPermissionFlagController(sid)
462
+ clearPermissionMode(sid)
463
+
464
+ const existing = this.sessions.get(sid)
465
+ if (existing) {
466
+ this.sessions.delete(sid)
467
+ existing.unsubscribe()
468
+ }
469
+ session.dispose()
470
+ throw err
471
+ }
472
+ }
473
+
474
+ async unstable_closeSession(params: CloseSessionRequest): Promise<CloseSessionResponse> {
475
+ await this.closeSessionRecord(params.sessionId)
476
+ return {}
477
+ }
478
+
479
+ async prompt(params: PromptRequest): Promise<PromptResponse> {
480
+ const entry = this.sessions.get(params.sessionId)
481
+ if (!entry) {
482
+ throw RequestError.invalidParams(undefined, `unknown sessionId ${params.sessionId}`)
483
+ }
484
+ if (entry.turn) {
485
+ throw RequestError.invalidRequest(undefined, "a prompt is already in progress for this session")
486
+ }
487
+ // Image support is per-model; check if active model supports vision input.
488
+ const supportsImages = entry.session.model?.input?.includes("image") ?? false
489
+ // Warn about unsupported block types (audio, embeddedContext) once per type.
490
+ // Also warn when dropping image blocks for non-vision models.
491
+ for (const b of params.prompt) {
492
+ if (b.type !== "text" && (b.type !== "image" || !supportsImages) && !this.warnedBlockTypes.has(b.type)) {
493
+ this.warnedBlockTypes.add(b.type)
494
+ const reason = b.type === "image" ? "active model has no vision input" : "unsupported block type"
495
+ process.stderr.write(`acp prompt: dropping ${b.type} block (${reason})\n`)
496
+ }
497
+ }
498
+ const text = params.prompt
499
+ .map((b: ContentBlock) => (b.type === "text" ? b.text : ""))
500
+ .join("")
501
+ .trim()
502
+ // Extract image blocks from the prompt only if model supports vision.
503
+ const images: ImageContent[] = supportsImages
504
+ ? params.prompt
505
+ .filter((b: ContentBlock): b is ContentBlock & { type: "image" } => b.type === "image")
506
+ .map((b) => ({
507
+ type: "image" as const,
508
+ data: b.data,
509
+ mimeType: b.mimeType,
510
+ }))
511
+ : []
512
+ if (!text && images.length === 0) {
513
+ return { stopReason: "end_turn" }
514
+ }
515
+ let turnResolve!: (r: PromptResponse) => void
516
+ let turnReject!: (e: unknown) => void
517
+ const result = new Promise<PromptResponse>((resolve, reject) => {
518
+ turnResolve = resolve
519
+ turnReject = reject
520
+ })
521
+ entry.turn = {
522
+ cancelled: false,
523
+ hiddenToolCallIds: new Set(),
524
+ resolve: turnResolve,
525
+ reject: turnReject,
526
+ }
527
+ // Kick off session.prompt but don't await inside the async function body —
528
+ // shutdown() needs to be able to reject `result` and have the caller's await
529
+ // on prompt() settle immediately, which can't happen while this body is
530
+ // paused on `await session.prompt()`. Instead, attach handlers that drive
531
+ // finalizeTurn/failTurn and return `result` directly; settling `result`
532
+ // propagates to the caller regardless of whether session.prompt ever resolves.
533
+ entry.session.prompt(text, { source: "rpc", images }).then(
534
+ () => {
535
+ // session.prompt() is the source of truth for "turn is done". We
536
+ // deliberately do NOT finalize on agent_end: pi-mono's _runAgentPrompt
537
+ // (agent-session.js) chains multiple agent.prompt / agent.continue
538
+ // calls — each emits its own agent_start + agent_end — when retries,
539
+ // queued follow-up messages, or compaction are pending. If we finalized
540
+ // on the first agent_end, end_turn would be sent mid-stream and the
541
+ // client's subsequent prompt would hit pi-mono's
542
+ // "Agent is already processing" throw because session.prompt is still
543
+ // running the chained continues. session.prompt() resolves only after
544
+ // ALL chained calls complete.
545
+ if (entry.turn) {
546
+ this.finalizeTurn(entry, entry.turn.cancelled ? "cancelled" : "end_turn")
547
+ }
548
+ },
549
+ (err) => {
550
+ // If cancel() arrived mid-turn, session.prompt() may reject with an abort
551
+ // error instead of resolving and letting agent_end drive finalization. The
552
+ // spec still says the client-initiated cancel should surface as
553
+ // stopReason: "cancelled", not a JSON-RPC error — so swallow the abort
554
+ // and resolve with the expected stop reason. Any other error propagates.
555
+ // shutdown() may have already failed the turn; failTurn is a no-op in that case.
556
+ if (!entry.turn) return
557
+ if (entry.turn.cancelled) {
558
+ this.finalizeTurn(entry, "cancelled")
559
+ } else {
560
+ this.failTurn(entry, err)
561
+ }
562
+ },
563
+ )
564
+ return result
565
+ }
566
+
567
+ async cancel(params: CancelNotification): Promise<void> {
568
+ const entry = this.sessions.get(params.sessionId)
569
+ if (!entry) return
570
+ if (entry.turn) entry.turn.cancelled = true
571
+ await entry.session.abort()
572
+ }
573
+
574
+ async shutdown(cause: "signal" | "disconnect" = "disconnect"): Promise<void> {
575
+ if (this.shutdownPromise) return this.shutdownPromise
576
+ this.shutdownPromise = this.doShutdown(cause)
577
+ return this.shutdownPromise
578
+ }
579
+
580
+ private async doShutdown(cause: "signal" | "disconnect"): Promise<void> {
581
+ // Drain any in-flight turn promises before tearing down the session.
582
+ // On the signal path we process.exit immediately so this is mostly
583
+ // cosmetic, but runAcpMode's finally also calls shutdown when conn.closed
584
+ // resolves — in that window a pending PromptResponse would otherwise hang
585
+ // until process exit. Reject symmetrically so the caller's await settles.
586
+ for (const entry of this.sessions.values()) {
587
+ if (entry.turn) this.failTurn(entry, new Error("acp agent shutting down"))
588
+ unregisterAcpPrompter(entry.session.sessionId)
589
+ unregisterSessionPermissionFlagController(entry.session.sessionId)
590
+ clearPermissionMode(entry.session.sessionId)
591
+ await this.disposeSessionRecord(entry)
592
+ }
593
+ this.sessions.clear()
594
+ }
595
+
596
+ private async closeSessionRecord(sessionId: string): Promise<void> {
597
+ const entry = this.sessions.get(sessionId)
598
+ if (!entry) return
599
+ this.sessions.delete(sessionId)
600
+ unregisterAcpPrompter(sessionId)
601
+ unregisterSessionPermissionFlagController(sessionId)
602
+ clearPermissionMode(sessionId)
603
+ entry.unsubscribe()
604
+ if (entry.turn) {
605
+ entry.turn.cancelled = true
606
+ try {
607
+ await entry.session.abort()
608
+ } catch {
609
+ // Closing is best-effort cleanup; still resolve the pending prompt
610
+ // as cancelled and release the session resources below.
611
+ }
612
+ this.finalizeTurn(entry, "cancelled")
613
+ }
614
+ await this.disposeSessionRecord(entry, { alreadyUnsubscribed: true })
615
+ }
616
+
617
+ private async disposeSessionRecord(
618
+ entry: SessionRecord,
619
+ opts: { alreadyUnsubscribed?: boolean } = {},
620
+ ): Promise<void> {
621
+ if (!opts.alreadyUnsubscribed) entry.unsubscribe()
622
+ // Emit session_shutdown to extensions and await all handlers before
623
+ // calling dispose(). dispose() is synchronous and returns void, so async
624
+ // extension handlers (e.g. telemetry drain, shutdown marker) would be
625
+ // fire-and-forgotten if we relied on dispose() alone.
626
+ await entry.session.extensionRunner?.emit({ type: "session_shutdown", reason: "quit" })
627
+ entry.session.dispose()
628
+ }
629
+
630
+ private onSessionEvent(sessionId: string, event: AgentSessionEvent): void {
631
+ const entry = this.sessions.get(sessionId)
632
+ if (!entry) return
633
+ const turn = entry.turn
634
+ switch (event.type) {
635
+ case "agent_start":
636
+ case "message_start": {
637
+ // New assistant message → contentIndex restarts from 0. Wipe the
638
+ // per-message map so a fresh block at index 0 gets a fresh id
639
+ // instead of inheriting the previous message's assignment.
640
+ entry.contentIndexToBlockId.clear()
641
+ return
642
+ }
643
+ case "message_update": {
644
+ if (!turn) return
645
+ const ame = event.assistantMessageEvent
646
+ if ((ame.type === "text_delta" || ame.type === "thinking_delta") && ame.delta) {
647
+ let messageId = entry.contentIndexToBlockId.get(ame.contentIndex)
648
+ if (messageId === undefined) {
649
+ messageId = `ikie_msg_${entry.nextBlockId++}`
650
+ entry.contentIndexToBlockId.set(ame.contentIndex, messageId)
651
+ }
652
+ this.send({
653
+ sessionId,
654
+ update: {
655
+ sessionUpdate: ame.type === "text_delta" ? "agent_message_chunk" : "agent_thought_chunk",
656
+ content: { type: "text", text: ame.delta },
657
+ messageId,
658
+ },
659
+ })
660
+ }
661
+ return
662
+ }
663
+ case "tool_execution_start": {
664
+ // Symmetry with the other turn-lifecycle branches: if the turn was
665
+ // already finalized (e.g., shutdown cleared it), don't emit stray
666
+ // tool_call notifications the client would have to reconcile against
667
+ // a turn it already considers over.
668
+ if (!turn) return
669
+ if (isHiddenToolCall(event.toolName, event.args)) {
670
+ turn.hiddenToolCallIds.add(event.toolCallId)
671
+ return
672
+ }
673
+ const { title, kind, locations } = describeToolCall(event.toolName, event.args)
674
+ this.send({
675
+ sessionId,
676
+ update: {
677
+ sessionUpdate: "tool_call",
678
+ toolCallId: event.toolCallId,
679
+ title,
680
+ kind,
681
+ status: "in_progress",
682
+ locations,
683
+ rawInput: event.args,
684
+ },
685
+ })
686
+ return
687
+ }
688
+ case "tool_execution_update": {
689
+ if (!turn) return
690
+ if (turn.hiddenToolCallIds.has(event.toolCallId) || isHiddenToolCall(event.toolName, event.args)) {
691
+ turn.hiddenToolCallIds.add(event.toolCallId)
692
+ return
693
+ }
694
+ const partial = toolResultContent(event.partialResult)
695
+ if (partial.length === 0) return
696
+ this.send({
697
+ sessionId,
698
+ update: {
699
+ sessionUpdate: "tool_call_update",
700
+ toolCallId: event.toolCallId,
701
+ status: "in_progress",
702
+ content: partial,
703
+ },
704
+ })
705
+ return
706
+ }
707
+ case "tool_execution_end": {
708
+ if (!turn) return
709
+ if (turn.hiddenToolCallIds.has(event.toolCallId)) {
710
+ turn.hiddenToolCallIds.delete(event.toolCallId)
711
+ return
712
+ }
713
+ this.send({
714
+ sessionId,
715
+ update: {
716
+ sessionUpdate: "tool_call_update",
717
+ toolCallId: event.toolCallId,
718
+ status: event.isError ? "failed" : "completed",
719
+ content: toolResultContent(event.result),
720
+ rawOutput: event.result,
721
+ },
722
+ })
723
+ return
724
+ }
725
+ default:
726
+ return
727
+ }
728
+ }
729
+
730
+ // Replay: walk the persisted transcript on the leaf path and emit
731
+ // session/update notifications per content block — text, thinking, tool
732
+ // calls. Tool results are paired with their originating toolCall by id so
733
+ // the historical tool render shape (tool_call + terminal tool_call_update)
734
+ // matches what live turns produce. Compaction / branch_summary /
735
+ // model_change / custom entries emit nothing — using getBranch() (raw
736
+ // entries) instead of buildSessionContext() avoids surfacing compaction
737
+ // summaries as synthetic user messages.
738
+ //
739
+ // Notifications go straight from this method to conn.sessionUpdate; we do
740
+ // NOT replay through the AgentSession event emitter, so extensions like
741
+ // telemetryExtension don't double-count historical turns.
742
+ private replayTranscript(session: AgentSession): void {
743
+ const sessionId = session.sessionId
744
+ const entries = session.sessionManager.getBranch()
745
+ const toolResults = collectToolResults(entries)
746
+ // Evaluate hide-thinking once per replay — readHideThinkingSetting()
747
+ // hits disk synchronously, so a 200-turn session would otherwise do
748
+ // hundreds of blocking reads.
749
+ const emitThinking = shouldEmitThinking("")
750
+ for (const entry of entries) {
751
+ if (!entry || typeof entry !== "object") continue
752
+ if (entry.type !== "message") continue
753
+ const msg = entry.message
754
+ if (msg.role === "user") {
755
+ const text = userMessageText(msg.content)
756
+ if (!text) continue
757
+ this.send({
758
+ sessionId,
759
+ update: {
760
+ sessionUpdate: "user_message_chunk",
761
+ content: { type: "text", text },
762
+ },
763
+ })
764
+ } else if (msg.role === "assistant") {
765
+ this.replayAssistantBlocks(sessionId, msg.content, toolResults, emitThinking, this.sessions.get(sessionId))
766
+ }
767
+ // toolResult: handled inline alongside its originating toolCall above.
768
+ }
769
+ }
770
+
771
+ /**
772
+ * Walk the persisted branch and count how many ACP content chunks the
773
+ * replay would emit (text segments + dimmed text parts + non-redacted
774
+ * thinking blocks). Sets `record.nextBlockId` so that:
775
+ * - replayTranscript emits the same messageIds a live turn would have
776
+ * for the historical blocks, and
777
+ * - any new block the user creates after the load gets a fresh, non-
778
+ * colliding id.
779
+ *
780
+ * Mirrors replayAssistantBlocks' emission logic exactly — coalescing
781
+ * contiguous text blocks into one chunk, and gating thinking emission on
782
+ * the hideThinkingBlock setting. If these drift, messageIds replayed
783
+ * after a load won't line up with what the client saw during the live
784
+ * turn.
785
+ */
786
+ private seedBlockCounterFromBranch(session: AgentSession, record: SessionRecord): void {
787
+ const entries = session.sessionManager.getBranch()
788
+ const emitThinking = shouldEmitThinking("")
789
+
790
+ let count = 0
791
+ for (const entry of entries) {
792
+ if (!entry || entry.type !== "message" || entry.message.role !== "assistant") continue
793
+
794
+ let inTextSegment = false
795
+ const countTextSegment = () => {
796
+ if (!inTextSegment) {
797
+ count++
798
+ inTextSegment = true
799
+ }
800
+ }
801
+
802
+ const content = entry.message.content
803
+ for (const block of content) {
804
+ if (block.type === "text") {
805
+ if (!block.text) continue
806
+ countTextSegment()
807
+ if (emitThinking) {
808
+ for (const part of replayTextParts(block.text)) {
809
+ if (part.kind === "thinking") count++
810
+ }
811
+ }
812
+ } else if (block.type === "thinking") {
813
+ inTextSegment = false
814
+ if (!emitThinking || block.redacted || !block.thinking) continue
815
+ count++
816
+ } else {
817
+ // toolCall / unknown: replay flushes the text buffer before
818
+ // emitting the structural block, which terminates any open
819
+ // text segment.
820
+ inTextSegment = false
821
+ }
822
+ }
823
+ }
824
+ record.nextBlockId = count + 1
825
+ }
826
+
827
+ private replayAssistantBlocks(
828
+ sessionId: string,
829
+ content: unknown,
830
+ toolResults: Map<string, ReplayToolResult>,
831
+ emitThinking: boolean,
832
+ record: SessionRecord | undefined,
833
+ ): void {
834
+ if (!Array.isArray(content)) return
835
+ // Allocates a fresh session-unique messageId for every emitted chunk
836
+ // and leaves it off the wire if the SessionRecord isn't loaded (e.g.
837
+ // the unit-test harness wiring a partial replay path).
838
+ const nextMessageId = () => {
839
+ if (!record) return undefined
840
+ return `ikie_msg_${record.nextBlockId++}`
841
+ }
842
+ // Buffer contiguous text blocks so a single assistant message renders as
843
+ // one agent_message_chunk per natural text segment — emit the full
844
+ // message as a single chunk, no per-token chunking. When a thinking or
845
+ // toolCall block interrupts the run, flush the buffered text first so
846
+ // ordering relative to those structural blocks is preserved.
847
+ let textBuffer = ""
848
+ const flushText = () => {
849
+ if (textBuffer.length === 0) return
850
+ const messageId = nextMessageId()
851
+ this.send({
852
+ sessionId,
853
+ update: {
854
+ sessionUpdate: "agent_message_chunk",
855
+ content: { type: "text", text: textBuffer },
856
+ ...(messageId !== undefined ? { messageId } : {}),
857
+ },
858
+ })
859
+ textBuffer = ""
860
+ }
861
+ for (const block of content) {
862
+ if (!block || typeof block !== "object") continue
863
+ const b = block as { type?: string }
864
+ if (b.type === "text") {
865
+ const text = (b as { text?: unknown }).text
866
+ if (typeof text !== "string" || text.length === 0) continue
867
+ for (const part of replayTextParts(text)) {
868
+ if (part.kind === "text") {
869
+ textBuffer += part.text
870
+ } else if (emitThinking) {
871
+ flushText()
872
+ const messageId = nextMessageId()
873
+ this.send({
874
+ sessionId,
875
+ update: {
876
+ sessionUpdate: "agent_thought_chunk",
877
+ content: { type: "text", text: part.text },
878
+ ...(messageId !== undefined ? { messageId } : {}),
879
+ },
880
+ })
881
+ }
882
+ }
883
+ } else if (b.type === "thinking") {
884
+ flushText()
885
+ const thinking = (b as { thinking?: unknown; redacted?: unknown }).thinking
886
+ const redacted = (b as { redacted?: unknown }).redacted === true
887
+ // Redacted thinking has no plaintext to surface — the encrypted
888
+ // payload only matters for multi-turn provider continuity.
889
+ if (redacted) continue
890
+ if (typeof thinking !== "string" || thinking.length === 0) continue
891
+ if (!emitThinking) continue
892
+ const messageId = nextMessageId()
893
+ this.send({
894
+ sessionId,
895
+ update: {
896
+ sessionUpdate: "agent_thought_chunk",
897
+ content: { type: "text", text: stripAnsi(thinking) },
898
+ ...(messageId !== undefined ? { messageId } : {}),
899
+ },
900
+ })
901
+ } else if (b.type === "toolCall") {
902
+ flushText()
903
+ const tc = b as { id?: unknown; name?: unknown; arguments?: unknown }
904
+ const id = typeof tc.id === "string" ? tc.id : undefined
905
+ const name = typeof tc.name === "string" ? tc.name : undefined
906
+ if (!id || !name) continue
907
+ const args = (tc.arguments ?? {}) as Record<string, unknown>
908
+ if (isHiddenToolCall(name, args)) continue
909
+ const result = toolResults.get(id)
910
+ // No persisted result → the call never finished (interrupted mid
911
+ // turn). "failed" is the closest terminal status; leaving the call
912
+ // in_progress would hang the client's spinner forever on replay.
913
+ const status: "completed" | "failed" = result ? (result.isError ? "failed" : "completed") : "failed"
914
+ const { title, kind, locations } = describeToolCall(name, args)
915
+ this.send({
916
+ sessionId,
917
+ update: {
918
+ sessionUpdate: "tool_call",
919
+ toolCallId: id,
920
+ title,
921
+ kind,
922
+ status,
923
+ locations,
924
+ rawInput: args,
925
+ },
926
+ })
927
+ this.send({
928
+ sessionId,
929
+ update: {
930
+ sessionUpdate: "tool_call_update",
931
+ toolCallId: id,
932
+ status,
933
+ content: result ? toolResultContent(result) : [],
934
+ rawOutput: result,
935
+ },
936
+ })
937
+ }
938
+ }
939
+ // Trailing text after the last structural block (or a text-only message)
940
+ // still needs to land — flushText is a no-op when the buffer is empty.
941
+ flushText()
942
+ }
943
+
944
+ private modelStateForSession(session: AgentSession): SessionModelState | null {
945
+ return buildSessionModelState(session)
946
+ }
947
+
948
+ private send(params: SessionNotification): void {
949
+ // Fire-and-forget is safe here because the ACP SDK chains every outbound
950
+ // message onto a shared writeQueue Promise (see @agentclientprotocol/sdk
951
+ // acp.js#sendMessage), so two consecutive sessionUpdate() calls are
952
+ // written to the stream in the order we invoked them even though we
953
+ // don't await. Do NOT "fix" this into `await this.conn.sessionUpdate(...)`
954
+ // in onSessionEvent — the subscriber is called synchronously from the
955
+ // AgentSession event emitter, and awaiting inside it would back-pressure
956
+ // every subsequent event through the event loop, which pi-mono's
957
+ // _processAgentEvent does not expect.
958
+ this.conn.sessionUpdate(params).catch((err: unknown) => {
959
+ process.stderr.write(`acp sessionUpdate failed: ${String(err)}\n`)
960
+ })
961
+ }
962
+
963
+ private sendAvailableCommandsUpdate(sessionId: string): void {
964
+ this.send({
965
+ sessionId,
966
+ update: {
967
+ sessionUpdate: "available_commands_update",
968
+ availableCommands: AVAILABLE_COMMANDS,
969
+ },
970
+ })
971
+ }
972
+
973
+ private finalizeTurn(entry: SessionRecord, stopReason: PromptResponse["stopReason"]): void {
974
+ const turn = entry.turn
975
+ if (!turn) return
976
+ entry.turn = undefined
977
+ turn.resolve({ stopReason })
978
+ }
979
+
980
+ private failTurn(entry: SessionRecord, err: unknown): void {
981
+ const turn = entry.turn
982
+ if (!turn) return
983
+ entry.turn = undefined
984
+ turn.reject(err)
985
+ }
986
+ }
987
+
988
+ /**
989
+ * Builds a SessionConfigOption for the permissions mode setting.
990
+ * Exposes the four permission modes (default, plan, auto, yolo) as a select
991
+ * option that ACP clients can read and modify.
992
+ */
993
+ const PERMISSION_MODE_META: Record<PermissionMode, { name: string; description: string }> = {
994
+ default: {
995
+ name: "Ask before edits",
996
+ description: "Approves every file change before it's made",
997
+ },
998
+ plan: { name: "Plan", description: "Thinks and plans, no edits" },
999
+ auto: {
1000
+ name: "Auto",
1001
+ description: "Runs freely, asks only for high-risk actions",
1002
+ },
1003
+ yolo: {
1004
+ name: "YOLO",
1005
+ description: "No permissions asked (use in sandboxed environments)",
1006
+ },
1007
+ }
1008
+
1009
+ export function buildPermissionsConfigOption(currentMode: PermissionMode): SessionConfigOption {
1010
+ return {
1011
+ id: "permissions-mode",
1012
+ name: "Permissions Mode",
1013
+ type: "select",
1014
+ category: "mode",
1015
+ description:
1016
+ "Control tool execution permissions: default (prompt for writes), plan (read-only), auto (classifier-gated), yolo (no restrictions)",
1017
+ currentValue: currentMode,
1018
+ options: ALL_PERMISSION_MODES.map((mode) => ({
1019
+ name: PERMISSION_MODE_META[mode].name,
1020
+ value: mode,
1021
+ description: PERMISSION_MODE_META[mode].description,
1022
+ })),
1023
+ }
1024
+ }
1025
+
1026
+ // Exported for testing. In practice the only way model is missing here is a
1027
+ // missing / unusable credential: loadConfig() already threw on an absent
1028
+ // IKIE_API_KEY before we ever spawned the ACP loop, and updateModelsConfig
1029
+ // falls back to defaults rather than failing. authRequired (-32000) nudges
1030
+ // Zed toward an auth prompt instead of showing a generic "internal error".
1031
+ export function buildSessionModelState(
1032
+ session: Pick<AgentSession, "model" | "modelRegistry">,
1033
+ ): SessionModelState | null {
1034
+ const currentModel = session.model
1035
+ if (!currentModel) {
1036
+ return null
1037
+ }
1038
+ const availableModels = session.modelRegistry.getAvailable()
1039
+ return {
1040
+ currentModelId: getAcpModelId(currentModel),
1041
+ availableModels: availableModels.map((m) => ({
1042
+ modelId: getAcpModelId(m),
1043
+ name: m.name,
1044
+ })),
1045
+ }
1046
+ }
1047
+
1048
+ function getAcpModelId(model: Pick<NonNullable<AgentSession["model"]>, "provider" | "id">): string {
1049
+ return `${model.provider}/${model.id}`
1050
+ }
1051
+
1052
+ export function assertSessionHasModel(session: Pick<AgentSession, "model">): void {
1053
+ if (!session.model) {
1054
+ throw RequestError.authRequired(
1055
+ undefined,
1056
+ "No model available for ACP session. Configure an API key or models.json first.",
1057
+ )
1058
+ }
1059
+ }
1060
+
1061
+ export function initializeHeadlessTheme(settingsManager: Pick<SettingsManager, "getTheme">): void {
1062
+ initTheme(settingsManager.getTheme(), false)
1063
+ }
1064
+
1065
+ function registerPermissionFlagController(
1066
+ sessionId: string,
1067
+ initialMode: PermissionMode,
1068
+ send: (params: SessionNotification) => void,
1069
+ ): SessionPermissionFlagController {
1070
+ const permissionFlagController = createSessionPermissionFlagController({
1071
+ mode: { mode: initialMode, source: "user" },
1072
+ })
1073
+ // Register with permissions extension so tool gating uses session-scoped mode
1074
+ registerSessionPermissionFlagController(sessionId, permissionFlagController)
1075
+ permissionFlagController.subscribe(({ mode }) => {
1076
+ if (mode === undefined) return
1077
+ send({
1078
+ sessionId,
1079
+ update: {
1080
+ sessionUpdate: "config_option_update",
1081
+ configOptions: [buildPermissionsConfigOption(mode.mode)],
1082
+ },
1083
+ })
1084
+ })
1085
+ return permissionFlagController
1086
+ }
1087
+
1088
+ // Title falls back to the truncated first user message when the session has no
1089
+ // user-defined name. ACP clients render this in the thread-picker UI; we do
1090
+ // NOT trigger a fresh prompt-summary on listSessions because that would mean
1091
+ // an LLM call per session and break the 500ms NFR.
1092
+ export function toAcpSessionInfo(info: PiSessionInfo): AcpSessionInfo {
1093
+ // Use truthiness rather than `??` so an empty `name` (migration artifact or
1094
+ // hand-edited session-info entry) still falls through to firstMessage —
1095
+ // `??` only short-circuits on null/undefined and would otherwise leave the
1096
+ // title as the empty string and end up null below.
1097
+ const fallback = info.firstMessage ? truncate(info.firstMessage) : ""
1098
+ const title = info.name && info.name.length > 0 ? info.name : fallback
1099
+ return {
1100
+ sessionId: info.id,
1101
+ cwd: info.cwd,
1102
+ title: title.length > 0 ? title : null,
1103
+ updatedAt: info.modified.toISOString(),
1104
+ }
1105
+ }
1106
+
1107
+ // Mirrors pi's getDefaultSessionDir (core/session-manager.js): pi declares the
1108
+ // helper but doesn't re-export it from the package index. Replicated inline so
1109
+ // listSessions points at ikie's agentDir (~/.config/ikie/harness/sessions/...)
1110
+ // instead of pi's own ~/.pi/agent/sessions/... — pi reads PI_CODING_AGENT_DIR,
1111
+ // not IKIE_CODING_AGENT_DIR, so without explicit sessionDir threading the
1112
+ // default lookup misses every ikie session. Encoding is a public on-disk
1113
+ // format; drift surfaces as "no sessions found" rather than silent corruption.
1114
+ function encodeCwdDir(cwd: string): string {
1115
+ return `--${cwd.replace(/^[/\\]/, "").replace(/[/\\:]/g, "-")}--`
1116
+ }
1117
+
1118
+ // Find the on-disk JSONL for a sessionId. pi names files
1119
+ // `<isoTimestamp>_<sessionId>.jsonl` — match that suffix, with a fallback to
1120
+ // the bare `<sessionId>.jsonl` form so a hypothetical future pi format change
1121
+ // still resolves. That fallback is scoped to the already cwd-encoded directory
1122
+ // and the loader validates the file header id/cwd before opening it; a hand-
1123
+ // placed file must still match both to load. Returns null when the directory is
1124
+ // missing or no file matches; rethrows other errno (EACCES, EMFILE, …) so the
1125
+ // caller can surface them instead of masquerading as "session not found".
1126
+ function resolveSessionPathById(sessionDir: string, sessionId: string): string | null {
1127
+ let entries: string[]
1128
+ try {
1129
+ entries = readdirSync(sessionDir)
1130
+ } catch (err) {
1131
+ if ((err as NodeJS.ErrnoException).code === "ENOENT") return null
1132
+ throw err
1133
+ }
1134
+ const suffix = `_${sessionId}.jsonl`
1135
+ const bare = `${sessionId}.jsonl`
1136
+ const match = entries.find((f) => f === bare || f.endsWith(suffix))
1137
+ return match ? join(sessionDir, match) : null
1138
+ }
1139
+
1140
+ const SESSION_HEADER_PEEK_BYTES = 8 * 1024
1141
+
1142
+ function parseSessionHeader(raw: string): Pick<SessionHeader, "id" | "cwd"> | null {
1143
+ for (const line of raw.split("\n")) {
1144
+ const trimmed = line.trim()
1145
+ if (!trimmed) continue
1146
+ let entry: unknown
1147
+ try {
1148
+ entry = JSON.parse(trimmed)
1149
+ } catch {
1150
+ continue
1151
+ }
1152
+ if (!entry || typeof entry !== "object" || (entry as { type?: unknown }).type !== "session") continue
1153
+ const header = entry as { id?: unknown; cwd?: unknown }
1154
+ if (typeof header.id !== "string" || typeof header.cwd !== "string") return null
1155
+ return { id: header.id, cwd: header.cwd }
1156
+ }
1157
+ return null
1158
+ }
1159
+
1160
+ function readSessionHeaderPeek(sessionPath: string): { raw: string; complete: boolean } {
1161
+ const fd = openSync(sessionPath, "r")
1162
+ try {
1163
+ const buffer = Buffer.allocUnsafe(SESSION_HEADER_PEEK_BYTES)
1164
+ const bytesRead = readSync(fd, buffer, 0, buffer.length, 0)
1165
+ return {
1166
+ raw: buffer.toString("utf-8", 0, bytesRead),
1167
+ complete: bytesRead < SESSION_HEADER_PEEK_BYTES,
1168
+ }
1169
+ } finally {
1170
+ closeSync(fd)
1171
+ }
1172
+ }
1173
+
1174
+ function readSessionHeader(sessionPath: string): Pick<SessionHeader, "id" | "cwd"> | null {
1175
+ const peek = readSessionHeaderPeek(sessionPath)
1176
+ const parseablePeek = peek.complete ? peek.raw : peek.raw.slice(0, Math.max(0, peek.raw.lastIndexOf("\n") + 1))
1177
+ const header = parseSessionHeader(parseablePeek)
1178
+ if (header || peek.complete) return header
1179
+ return parseSessionHeader(readFileSync(sessionPath, "utf-8"))
1180
+ }
1181
+
1182
+ function defaultSessionLister(options: RunAcpOptions): AcpSessionLister {
1183
+ return async (params: ListSessionsRequest) => {
1184
+ // Build the set of roots to enumerate: cwd (when present) plus any
1185
+ // non-empty additionalDirectories. Dedupe to avoid double-listing when
1186
+ // a client sends cwd as one of the additional roots.
1187
+ const roots: string[] = []
1188
+ if (params.cwd) roots.push(params.cwd)
1189
+ for (const dir of params.additionalDirectories ?? []) {
1190
+ if (!roots.includes(dir)) roots.push(dir)
1191
+ }
1192
+ if (roots.length === 0) {
1193
+ // listAll has no agentDir slot in pi today, so a non-default agentDir
1194
+ // won't be honored for the unscoped path. Acceptable v1 limitation:
1195
+ // Zed's thread-import always supplies a cwd.
1196
+ return SessionManager.listAll()
1197
+ }
1198
+ const lists = await Promise.all(
1199
+ roots.map((root) => SessionManager.list(root, join(options.agentDir, "sessions", encodeCwdDir(root)))),
1200
+ )
1201
+ return lists.flat()
1202
+ }
1203
+ }
1204
+
1205
+ function defaultSessionLoader(options: RunAcpOptions): AcpSessionLoader {
1206
+ return async (params: LoadSessionRequest): Promise<AgentSession> => {
1207
+ const cwd = params.cwd
1208
+ // Mirror defaultSessionLister: encode cwd inline because pi doesn't
1209
+ // re-export getDefaultSessionDir from its package index. Threading
1210
+ // agentDir explicitly is load-bearing — pi reads PI_CODING_AGENT_DIR,
1211
+ // not IKIE_CODING_AGENT_DIR, so default lookups would miss ikie
1212
+ // sessions stored under the ikie agent dir.
1213
+ const sessionDir = join(options.agentDir, "sessions", encodeCwdDir(cwd))
1214
+ // pi writes session files as `<isoTimestamp>_<sessionId>.jsonl` (see
1215
+ // SessionManager.setSessionFile auto-generation). Looking up by bare
1216
+ // `<sessionId>.jsonl` would miss every real session — match the
1217
+ // timestamp-prefixed form (and accept the bare form too as a forward-
1218
+ // compat hedge if pi ever drops the prefix). Scan the cwd-scoped dir
1219
+ // directly rather than calling SessionManager.list, which would parse
1220
+ // every JSONL header just to find one file.
1221
+ let sessionPath: string | null
1222
+ try {
1223
+ sessionPath = resolveSessionPathById(sessionDir, params.sessionId)
1224
+ } catch (err) {
1225
+ // EACCES / EMFILE / etc. — surface the underlying readdir error so
1226
+ // Zed can show something more useful than "session not found", but
1227
+ // still as invalidParams so it doesn't trip Zed's "server shut down
1228
+ // unexpectedly" error path.
1229
+ const msg = err instanceof Error ? err.message : String(err)
1230
+ throw RequestError.invalidParams(undefined, `failed to read session directory: ${msg}`)
1231
+ }
1232
+ // Map "session not found" to invalidParams — SessionManager.open would
1233
+ // silently start a fresh session on a missing file (and rewrite it with
1234
+ // a new id), which is destructive and not what loadSession should do.
1235
+ if (!sessionPath) {
1236
+ throw RequestError.invalidParams(undefined, `session ${params.sessionId} not found`)
1237
+ }
1238
+ let header: Pick<SessionHeader, "id" | "cwd"> | null
1239
+ try {
1240
+ header = readSessionHeader(sessionPath)
1241
+ } catch (err) {
1242
+ // Same invalidParams treatment as SessionManager.open below: the file
1243
+ // existed at resolve time but could not be read now (permissions,
1244
+ // post-readdir delete, etc.).
1245
+ const msg = err instanceof Error ? err.message : String(err)
1246
+ throw RequestError.invalidParams(undefined, `failed to read session header: ${msg}`)
1247
+ }
1248
+ if (!header) {
1249
+ throw RequestError.invalidParams(undefined, `session ${params.sessionId} has no valid session header`)
1250
+ }
1251
+ if (header.id !== params.sessionId) {
1252
+ throw RequestError.invalidParams(
1253
+ undefined,
1254
+ `session header id ${header.id} does not match requested sessionId ${params.sessionId}`,
1255
+ )
1256
+ }
1257
+ // Reject cwd mismatch before opening SessionManager. pi has no
1258
+ // close/dispose hook on SessionManager itself; peeking the header avoids
1259
+ // constructing a manager for a session this request is not allowed to
1260
+ // load.
1261
+ if (header.cwd !== cwd) {
1262
+ throw RequestError.invalidParams(undefined, `session cwd ${header.cwd} does not match requested cwd ${cwd}`)
1263
+ }
1264
+ let sessionManager: SessionManager
1265
+ try {
1266
+ // Open WITHOUT cwdOverride so the on-disk header cwd is preserved —
1267
+ // pi's open is `cwd = cwdOverride ?? header.cwd ?? process.cwd()`
1268
+ // (no comparison), so passing params.cwd upfront would silently
1269
+ // re-root a session created elsewhere. We compare below instead.
1270
+ sessionManager = SessionManager.open(sessionPath, sessionDir)
1271
+ } catch (err) {
1272
+ // loadEntriesFromFile silently skips malformed lines, but I/O
1273
+ // errors (permissions, post-readdir delete) and migration
1274
+ // failures still propagate. Surface as invalidParams with a
1275
+ // one-line message instead of crashing the connection (which
1276
+ // triggers Zed's "server shut down unexpectedly" toast).
1277
+ const msg = err instanceof Error ? err.message : String(err)
1278
+ throw RequestError.invalidParams(undefined, `failed to open session: ${msg}`)
1279
+ }
1280
+ const settingsManager = SettingsManager.create(cwd, options.agentDir)
1281
+ initializeHeadlessTheme(settingsManager)
1282
+ const resourceLoader = new DefaultResourceLoader({
1283
+ cwd,
1284
+ agentDir: options.agentDir,
1285
+ settingsManager,
1286
+ extensionFactories: options.extensionFactories,
1287
+ })
1288
+ await resourceLoader.reload()
1289
+ const { session } = await createAgentSession({
1290
+ cwd,
1291
+ agentDir: options.agentDir,
1292
+ settingsManager,
1293
+ resourceLoader,
1294
+ sessionManager,
1295
+ })
1296
+ return session
1297
+ }
1298
+ }
1299
+
1300
+ function defaultSessionFactory(options: RunAcpOptions): AcpSessionFactory {
1301
+ return async (params: NewSessionRequest): Promise<AgentSession> => {
1302
+ const cwd = params.cwd ?? process.cwd()
1303
+ const settingsManager = SettingsManager.create(cwd, options.agentDir)
1304
+ initializeHeadlessTheme(settingsManager)
1305
+ const resourceLoader = new DefaultResourceLoader({
1306
+ cwd,
1307
+ agentDir: options.agentDir,
1308
+ settingsManager,
1309
+ extensionFactories: options.extensionFactories,
1310
+ })
1311
+ await resourceLoader.reload()
1312
+ const { session } = await createAgentSession({
1313
+ cwd,
1314
+ agentDir: options.agentDir,
1315
+ settingsManager,
1316
+ resourceLoader,
1317
+ })
1318
+ return session
1319
+ }
1320
+ }
1321
+
1322
+ // Mirrors the tool names ikie actually exposes: pi-coding-agent core tools
1323
+ // plus the ikie extensions in src/extensions (web-fetch, web-search, Agent).
1324
+ // ACP clients key UI affordances (icon, grouping, permission messaging) off the
1325
+ // kind field, so every registered tool should map to the most specific kind in
1326
+ // the ToolKind vocabulary before falling back to "other". MCP tools arrive with
1327
+ // dynamic `mcp__server__name` identifiers we can't enumerate statically — those
1328
+ // still hit the "other" fallback in describeToolCall().
1329
+ const TOOL_KINDS: Record<string, ToolKind> = {
1330
+ bash: "execute",
1331
+ read: "read",
1332
+ ls: "read",
1333
+ grep: "search",
1334
+ find: "search",
1335
+ edit: "edit",
1336
+ write: "edit",
1337
+ web_fetch: "fetch",
1338
+ web_search: "search",
1339
+ Agent: "think",
1340
+ }
1341
+ const TITLE_MAX = 80
1342
+
1343
+ const asString = (v: unknown): string | undefined => (typeof v === "string" ? v : undefined)
1344
+ const truncate = (s: string): string => (s.length > TITLE_MAX ? `${s.slice(0, TITLE_MAX)}…` : s)
1345
+
1346
+ export function isHiddenToolCall(toolName: string, args: unknown): boolean {
1347
+ // Defense-in-depth: the Agent tool's public schema deliberately omits `visibility`
1348
+ // (see src/extensions/agents/index.ts:execute), so this normally returns false. If a
1349
+ // misbehaving LLM emits the field anyway, we hide the ACP-side tool_call rather than
1350
+ // trust the schema to have caught it.
1351
+ if (toolName !== "Agent") return false
1352
+ const a = (args ?? {}) as Record<string, unknown>
1353
+ return typeof a.visibility === "string" && a.visibility.toLowerCase() === "system"
1354
+ }
1355
+
1356
+ // Persisted assistant text from hide-thinking-aware models (DeepSeek, QwQ, ...)
1357
+ // can contain ANSI styling around inner <think> content. Live TUI styling means
1358
+ // "this is reasoning"; ACP plaintext has no such styling, so replay splits the
1359
+ // known thinking wrappers into agent_thought_chunk and strips remaining CSI
1360
+ // escapes from ordinary text.
1361
+ // Built from String.fromCharCode to keep the literal ESC byte out of source;
1362
+ // biome's noControlCharactersInRegex flags it inside a regex literal.
1363
+ const ANSI_ESC = String.fromCharCode(0x1b)
1364
+ const ANSI_PATTERN = new RegExp(`${ANSI_ESC}\\[[0-9;]*[A-Za-z]`, "g")
1365
+ const escapeRegExp = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
1366
+ const ANSI_THINKING_OPEN_CODES = ["2", "38;2;102;102;102", "38;5;242"]
1367
+ const ANSI_THINKING_PATTERN = new RegExp(
1368
+ `${ANSI_ESC}\\[(?:${ANSI_THINKING_OPEN_CODES.map(escapeRegExp).join("|")})m([\\s\\S]*?)(?:${ANSI_ESC}\\[(?:0|22)m|$)`,
1369
+ "g",
1370
+ )
1371
+ export function stripAnsi(text: string): string {
1372
+ return text.replace(ANSI_PATTERN, "")
1373
+ }
1374
+
1375
+ type ReplayTextPart = { kind: "text" | "thinking"; text: string }
1376
+
1377
+ function replayTextParts(text: string): ReplayTextPart[] {
1378
+ const parts: ReplayTextPart[] = []
1379
+ let lastIndex = 0
1380
+ for (const match of text.matchAll(ANSI_THINKING_PATTERN)) {
1381
+ const index = match.index ?? 0
1382
+ const before = stripAnsi(text.slice(lastIndex, index))
1383
+ if (before.length > 0) parts.push({ kind: "text", text: before })
1384
+ const thinking = stripAnsi(match[1] ?? "")
1385
+ if (thinking.length > 0) parts.push({ kind: "thinking", text: thinking })
1386
+ lastIndex = index + match[0].length
1387
+ }
1388
+ const after = stripAnsi(text.slice(lastIndex))
1389
+ if (after.length > 0) parts.push({ kind: "text", text: after })
1390
+ return parts
1391
+ }
1392
+
1393
+ export function describeToolCall(
1394
+ toolName: string,
1395
+ args: unknown,
1396
+ ): { title: string; kind: ToolKind; locations: ToolCallLocation[] } {
1397
+ const a = (args ?? {}) as Record<string, unknown>
1398
+ const path = asString(a.file_path) ?? asString(a.path)
1399
+ const command = asString(a.command)
1400
+ const pattern = asString(a.pattern)
1401
+ // title carries the target/argument only; the ACP `kind` field drives the verb
1402
+ // and icon on the client side. Bash puts its command here; file ops put the
1403
+ // path; search ops put the pattern. Falls back to the tool name when we have
1404
+ // no specific argument to show. Truncate every branch so a long absolute
1405
+ // path or regex doesn't blow up client UIs (locations[].path keeps the full
1406
+ // value for clients that want it).
1407
+ const rawTitle = toolName === "bash" && command ? command : (path ?? pattern ?? toolName)
1408
+ return {
1409
+ title: truncate(rawTitle),
1410
+ kind: TOOL_KINDS[toolName] ?? "other",
1411
+ locations: path ? [{ path }] : [],
1412
+ }
1413
+ }
1414
+
1415
+ export function buildToolCallUpdate(
1416
+ toolCallId: string,
1417
+ toolName: string,
1418
+ args: Record<string, unknown>,
1419
+ ): ToolCallUpdate {
1420
+ const { title, kind, locations } = describeToolCall(toolName, args)
1421
+ return {
1422
+ toolCallId,
1423
+ title,
1424
+ kind,
1425
+ status: "pending",
1426
+ locations,
1427
+ rawInput: args,
1428
+ }
1429
+ }
1430
+
1431
+ // UserMessage.content is `string | (TextContent | ImageContent)[]` per pi-ai
1432
+ // types. Replay only surfaces text — Zed has no UX surface for historical
1433
+ // image attachments, and the prompt capabilities advertise image: false so a
1434
+ // future replay path that emits historical images would also need to flip
1435
+ // that flag.
1436
+ export function userMessageText(content: unknown): string {
1437
+ if (typeof content === "string") return content
1438
+ if (!Array.isArray(content)) return ""
1439
+ const parts: string[] = []
1440
+ for (const block of content) {
1441
+ if (block && typeof block === "object" && (block as { type?: unknown }).type === "text") {
1442
+ const text = (block as { text?: unknown }).text
1443
+ if (typeof text === "string") parts.push(text)
1444
+ }
1445
+ }
1446
+ return parts.join("")
1447
+ }
1448
+
1449
+ type ReplayToolResult = {
1450
+ content?: unknown
1451
+ isError: boolean
1452
+ // Pass-through `details` so the replay's tool_call_update rawOutput carries
1453
+ // the same shape as the live path's event.result (AgentToolResult includes
1454
+ // details). Clients keying UI off rawOutput.details would otherwise see a
1455
+ // thinner payload on replay.
1456
+ details?: unknown
1457
+ toolName?: string
1458
+ }
1459
+
1460
+ // First pass over the branch: index tool results by their toolCallId so the
1461
+ // replay walker can stitch each historical toolCall block to its terminal
1462
+ // outcome (status + content) in O(1). Tool results land as separate message
1463
+ // entries in the JSONL — without this map we'd have to scan forward inside
1464
+ // the walker on every toolCall, turning replay into O(N²).
1465
+ function collectToolResults(entries: unknown[]): Map<string, ReplayToolResult> {
1466
+ const out = new Map<string, ReplayToolResult>()
1467
+ for (const entry of entries) {
1468
+ if (!entry || typeof entry !== "object") continue
1469
+ const e = entry as { type?: unknown; message?: unknown }
1470
+ if (e.type !== "message") continue
1471
+ const m = e.message as
1472
+ | {
1473
+ role?: unknown
1474
+ toolCallId?: unknown
1475
+ toolName?: unknown
1476
+ content?: unknown
1477
+ details?: unknown
1478
+ isError?: unknown
1479
+ }
1480
+ | undefined
1481
+ if (!m || m.role !== "toolResult" || typeof m.toolCallId !== "string") continue
1482
+ out.set(m.toolCallId, {
1483
+ content: m.content,
1484
+ isError: m.isError === true,
1485
+ details: m.details,
1486
+ toolName: typeof m.toolName === "string" ? m.toolName : undefined,
1487
+ })
1488
+ }
1489
+ return out
1490
+ }
1491
+
1492
+ // Native ThinkingContent blocks aren't routed through hideThinkingExtension
1493
+ // (which only mutates <think> tags inside text blocks), but the replay UX
1494
+ // should still honor the user's hideThinkingBlock setting — otherwise a user
1495
+ // who hides thinking sees a quiet live UI but a noisy replayed transcript.
1496
+ // Read the setting directly: a previous version probed filterThinkingForDisplay
1497
+ // with a synthetic <think>...</think> wrapper, which broke when the persisted
1498
+ // thinking text itself contained `</think>` (the inner regex terminated early
1499
+ // and the predicate falsely returned true).
1500
+ export function shouldEmitThinking(_thinking: string): boolean {
1501
+ return !isHideThinkingEnabled()
1502
+ }
1503
+
1504
+ function toolResultContent(result: unknown): ToolCallContent[] {
1505
+ // Tool results carry pi-ai content blocks, typed as (TextContent |
1506
+ // ImageContent)[] on pi-ai's ToolResultMessage. Forward both, so a tool that
1507
+ // emits an image (e.g. web_fetch, or an MCP image tool whose block survives
1508
+ // transformMcpContent) doesn't surface to the client as a completed call with
1509
+ // empty content.
1510
+ //
1511
+ // resource / resource_link / audio blocks never reach here: the MCP bridge
1512
+ // (transformMcpContent) already flattens them to text, because pi-ai tool
1513
+ // results only model text and image. Forwarding them as native ACP resource
1514
+ // blocks would require widening pi-ai's tool-result content type upstream.
1515
+ const r = result as { content?: unknown } | null | undefined
1516
+ const content = r?.content
1517
+ if (!Array.isArray(content)) return []
1518
+ const out: ToolCallContent[] = []
1519
+ for (const block of content) {
1520
+ if (!block || typeof block !== "object") continue
1521
+ const b = block as { type?: string; text?: string; data?: string; mimeType?: string }
1522
+ if (b.type === "text" && typeof b.text === "string") {
1523
+ out.push({ type: "content", content: { type: "text", text: b.text } })
1524
+ } else if (b.type === "image" && typeof b.data === "string" && typeof b.mimeType === "string") {
1525
+ out.push({ type: "content", content: { type: "image", data: b.data, mimeType: b.mimeType } })
1526
+ }
1527
+ }
1528
+ return out
1529
+ }
1530
+
1531
+ export async function runAcpMode(options: RunAcpOptions): Promise<void> {
1532
+ // stdout is reserved for JSON-RPC frames; redirect stray console output to
1533
+ // stderr so a lone `console.log` anywhere in pi-mono/extensions can't corrupt
1534
+ // the protocol stream.
1535
+ console.log = console.error
1536
+ console.info = console.error
1537
+ console.warn = console.error
1538
+ console.debug = console.error
1539
+
1540
+ const writable = Writable.toWeb(process.stdout) as WritableStream<Uint8Array>
1541
+ const readable = Readable.toWeb(process.stdin) as ReadableStream<Uint8Array>
1542
+ const stream = ndJsonStream(writable, readable)
1543
+
1544
+ let agentInstance: IkieAcpAgent | undefined
1545
+ const conn = new AgentSideConnection((c) => {
1546
+ agentInstance = new IkieAcpAgent(c, options)
1547
+ return agentInstance
1548
+ }, stream)
1549
+
1550
+ const signals: NodeJS.Signals[] = process.platform === "win32" ? ["SIGTERM"] : ["SIGTERM", "SIGHUP", "SIGINT"]
1551
+ let shuttingDown = false
1552
+ const onSignal = (sig: NodeJS.Signals) => {
1553
+ if (shuttingDown) return
1554
+ shuttingDown = true
1555
+ const code = sig === "SIGHUP" ? 129 : sig === "SIGINT" ? 130 : 143
1556
+ agentInstance
1557
+ ?.shutdown("signal")
1558
+ .catch(() => {})
1559
+ .finally(() => process.exit(code))
1560
+ }
1561
+ for (const s of signals) process.on(s, onSignal)
1562
+
1563
+ try {
1564
+ await conn.closed
1565
+ } finally {
1566
+ for (const s of signals) process.off(s, onSignal)
1567
+ await agentInstance?.shutdown()
1568
+ }
1569
+ }