@ken-jo/agent-connector 0.4.79 → 0.4.92

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 (200) hide show
  1. package/README.md +302 -561
  2. package/dist/{action-OHGFVKMC.js → action-CVIEPX4U.js} +14 -14
  3. package/dist/{amazon-q-B52EY2SV.js → amazon-q-TIT7FIW3.js} +5 -5
  4. package/dist/{amp-UXABVUKC.js → amp-NF3OAAUG.js} +5 -5
  5. package/dist/{antigravity-RZHN53VB.js → antigravity-7LPK7QOY.js} +6 -6
  6. package/dist/antigravity-cli-MDEMPPAH.js +467 -0
  7. package/dist/antigravity-cli-MDEMPPAH.js.map +1 -0
  8. package/dist/{chunk-QKLJU4JX.js → chunk-2Y2MZRLP.js} +56 -2
  9. package/dist/chunk-2Y2MZRLP.js.map +1 -0
  10. package/dist/{chunk-UBB7T54N.js → chunk-3C5AASHM.js} +3 -3
  11. package/dist/{chunk-LKAVD4HP.js → chunk-447JWFZO.js} +12 -12
  12. package/dist/{chunk-HORHRHNG.js → chunk-4NHXLXSD.js} +2 -2
  13. package/dist/chunk-5Z36KVU2.js +590 -0
  14. package/dist/chunk-5Z36KVU2.js.map +1 -0
  15. package/dist/{chunk-AY3RGRTT.js → chunk-6TF7MHG5.js} +2 -2
  16. package/dist/{chunk-AMK2K6XZ.js → chunk-7UT6OB52.js} +2 -2
  17. package/dist/{chunk-PZHB5TVA.js → chunk-AY3VFNOH.js} +5 -5
  18. package/dist/{chunk-4HVQ7IUM.js → chunk-DI5S6TXJ.js} +17 -4
  19. package/dist/chunk-DI5S6TXJ.js.map +1 -0
  20. package/dist/{chunk-ZXX5DVSE.js → chunk-FBCBHEGB.js} +8 -8
  21. package/dist/{chunk-4NSU3KWX.js → chunk-FJCUKXGX.js} +2 -2
  22. package/dist/{chunk-S4E6QQEM.js → chunk-FO5CEXXN.js} +7 -2
  23. package/dist/chunk-FO5CEXXN.js.map +1 -0
  24. package/dist/{chunk-IXOQDZWC.js → chunk-GZGLCCEE.js} +5 -1
  25. package/dist/chunk-GZGLCCEE.js.map +1 -0
  26. package/dist/{chunk-UYZ53KWS.js → chunk-IBLYVAWH.js} +31 -9
  27. package/dist/chunk-IBLYVAWH.js.map +1 -0
  28. package/dist/{chunk-4FWETID5.js → chunk-IVAWP6HH.js} +2 -2
  29. package/dist/{chunk-NBUEL74R.js → chunk-JFXL4HYA.js} +3 -3
  30. package/dist/{chunk-VD4EG6SG.js → chunk-JO2IM2JL.js} +538 -226
  31. package/dist/chunk-JO2IM2JL.js.map +1 -0
  32. package/dist/{chunk-7NXEHZAK.js → chunk-JVO6NBTT.js} +3 -3
  33. package/dist/{chunk-X457NOFE.js → chunk-KA55FISM.js} +116 -36
  34. package/dist/chunk-KA55FISM.js.map +1 -0
  35. package/dist/{chunk-YJP3KGLM.js → chunk-L26PSQTY.js} +4 -4
  36. package/dist/{chunk-YYNXIUR2.js → chunk-M2H7JURF.js} +2 -2
  37. package/dist/{chunk-56R2ER7K.js → chunk-NBYKLUF6.js} +2 -2
  38. package/dist/{chunk-IRUYJD23.js → chunk-NLE2J5P4.js} +1 -1
  39. package/dist/{chunk-VVFDU4IX.js → chunk-WFEHWTLM.js} +12 -5
  40. package/dist/{chunk-VVFDU4IX.js.map → chunk-WFEHWTLM.js.map} +1 -1
  41. package/dist/{chunk-LN76OGNR.js → chunk-Z2MRSS2I.js} +2 -2
  42. package/dist/{claude-code-T6ZRCMA7.js → claude-code-7RS4YVGZ.js} +9 -9
  43. package/dist/cli/sdk.js +7 -7
  44. package/dist/cli.js +1 -1
  45. package/dist/{cline-NNMVCECA.js → cline-BZQAUYPC.js} +5 -5
  46. package/dist/codebuddy-G42IKGKB.js +643 -0
  47. package/dist/codebuddy-G42IKGKB.js.map +1 -0
  48. package/dist/{codebuff-RJIDSEU3.js → codebuff-5RLTLZAU.js} +5 -5
  49. package/dist/{codex-RHKQKNNG.js → codex-XHAMJILX.js} +14 -8
  50. package/dist/{codex-RHKQKNNG.js.map → codex-XHAMJILX.js.map} +1 -1
  51. package/dist/{continue-MNM7YVJY.js → continue-JLIB7R7X.js} +6 -6
  52. package/dist/{copilot-cli-SMTX5F65.js → copilot-cli-XZSUYNQZ.js} +5 -5
  53. package/dist/{crush-NYDBHIJE.js → crush-ESERLVLT.js} +5 -5
  54. package/dist/{cursor-AOELDNZU.js → cursor-FUDOV5VK.js} +6 -6
  55. package/dist/{detect-ALAKE54S.js → detect-Z5BDTY6B.js} +4 -4
  56. package/dist/devin-Y7PWKVHY.js +510 -0
  57. package/dist/devin-Y7PWKVHY.js.map +1 -0
  58. package/dist/{doctor-UNF7FCF4.js → doctor-GAP27PP2.js} +27 -23
  59. package/dist/doctor-GAP27PP2.js.map +1 -0
  60. package/dist/{droid-PTCH2K7Y.js → droid-DTO5POTK.js} +5 -5
  61. package/dist/{gemini-cli-QGLN2UMS.js → gemini-cli-RBIG6U2F.js} +5 -5
  62. package/dist/{goose-DQ6GSZ5O.js → goose-VGNOP5J2.js} +6 -6
  63. package/dist/grok-cli-2RFBK6J3.js +482 -0
  64. package/dist/grok-cli-2RFBK6J3.js.map +1 -0
  65. package/dist/{hermes-E47IG63A.js → hermes-NUKFWZI5.js} +6 -6
  66. package/dist/{hook-GM2IDA3C.js → hook-XPR3AHDI.js} +14 -14
  67. package/dist/index.d.ts +2 -2
  68. package/dist/index.js +5 -5
  69. package/dist/install-O32TDIZP.js +382 -0
  70. package/dist/install-O32TDIZP.js.map +1 -0
  71. package/dist/{introspect-5o5ick0_.d.ts → introspect-BkId4LGP.d.ts} +1 -1
  72. package/dist/{jetbrains-copilot-4IOT3I2Y.js → jetbrains-copilot-FXZ5AOTS.js} +31 -9
  73. package/dist/jetbrains-copilot-FXZ5AOTS.js.map +1 -0
  74. package/dist/junie-TSXIZSCE.js +227 -0
  75. package/dist/junie-TSXIZSCE.js.map +1 -0
  76. package/dist/{kilo-TAHOPT2Q.js → kilo-JLH3KVZJ.js} +8 -8
  77. package/dist/{kilo-cli-X4NPJWGX.js → kilo-cli-5W36VJQZ.js} +8 -8
  78. package/dist/{kimi-Z7L2LEEI.js → kimi-R62W7HKZ.js} +5 -5
  79. package/dist/{kiro-YZ4TTZGD.js → kiro-AUJMGIBL.js} +81 -6
  80. package/dist/kiro-AUJMGIBL.js.map +1 -0
  81. package/dist/{leaderboard-DVW4WYJ6.js → leaderboard-YWMOSJBC.js} +7 -7
  82. package/dist/{mimo-code-G2CBZ4M6.js → mimo-code-PGLFFVER.js} +5 -5
  83. package/dist/mistral-vibe-36CZVQNQ.js +300 -0
  84. package/dist/mistral-vibe-36CZVQNQ.js.map +1 -0
  85. package/dist/{mux-JNM3F2NW.js → mux-HWL4N5KH.js} +5 -5
  86. package/dist/{nemoclaw-SHA4IUML.js → nemoclaw-QPHETUXM.js} +6 -6
  87. package/dist/{omp-OOVUNXME.js → omp-3TFMTJ5U.js} +5 -5
  88. package/dist/open-interpreter-UTBKE2EH.js +264 -0
  89. package/dist/open-interpreter-UTBKE2EH.js.map +1 -0
  90. package/dist/openclaw-RYFO5TLY.js +17 -0
  91. package/dist/{opencode-W2RK4M7G.js → opencode-JX7GBE5Q.js} +5 -5
  92. package/dist/openhands-AZW4PXJ3.js +384 -0
  93. package/dist/openhands-AZW4PXJ3.js.map +1 -0
  94. package/dist/{package-H5V3AZHR.js → package-2KKUGZFS.js} +13 -13
  95. package/dist/{pi-I7BLL4EI.js → pi-MRI3EBWU.js} +143 -6
  96. package/dist/pi-MRI3EBWU.js.map +1 -0
  97. package/dist/{qwen-code-JG7AF442.js → qwen-code-ISR6BEET.js} +9 -9
  98. package/dist/{roo-code-L5F7S6QH.js → roo-code-6TSCME4R.js} +5 -5
  99. package/dist/runtime/index.d.ts +1 -1
  100. package/dist/runtime/index.js +12 -12
  101. package/dist/sdk/index.d.ts +3 -3
  102. package/dist/sdk/index.js +6 -6
  103. package/dist/sdk/test.d.ts +2 -2
  104. package/dist/sdk/test.js +10 -10
  105. package/dist/{serve-WMO2TUW3.js → serve-EPRN7F2X.js} +14 -14
  106. package/dist/{status-WRLBTBRE.js → status-B2PG6YKR.js} +11 -11
  107. package/dist/{statusline-EUD4DMIP.js → statusline-5ERFMYSM.js} +13 -13
  108. package/dist/{telemetry-U3LGMR3D.js → telemetry-ZMCAWBWB.js} +10 -10
  109. package/dist/{trae-Z7CQ2A2Q.js → trae-7KDCYIMN.js} +5 -5
  110. package/dist/{types-D6RWGXm1.d.ts → types-D0RqWxT8.d.ts} +53 -9
  111. package/dist/{uninstall-TWPUEJEC.js → uninstall-M76BHLTH.js} +37 -27
  112. package/dist/uninstall-M76BHLTH.js.map +1 -0
  113. package/dist/{upgrade-EM6Y7QLH.js → upgrade-JLSCNAQA.js} +25 -19
  114. package/dist/upgrade-JLSCNAQA.js.map +1 -0
  115. package/dist/{usage-3HQDTXGY.js → usage-5I72HWCR.js} +3 -3
  116. package/dist/{usage-event-DWIGKO7V.js → usage-event-HIX4ZI45.js} +13 -13
  117. package/dist/{vscode-copilot-LU5NC4ZS.js → vscode-copilot-LILHAPJI.js} +20 -5
  118. package/dist/vscode-copilot-LILHAPJI.js.map +1 -0
  119. package/dist/{warp-4PPG5LOM.js → warp-KJUCWEA3.js} +5 -5
  120. package/dist/{windsurf-3T3RVXKM.js → windsurf-5TGGQR5I.js} +5 -5
  121. package/dist/{zed-LLOAUXSA.js → zed-EL3JCZ25.js} +123 -7
  122. package/dist/zed-EL3JCZ25.js.map +1 -0
  123. package/package.json +1 -1
  124. package/dist/antigravity-cli-KODEKUTM.js +0 -87
  125. package/dist/antigravity-cli-KODEKUTM.js.map +0 -1
  126. package/dist/chunk-4HVQ7IUM.js.map +0 -1
  127. package/dist/chunk-IXOQDZWC.js.map +0 -1
  128. package/dist/chunk-QKLJU4JX.js.map +0 -1
  129. package/dist/chunk-S4E6QQEM.js.map +0 -1
  130. package/dist/chunk-UYZ53KWS.js.map +0 -1
  131. package/dist/chunk-VD4EG6SG.js.map +0 -1
  132. package/dist/chunk-VKRGQLY4.js +0 -201
  133. package/dist/chunk-VKRGQLY4.js.map +0 -1
  134. package/dist/chunk-X457NOFE.js.map +0 -1
  135. package/dist/doctor-UNF7FCF4.js.map +0 -1
  136. package/dist/install-7O4XWH7T.js +0 -96
  137. package/dist/install-7O4XWH7T.js.map +0 -1
  138. package/dist/jetbrains-copilot-4IOT3I2Y.js.map +0 -1
  139. package/dist/kiro-YZ4TTZGD.js.map +0 -1
  140. package/dist/openclaw-BD56E5MV.js +0 -17
  141. package/dist/pi-I7BLL4EI.js.map +0 -1
  142. package/dist/uninstall-TWPUEJEC.js.map +0 -1
  143. package/dist/upgrade-EM6Y7QLH.js.map +0 -1
  144. package/dist/vscode-copilot-LU5NC4ZS.js.map +0 -1
  145. package/dist/zed-LLOAUXSA.js.map +0 -1
  146. /package/dist/{action-OHGFVKMC.js.map → action-CVIEPX4U.js.map} +0 -0
  147. /package/dist/{amazon-q-B52EY2SV.js.map → amazon-q-TIT7FIW3.js.map} +0 -0
  148. /package/dist/{amp-UXABVUKC.js.map → amp-NF3OAAUG.js.map} +0 -0
  149. /package/dist/{antigravity-RZHN53VB.js.map → antigravity-7LPK7QOY.js.map} +0 -0
  150. /package/dist/{chunk-UBB7T54N.js.map → chunk-3C5AASHM.js.map} +0 -0
  151. /package/dist/{chunk-LKAVD4HP.js.map → chunk-447JWFZO.js.map} +0 -0
  152. /package/dist/{chunk-HORHRHNG.js.map → chunk-4NHXLXSD.js.map} +0 -0
  153. /package/dist/{chunk-AY3RGRTT.js.map → chunk-6TF7MHG5.js.map} +0 -0
  154. /package/dist/{chunk-AMK2K6XZ.js.map → chunk-7UT6OB52.js.map} +0 -0
  155. /package/dist/{chunk-PZHB5TVA.js.map → chunk-AY3VFNOH.js.map} +0 -0
  156. /package/dist/{chunk-ZXX5DVSE.js.map → chunk-FBCBHEGB.js.map} +0 -0
  157. /package/dist/{chunk-4NSU3KWX.js.map → chunk-FJCUKXGX.js.map} +0 -0
  158. /package/dist/{chunk-4FWETID5.js.map → chunk-IVAWP6HH.js.map} +0 -0
  159. /package/dist/{chunk-NBUEL74R.js.map → chunk-JFXL4HYA.js.map} +0 -0
  160. /package/dist/{chunk-7NXEHZAK.js.map → chunk-JVO6NBTT.js.map} +0 -0
  161. /package/dist/{chunk-YJP3KGLM.js.map → chunk-L26PSQTY.js.map} +0 -0
  162. /package/dist/{chunk-YYNXIUR2.js.map → chunk-M2H7JURF.js.map} +0 -0
  163. /package/dist/{chunk-56R2ER7K.js.map → chunk-NBYKLUF6.js.map} +0 -0
  164. /package/dist/{chunk-IRUYJD23.js.map → chunk-NLE2J5P4.js.map} +0 -0
  165. /package/dist/{chunk-LN76OGNR.js.map → chunk-Z2MRSS2I.js.map} +0 -0
  166. /package/dist/{claude-code-T6ZRCMA7.js.map → claude-code-7RS4YVGZ.js.map} +0 -0
  167. /package/dist/{cline-NNMVCECA.js.map → cline-BZQAUYPC.js.map} +0 -0
  168. /package/dist/{codebuff-RJIDSEU3.js.map → codebuff-5RLTLZAU.js.map} +0 -0
  169. /package/dist/{continue-MNM7YVJY.js.map → continue-JLIB7R7X.js.map} +0 -0
  170. /package/dist/{copilot-cli-SMTX5F65.js.map → copilot-cli-XZSUYNQZ.js.map} +0 -0
  171. /package/dist/{crush-NYDBHIJE.js.map → crush-ESERLVLT.js.map} +0 -0
  172. /package/dist/{cursor-AOELDNZU.js.map → cursor-FUDOV5VK.js.map} +0 -0
  173. /package/dist/{detect-ALAKE54S.js.map → detect-Z5BDTY6B.js.map} +0 -0
  174. /package/dist/{droid-PTCH2K7Y.js.map → droid-DTO5POTK.js.map} +0 -0
  175. /package/dist/{gemini-cli-QGLN2UMS.js.map → gemini-cli-RBIG6U2F.js.map} +0 -0
  176. /package/dist/{goose-DQ6GSZ5O.js.map → goose-VGNOP5J2.js.map} +0 -0
  177. /package/dist/{hermes-E47IG63A.js.map → hermes-NUKFWZI5.js.map} +0 -0
  178. /package/dist/{hook-GM2IDA3C.js.map → hook-XPR3AHDI.js.map} +0 -0
  179. /package/dist/{kilo-TAHOPT2Q.js.map → kilo-JLH3KVZJ.js.map} +0 -0
  180. /package/dist/{kilo-cli-X4NPJWGX.js.map → kilo-cli-5W36VJQZ.js.map} +0 -0
  181. /package/dist/{kimi-Z7L2LEEI.js.map → kimi-R62W7HKZ.js.map} +0 -0
  182. /package/dist/{leaderboard-DVW4WYJ6.js.map → leaderboard-YWMOSJBC.js.map} +0 -0
  183. /package/dist/{mimo-code-G2CBZ4M6.js.map → mimo-code-PGLFFVER.js.map} +0 -0
  184. /package/dist/{mux-JNM3F2NW.js.map → mux-HWL4N5KH.js.map} +0 -0
  185. /package/dist/{nemoclaw-SHA4IUML.js.map → nemoclaw-QPHETUXM.js.map} +0 -0
  186. /package/dist/{omp-OOVUNXME.js.map → omp-3TFMTJ5U.js.map} +0 -0
  187. /package/dist/{openclaw-BD56E5MV.js.map → openclaw-RYFO5TLY.js.map} +0 -0
  188. /package/dist/{opencode-W2RK4M7G.js.map → opencode-JX7GBE5Q.js.map} +0 -0
  189. /package/dist/{package-H5V3AZHR.js.map → package-2KKUGZFS.js.map} +0 -0
  190. /package/dist/{qwen-code-JG7AF442.js.map → qwen-code-ISR6BEET.js.map} +0 -0
  191. /package/dist/{roo-code-L5F7S6QH.js.map → roo-code-6TSCME4R.js.map} +0 -0
  192. /package/dist/{serve-WMO2TUW3.js.map → serve-EPRN7F2X.js.map} +0 -0
  193. /package/dist/{status-WRLBTBRE.js.map → status-B2PG6YKR.js.map} +0 -0
  194. /package/dist/{statusline-EUD4DMIP.js.map → statusline-5ERFMYSM.js.map} +0 -0
  195. /package/dist/{telemetry-U3LGMR3D.js.map → telemetry-ZMCAWBWB.js.map} +0 -0
  196. /package/dist/{trae-Z7CQ2A2Q.js.map → trae-7KDCYIMN.js.map} +0 -0
  197. /package/dist/{usage-3HQDTXGY.js.map → usage-5I72HWCR.js.map} +0 -0
  198. /package/dist/{usage-event-DWIGKO7V.js.map → usage-event-HIX4ZI45.js.map} +0 -0
  199. /package/dist/{warp-4PPG5LOM.js.map → warp-KJUCWEA3.js.map} +0 -0
  200. /package/dist/{windsurf-3T3RVXKM.js.map → windsurf-5TGGQR5I.js.map} +0 -0
@@ -1,10 +1,13 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ renderBridgePrelude
4
+ } from "./chunk-FBJQGRET.js";
2
5
  import {
3
6
  BaseAdapter
4
- } from "./chunk-VVFDU4IX.js";
5
- import "./chunk-HORHRHNG.js";
6
- import "./chunk-YYNXIUR2.js";
7
- import "./chunk-IXOQDZWC.js";
7
+ } from "./chunk-WFEHWTLM.js";
8
+ import "./chunk-4NHXLXSD.js";
9
+ import "./chunk-M2H7JURF.js";
10
+ import "./chunk-GZGLCCEE.js";
8
11
 
9
12
  // src/adapters/pi/index.ts
10
13
  import { existsSync } from "fs";
@@ -42,7 +45,13 @@ var PiAdapter = class extends BaseAdapter {
42
45
  // Content surfaces: prompt-template commands + skills.
43
46
  supportsCommands: true,
44
47
  supportsSkills: true,
45
- supportsSubagents: false
48
+ supportsSubagents: false,
49
+ // Action surface: each declared action becomes a user-invokable command
50
+ // registered INSIDE a generated TS extension module (pi.registerCommand),
51
+ // shelling out to the home-bin `action` verb — the SAME mechanism the omp
52
+ // fork uses (omp's action support was inferred FROM pi). supportsActions →
53
+ // the installActions/uninstallActions overrides below.
54
+ supportsActions: true
46
55
  };
47
56
  // ── Detection ────────────────────────────────────────────────────────────
48
57
  detectInstalled(projectDir) {
@@ -106,6 +115,21 @@ var PiAdapter = class extends BaseAdapter {
106
115
  skillDir(ctx, name) {
107
116
  return join(this.skillsDir(ctx), name);
108
117
  }
118
+ /**
119
+ * Extension package dir Pi loads the action module from, per scope:
120
+ * project scope → <projectDir>/.pi/extensions/<id>/
121
+ * user scope → ~/.pi/agent/extensions/<id>/
122
+ * (mirrors the prompts/skills scope split; the OMP fork uses the analogous
123
+ * <agentDir>/extensions/<id>/ path.)
124
+ */
125
+ extensionDir(ctx) {
126
+ const base = ctx.scope === "project" ? join(ctx.projectDir, ".pi") : join(homedir(), ".pi", "agent");
127
+ return join(base, "extensions", ctx.connector.id);
128
+ }
129
+ /** The generated action extension entry module: <extensionDir>/index.js. */
130
+ actionEntryPath(ctx) {
131
+ return join(this.extensionDir(ctx), "index.js");
132
+ }
109
133
  // ── MCP server (unavailable — Pi has no writable MCP config) ─────────────
110
134
  installServer(_ctx) {
111
135
  return [
@@ -261,6 +285,112 @@ var PiAdapter = class extends BaseAdapter {
261
285
  if (skill.extra) Object.assign(frontmatter, skill.extra);
262
286
  return this.renderFrontmatterMd(frontmatter, skill.body);
263
287
  }
288
+ // ── Action surface (slash commands in a generated extension module) ───────
289
+ // Each declared action becomes a pi.registerCommand(...) inside a generated,
290
+ // self-contained TS extension module (<extensionDir>/index.js). This mirrors
291
+ // the OMP adapter's emitter near-verbatim (omp wraps Pi; its action support was
292
+ // inferred FROM Pi). UNLIKE omp the module is NOT shared with a hook surface —
293
+ // Pi has no lifecycle hook layer here — so it is actions-only AND
294
+ // uninstallActions owns the teardown directly (no uninstallHooks to delegate to).
295
+ // Idempotent (byte-identical → skip) via writeManagedFile; honors
296
+ // platforms["pi"].actions === false and the empty-actions skip.
297
+ installActions(ctx) {
298
+ const entryPath = this.actionEntryPath(ctx);
299
+ if (ctx.connector.platforms[HOST]?.actions === false) {
300
+ return [{ platform: this.id, action: "skip", path: entryPath, detail: "actions disabled for pi" }];
301
+ }
302
+ if (this.actionTriggers(ctx).length === 0) {
303
+ return [{ platform: this.id, action: "skip", path: entryPath, detail: "connector declares no actions" }];
304
+ }
305
+ return this.synthesizeExtension(ctx).map(
306
+ (file) => this.writeManagedFile(
307
+ file.path,
308
+ file.contents,
309
+ ctx.dryRun,
310
+ "pi extension module (action commands)",
311
+ file.executable
312
+ )
313
+ );
314
+ }
315
+ uninstallActions(ctx) {
316
+ const entryPath = this.actionEntryPath(ctx);
317
+ if (!existsSync(entryPath)) {
318
+ return [{ platform: this.id, action: "skip", path: entryPath, detail: "no pi extension present" }];
319
+ }
320
+ const changes = [
321
+ this.removeManagedFile(entryPath, ctx.dryRun, "pi extension module", "no pi extension module present")
322
+ ];
323
+ changes.push(this.removeDirIfEmpty(this.extensionDir(ctx), ctx.dryRun));
324
+ return changes;
325
+ }
326
+ /**
327
+ * Build the Pi action extension: a single self-contained ESM module
328
+ * (<extensionDir>/index.js) whose default export is the Pi plugin factory
329
+ * `(pi) => void`. It imports nothing from agent-connector. For each declared
330
+ * action it calls `pi.registerCommand(action.id, { handler })`; the handler
331
+ * shells out to the stable home binary's `action pi <id>` verb over
332
+ * child_process (fail-open). Mirrors the OMP adapter's registerCommand emission
333
+ * (the shared renderBridgePrelude head + the per-action block), minus the hook
334
+ * handlers Pi has no surface for.
335
+ */
336
+ synthesizeExtension(ctx) {
337
+ return [
338
+ {
339
+ path: this.actionEntryPath(ctx),
340
+ contents: this.buildExtensionSource(ctx),
341
+ executable: false
342
+ }
343
+ ];
344
+ }
345
+ /** Compose the generated extension source with plain string concatenation. */
346
+ buildExtensionSource(ctx) {
347
+ const header = `/**
348
+ * AUTO-GENERATED by agent-connector \u2014 DO NOT EDIT.
349
+ *
350
+ * Self-contained Pi extension for connector ${ctx.connector.id}. It imports
351
+ * nothing from agent-connector: each registered command shells out to the stable
352
+ * home binary's universal action entrypoint. Fail-open: any launcher error
353
+ * degrades to a no-op (never wedges Pi).
354
+ *
355
+ * Pi loads this module and calls its DEFAULT export, the plugin factory
356
+ * (pi) => void, once at load time; each pi.registerCommand(...) wires one
357
+ * user-invokable command.
358
+ */
359
+ import { execFileSync, execSync } from "node:child_process";
360
+
361
+ ${renderBridgePrelude({
362
+ homeBin: ctx.homeBinPath,
363
+ connectorId: ctx.connector.id,
364
+ hookSlug: "pi",
365
+ payloadNoun: "Pi",
366
+ failOpenComment: "Fail-open \u2014 never break a Pi command invocation."
367
+ })}
368
+ `;
369
+ const actionHandlers = [];
370
+ for (const action of this.actionTriggers(ctx)) {
371
+ const id = JSON.stringify(action.id);
372
+ const description = JSON.stringify(action.description);
373
+ actionHandlers.push(` // Action /${action.id} \u2192 run the home-bin action verb directly.
374
+ pi.registerCommand(${id}, {
375
+ description: ${description},
376
+ handler: async (_args, _ctx) => {
377
+ try {
378
+ const args = ["action", "pi", ${id}, "--connector", CONNECTOR_ID];
379
+ process.platform === "win32"
380
+ ? execSync([HOME_BIN, ...args].map((a) => '"' + a + '"').join(" "), { stdio: "inherit" })
381
+ : execFileSync(HOME_BIN, args, { stdio: "inherit" });
382
+ } catch { /* fail-open */ }
383
+ return undefined;
384
+ },
385
+ });`);
386
+ }
387
+ const factory = `
388
+ export default function plugin(pi) {
389
+ ${actionHandlers.join("\n\n")}
390
+ }
391
+ `;
392
+ return header + factory;
393
+ }
264
394
  // ── Diagnostics ──────────────────────────────────────────────────────────
265
395
  getHealthChecks(ctx) {
266
396
  const checks = [];
@@ -278,6 +408,13 @@ var PiAdapter = class extends BaseAdapter {
278
408
  check: () => existsSync(p) ? { status: "OK", detail: p } : { status: "FAIL", detail: `not found: ${p}` }
279
409
  });
280
410
  }
411
+ if (this.actionTriggers(ctx).length > 0 && ctx.connector.platforms[HOST]?.actions !== false) {
412
+ const p = this.actionEntryPath(ctx);
413
+ checks.push({
414
+ name: `${this.name}: action extension present`,
415
+ check: () => existsSync(p) ? { status: "OK", detail: p } : { status: "FAIL", detail: `not found: ${p}` }
416
+ });
417
+ }
281
418
  return checks;
282
419
  }
283
420
  };
@@ -288,4 +425,4 @@ export {
288
425
  adapter,
289
426
  pi_default as default
290
427
  };
291
- //# sourceMappingURL=pi-I7BLL4EI.js.map
428
+ //# sourceMappingURL=pi-MRI3EBWU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/pi/index.ts"],"sourcesContent":["/**\n * adapters/pi — Pi platform adapter for agent-connector.\n *\n * Pi is a file-based-skills host with NO writable MCP config and a native\n * prompt-template (slash command) surface. It has no lifecycle hook system in\n * the json-stdio or ts-plugin sense. Its extensibility surfaces are:\n *\n * - server → single \"skip\" (Pi has no writable MCP config).\n * - hooks → single \"skip\" (no json-stdio / ts-plugin hook layer).\n * - commands → write prompt templates under <piPromptsDir>/<name>.md.\n * project scope → <projectDir>/.pi/prompts/<name>.md\n * user scope → ~/.pi/agent/prompts/<name>.md\n * - skills → write <piSkillsDir>/<name>/SKILL.md (+ declared resources).\n * project scope → <projectDir>/.pi/skills/<name>/SKILL.md\n * user scope → ~/.pi/agent/skills/<name>/SKILL.md\n * - actions → write a self-contained TS extension module that calls\n * pi.registerCommand(<action.id>, { handler }) once per action.\n * project scope → <projectDir>/.pi/extensions/<id>/index.js\n * user scope → ~/.pi/agent/extensions/<id>/index.js\n * Each handler shells out to the home-bin `action pi <id>` verb\n * (the SAME mechanism the OMP fork — which wraps Pi — uses for its\n * action surface). Unlike OMP this module wires NO hook handlers:\n * Pi has no lifecycle hook layer here, so it is actions-only.\n * - subagents → unsupported (BaseAdapter skip/warn).\n *\n * Ground-truth refs (docs/research/kilo-pi-ground-truth.md):\n * - prompt templates: docs/prompt-templates.md → ~/.pi/agent/prompts/*.md\n * and .pi/prompts/*.md, invoked as /name.\n * - global skills: ~/.pi/agent/skills/<n>/SKILL.md (NOT ~/.pi/skills/).\n * - project skills: .pi/skills/<n>/SKILL.md (unchanged).\n * - allowed-tools: space-delimited (NOT comma-delimited).\n * - extensions: Pi loads TS extension modules that call pi.registerCommand(...);\n * the OMP adapter (Oh My Pi, a Pi fork) proved this exact mechanism — its\n * supportsActions emission was inferred FROM Pi. We mirror omp's emitter.\n */\n\nimport { existsSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nimport { BaseAdapter } from \"../base.js\";\nimport type { Adapter, GeneratedPluginFile, InstallContext } from \"../spi.js\";\nimport type {\n ChangeRecord,\n CommandDef,\n DetectedPlatform,\n HealthCheck,\n HookParadigm,\n PlatformCapabilities,\n PlatformId,\n SkillDef,\n} from \"../../core/types.js\";\nimport { renderBridgePrelude } from \"../../core/ts-plugin-bridge.js\";\n\nconst HOST: PlatformId = \"pi\";\n\nexport class PiAdapter extends BaseAdapter implements Adapter {\n readonly id: PlatformId = HOST;\n readonly name = \"Pi\";\n /**\n * Pi has no MCP surface at all — the paradigm label \"mcp-only\" is backwards\n * for a host with NO writable MCP config. Pi is purely a content-surface host\n * (skills + prompt templates). Use \"mcp-only\" only because the HookParadigm\n * union has no \"no-mcp\" variant; MCP is explicitly unsupported below.\n */\n readonly paradigm: HookParadigm = \"mcp-only\";\n\n readonly capabilities: PlatformCapabilities = {\n // Memory surface: AGENTS.md-first managed block via the BaseAdapter default\n // (user scope: ~/.pi/agent/AGENTS.md per base.ts AGENTS_MD_USER_PATHS).\n supportsMemory: true,\n // Pi has no json-stdio / ts-plugin lifecycle hook system.\n preToolUse: false,\n postToolUse: false,\n preCompact: false,\n sessionStart: false,\n sessionEnd: false,\n userPromptSubmit: false,\n stop: false,\n notification: false,\n canModifyArgs: false,\n canModifyOutput: false,\n canInjectSessionContext: false,\n // No writable MCP config.\n transports: [],\n // Content surfaces: prompt-template commands + skills.\n supportsCommands: true,\n supportsSkills: true,\n supportsSubagents: false,\n // Action surface: each declared action becomes a user-invokable command\n // registered INSIDE a generated TS extension module (pi.registerCommand),\n // shelling out to the home-bin `action` verb — the SAME mechanism the omp\n // fork uses (omp's action support was inferred FROM pi). supportsActions →\n // the installActions/uninstallActions overrides below.\n supportsActions: true,\n };\n\n // ── Detection ────────────────────────────────────────────────────────────\n\n detectInstalled(projectDir: string): DetectedPlatform {\n const userDir = join(homedir(), \".pi\");\n const projDir = join(projectDir, \".pi\");\n\n const userInstalled = existsSync(userDir);\n const projInstalled = existsSync(projDir);\n const installed = userInstalled || projInstalled;\n const scope = projInstalled && !userInstalled ? \"project\" : \"user\";\n const configPath = scope === \"project\" ? projDir : userDir;\n\n return {\n id: this.id,\n name: this.name,\n installed,\n paradigm: this.paradigm,\n capabilities: this.capabilities,\n configPath,\n scope,\n reason: installed\n ? `found Pi config (${scope}) at ${configPath}`\n : `no .pi config at ${userDir} or ${projDir}`,\n confidence: installed ? \"high\" : \"low\",\n };\n }\n\n // ── Native paths ─────────────────────────────────────────────────────────\n\n /**\n * Base config dir (used for server/hook doctor paths only; content surfaces\n * use dedicated helpers below so the scope split is explicit).\n */\n getConfigDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".pi\")\n : join(homedir(), \".pi\");\n }\n\n /**\n * Pi has no writable MCP config. Returning the config dir keeps the generic\n * doctor/backup sensible while installServer always skips.\n */\n getServerConfigPath(ctx: InstallContext): string {\n return this.getConfigDir(ctx);\n }\n\n /** Pi has no hook file — point at the config dir for generic doctor/backup. */\n getHookConfigPath(ctx: InstallContext): string {\n return this.getConfigDir(ctx);\n }\n\n /**\n * Prompt-templates dir (slash commands):\n * project scope → <projectDir>/.pi/prompts/\n * user scope → ~/.pi/agent/prompts/\n * (ground truth: docs/prompt-templates.md)\n */\n private promptsDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".pi\", \"prompts\")\n : join(homedir(), \".pi\", \"agent\", \"prompts\");\n }\n\n /**\n * Skills dir:\n * project scope → <projectDir>/.pi/skills/\n * user scope → ~/.pi/agent/skills/\n * (ground truth: ~/.pi/agent/skills/ is what Pi actually reads for global skills)\n */\n private skillsDir(ctx: InstallContext): string {\n return ctx.scope === \"project\"\n ? join(ctx.projectDir, \".pi\", \"skills\")\n : join(homedir(), \".pi\", \"agent\", \"skills\");\n }\n\n /** Native skill dir: <skillsDir>/<name>. */\n private skillDir(ctx: InstallContext, name: string): string {\n return join(this.skillsDir(ctx), name);\n }\n\n /**\n * Extension package dir Pi loads the action module from, per scope:\n * project scope → <projectDir>/.pi/extensions/<id>/\n * user scope → ~/.pi/agent/extensions/<id>/\n * (mirrors the prompts/skills scope split; the OMP fork uses the analogous\n * <agentDir>/extensions/<id>/ path.)\n */\n private extensionDir(ctx: InstallContext): string {\n const base =\n ctx.scope === \"project\"\n ? join(ctx.projectDir, \".pi\")\n : join(homedir(), \".pi\", \"agent\");\n return join(base, \"extensions\", ctx.connector.id);\n }\n\n /** The generated action extension entry module: <extensionDir>/index.js. */\n private actionEntryPath(ctx: InstallContext): string {\n return join(this.extensionDir(ctx), \"index.js\");\n }\n\n // ── MCP server (unavailable — Pi has no writable MCP config) ─────────────\n\n installServer(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"Pi has no writable MCP config\",\n },\n ];\n }\n\n uninstallServer(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"Pi has no writable MCP config\",\n },\n ];\n }\n\n // ── Hooks (unavailable — Pi has no json-stdio/ts-plugin hook layer) ───────\n\n installHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Pi has no hook layer)\",\n },\n ];\n }\n\n uninstallHooks(_ctx: InstallContext): ChangeRecord[] {\n return [\n {\n platform: this.id,\n action: \"skip\",\n detail: \"hooks unavailable (Pi has no hook layer)\",\n },\n ];\n }\n\n // ── Content surface: commands (prompt templates) ─────────────────────────\n // Pi slash commands are prompt template files: <promptsDir>/<name>.md.\n // Idempotent (byte-identical → skip) via BaseAdapter.writeContentFile and\n // reversible via removeContentFile. Honors platforms[\"pi\"].commands === false.\n\n /** Native prompt-template file path: <promptsDir>/<name>.md. */\n private commandPath(ctx: InstallContext, name: string): string {\n return join(this.promptsDir(ctx), `${name}.md`);\n }\n\n override installCommands(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.platforms[HOST]?.commands === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"commands disabled for pi\" }];\n }\n if (connector.commands.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no commands\" }];\n }\n return connector.commands.map((cmd) =>\n this.writeContentFile(\n this.commandPath(ctx, cmd.name),\n this.renderCommand(cmd),\n ctx.dryRun,\n ),\n );\n }\n\n override uninstallCommands(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.commands.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no commands\" }];\n }\n return connector.commands.map((cmd) =>\n this.removeContentFile(this.commandPath(ctx, cmd.name), ctx.dryRun),\n );\n }\n\n /**\n * Render a command as a Pi prompt template (md+frontmatter).\n * Pi's format mirrors the generic command render: description, optional model,\n * optional argument-hint. The body is the prompt template text.\n */\n private renderCommand(cmd: CommandDef): string {\n const frontmatter: Record<string, unknown> = {};\n if (cmd.description !== undefined) frontmatter.description = cmd.description;\n if (cmd.model !== undefined) frontmatter.model = cmd.model;\n if (cmd.argumentHint !== undefined) frontmatter[\"argument-hint\"] = cmd.argumentHint;\n if (cmd.extra) Object.assign(frontmatter, cmd.extra);\n return this.renderFrontmatterMd(frontmatter, cmd.prompt);\n }\n\n // ── Content surface: skills ──────────────────────────────────────────────\n // CONTENT-ONLY: pure native-file writer under <skillsDir>/<name>.\n // Idempotent (byte-identical → skip) via BaseAdapter.writeContentFile and\n // reversible via removeContentFile. Honors platforms[\"pi\"].skills === false.\n\n override installSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.platforms[HOST]?.skills === false) {\n return [{ platform: this.id, action: \"skip\", detail: \"skills disabled for pi\" }];\n }\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n const dir = this.skillDir(ctx, skill.name);\n changes.push(\n this.writeContentFile(join(dir, \"SKILL.md\"), this.renderSkill(skill), ctx.dryRun),\n );\n // Bundle any resource files beside SKILL.md (relative path → contents).\n // Defense-in-depth: skip+warn on any key that escapes the skill dir.\n for (const [rel, contents] of Object.entries(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) {\n changes.push({\n platform: this.id,\n action: \"warn\",\n detail: `skill resource \"${rel}\" escapes the skill dir; skipped`,\n });\n continue;\n }\n changes.push(this.writeContentFile(target, contents, ctx.dryRun));\n }\n }\n return changes;\n }\n\n override uninstallSkills(ctx: InstallContext): ChangeRecord[] {\n const { connector } = ctx;\n if (connector.skills.length === 0) {\n return [{ platform: this.id, action: \"skip\", detail: \"connector declares no skills\" }];\n }\n const changes: ChangeRecord[] = [];\n for (const skill of connector.skills) {\n const dir = this.skillDir(ctx, skill.name);\n changes.push(this.removeContentFile(join(dir, \"SKILL.md\"), ctx.dryRun));\n for (const rel of Object.keys(skill.resources ?? {})) {\n const target = this.resolveWithin(dir, rel);\n if (target === null) continue;\n changes.push(this.removeContentFile(target, ctx.dryRun));\n }\n // Only remove the skill dir when WE own its full contents.\n changes.push(this.removeDirIfEmpty(dir, ctx.dryRun));\n }\n return changes;\n }\n\n /**\n * Render a skill's SKILL.md.\n *\n * Pi's allowed-tools field is SPACE-delimited (not comma-delimited).\n * Every other field follows the uniform SKILL.md convention.\n */\n private renderSkill(skill: SkillDef): string {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description,\n };\n if (skill.model !== undefined) frontmatter.model = skill.model;\n const allow = skill.tools?.allow;\n // Pi reads allowed-tools as space-separated — NOT the \", \" used by other hosts.\n if (allow && allow.length > 0) frontmatter[\"allowed-tools\"] = allow.join(\" \");\n if (skill.disableModelInvocation !== undefined) {\n frontmatter[\"disable-model-invocation\"] = skill.disableModelInvocation;\n }\n if (skill.extra) Object.assign(frontmatter, skill.extra);\n return this.renderFrontmatterMd(frontmatter, skill.body);\n }\n\n // ── Action surface (slash commands in a generated extension module) ───────\n // Each declared action becomes a pi.registerCommand(...) inside a generated,\n // self-contained TS extension module (<extensionDir>/index.js). This mirrors\n // the OMP adapter's emitter near-verbatim (omp wraps Pi; its action support was\n // inferred FROM Pi). UNLIKE omp the module is NOT shared with a hook surface —\n // Pi has no lifecycle hook layer here — so it is actions-only AND\n // uninstallActions owns the teardown directly (no uninstallHooks to delegate to).\n // Idempotent (byte-identical → skip) via writeManagedFile; honors\n // platforms[\"pi\"].actions === false and the empty-actions skip.\n\n override installActions(ctx: InstallContext): ChangeRecord[] {\n const entryPath = this.actionEntryPath(ctx);\n if (ctx.connector.platforms[HOST]?.actions === false) {\n return [{ platform: this.id, action: \"skip\", path: entryPath, detail: \"actions disabled for pi\" }];\n }\n if (this.actionTriggers(ctx).length === 0) {\n return [{ platform: this.id, action: \"skip\", path: entryPath, detail: \"connector declares no actions\" }];\n }\n return this.synthesizeExtension(ctx).map((file) =>\n this.writeManagedFile(\n file.path,\n file.contents,\n ctx.dryRun,\n \"pi extension module (action commands)\",\n file.executable,\n ),\n );\n }\n\n override uninstallActions(ctx: InstallContext): ChangeRecord[] {\n const entryPath = this.actionEntryPath(ctx);\n if (!existsSync(entryPath)) {\n return [{ platform: this.id, action: \"skip\", path: entryPath, detail: \"no pi extension present\" }];\n }\n const changes: ChangeRecord[] = [\n this.removeManagedFile(entryPath, ctx.dryRun, \"pi extension module\", \"no pi extension module present\"),\n ];\n // Only remove the extension dir when we own its full contents (we write a\n // single index.js into a per-connector dir, so this is normally now empty).\n changes.push(this.removeDirIfEmpty(this.extensionDir(ctx), ctx.dryRun));\n return changes;\n }\n\n /**\n * Build the Pi action extension: a single self-contained ESM module\n * (<extensionDir>/index.js) whose default export is the Pi plugin factory\n * `(pi) => void`. It imports nothing from agent-connector. For each declared\n * action it calls `pi.registerCommand(action.id, { handler })`; the handler\n * shells out to the stable home binary's `action pi <id>` verb over\n * child_process (fail-open). Mirrors the OMP adapter's registerCommand emission\n * (the shared renderBridgePrelude head + the per-action block), minus the hook\n * handlers Pi has no surface for.\n */\n private synthesizeExtension(ctx: InstallContext): GeneratedPluginFile[] {\n return [\n {\n path: this.actionEntryPath(ctx),\n contents: this.buildExtensionSource(ctx),\n executable: false,\n },\n ];\n }\n\n /** Compose the generated extension source with plain string concatenation. */\n private buildExtensionSource(ctx: InstallContext): string {\n const header = `/**\n * AUTO-GENERATED by agent-connector — DO NOT EDIT.\n *\n * Self-contained Pi extension for connector ${ctx.connector.id}. It imports\n * nothing from agent-connector: each registered command shells out to the stable\n * home binary's universal action entrypoint. Fail-open: any launcher error\n * degrades to a no-op (never wedges Pi).\n *\n * Pi loads this module and calls its DEFAULT export, the plugin factory\n * (pi) => void, once at load time; each pi.registerCommand(...) wires one\n * user-invokable command.\n */\nimport { execFileSync, execSync } from \"node:child_process\";\n\n${renderBridgePrelude({\n homeBin: ctx.homeBinPath,\n connectorId: ctx.connector.id,\n hookSlug: \"pi\",\n payloadNoun: \"Pi\",\n failOpenComment: \"Fail-open — never break a Pi command invocation.\",\n})}\n`;\n\n // Action surface: one pi.registerCommand per declared action. The command\n // shells out to the home-bin `action` verb (host token literal \"pi\"). Both id\n // AND description are JSON.stringify'd — descriptions are free-form connector\n // text, so a raw \" / backtick would break the module.\n const actionHandlers: string[] = [];\n for (const action of this.actionTriggers(ctx)) {\n const id = JSON.stringify(action.id);\n const description = JSON.stringify(action.description);\n actionHandlers.push(` // Action /${action.id} → run the home-bin action verb directly.\n pi.registerCommand(${id}, {\n description: ${description},\n handler: async (_args, _ctx) => {\n try {\n const args = [\"action\", \"pi\", ${id}, \"--connector\", CONNECTOR_ID];\n process.platform === \"win32\"\n ? execSync([HOME_BIN, ...args].map((a) => '\"' + a + '\"').join(\" \"), { stdio: \"inherit\" })\n : execFileSync(HOME_BIN, args, { stdio: \"inherit\" });\n } catch { /* fail-open */ }\n return undefined;\n },\n });`);\n }\n\n const factory = `\nexport default function plugin(pi) {\n${actionHandlers.join(\"\\n\\n\")}\n}\n`;\n\n return header + factory;\n }\n\n // ── Diagnostics ──────────────────────────────────────────────────────────\n\n override getHealthChecks(ctx: InstallContext): readonly HealthCheck[] {\n const checks: HealthCheck[] = [];\n\n // Command (prompt-template) checks.\n for (const cmd of ctx.connector.commands) {\n const p = this.commandPath(ctx, cmd.name);\n checks.push({\n name: `${this.name}: command ${cmd.name} present`,\n check: () =>\n existsSync(p)\n ? { status: \"OK\", detail: p }\n : { status: \"FAIL\", detail: `not found: ${p}` },\n });\n }\n\n // Skill-surface checks.\n for (const skill of ctx.connector.skills) {\n const p = join(this.skillDir(ctx, skill.name), \"SKILL.md\");\n checks.push({\n name: `${this.name}: skill ${skill.name} present`,\n check: () =>\n existsSync(p)\n ? { status: \"OK\", detail: p }\n : { status: \"FAIL\", detail: `not found: ${p}` },\n });\n }\n\n // Action-surface check: the generated extension module carries every action,\n // so a connector declaring actions must have written it (unless opted out).\n if (\n this.actionTriggers(ctx).length > 0 &&\n ctx.connector.platforms[HOST]?.actions !== false\n ) {\n const p = this.actionEntryPath(ctx);\n checks.push({\n name: `${this.name}: action extension present`,\n check: () =>\n existsSync(p)\n ? { status: \"OK\", detail: p }\n : { status: \"FAIL\", detail: `not found: ${p}` },\n });\n }\n return checks;\n }\n}\n\nexport const adapter = new PiAdapter();\nexport default adapter;\n"],"mappings":"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","names":[]}
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ writeTomlString
4
+ } from "./chunk-OPXAP3AC.js";
2
5
  import {
3
6
  addLedgerOwner,
4
7
  createLedgerEntry,
@@ -11,10 +14,7 @@ import {
11
14
  loadConfigPatchLedger,
12
15
  removeLedgerOwner,
13
16
  saveConfigPatchLedger
14
- } from "./chunk-56R2ER7K.js";
15
- import {
16
- writeTomlString
17
- } from "./chunk-OPXAP3AC.js";
17
+ } from "./chunk-NBYKLUF6.js";
18
18
  import {
19
19
  normalizeSessionSource
20
20
  } from "./chunk-H53QZQJI.js";
@@ -24,15 +24,15 @@ import {
24
24
  import {
25
25
  BaseAdapter,
26
26
  renderSkillMd
27
- } from "./chunk-VVFDU4IX.js";
27
+ } from "./chunk-WFEHWTLM.js";
28
28
  import {
29
29
  buildHomeBinStatuslineCommand,
30
30
  buildWrappedStdio,
31
31
  isHomeBinHookCommand,
32
32
  isHomeBinStatuslineCommand
33
- } from "./chunk-HORHRHNG.js";
34
- import "./chunk-YYNXIUR2.js";
35
- import "./chunk-IXOQDZWC.js";
33
+ } from "./chunk-4NHXLXSD.js";
34
+ import "./chunk-M2H7JURF.js";
35
+ import "./chunk-GZGLCCEE.js";
36
36
 
37
37
  // src/adapters/qwen-code/index.ts
38
38
  import { existsSync } from "fs";
@@ -1083,4 +1083,4 @@ export {
1083
1083
  adapter,
1084
1084
  qwen_code_default as default
1085
1085
  };
1086
- //# sourceMappingURL=qwen-code-JG7AF442.js.map
1086
+ //# sourceMappingURL=qwen-code-ISR6BEET.js.map
@@ -6,12 +6,12 @@ import {
6
6
  BaseAdapter,
7
7
  renderCommandMd,
8
8
  renderSkillMd
9
- } from "./chunk-VVFDU4IX.js";
9
+ } from "./chunk-WFEHWTLM.js";
10
10
  import {
11
11
  buildWrappedStdio
12
- } from "./chunk-HORHRHNG.js";
13
- import "./chunk-YYNXIUR2.js";
14
- import "./chunk-IXOQDZWC.js";
12
+ } from "./chunk-4NHXLXSD.js";
13
+ import "./chunk-M2H7JURF.js";
14
+ import "./chunk-GZGLCCEE.js";
15
15
 
16
16
  // src/adapters/roo-code/index.ts
17
17
  import { existsSync } from "fs";
@@ -358,4 +358,4 @@ export {
358
358
  adapter,
359
359
  roo_code_default as default
360
360
  };
361
- //# sourceMappingURL=roo-code-L5F7S6QH.js.map
361
+ //# sourceMappingURL=roo-code-6TSCME4R.js.map
@@ -1,4 +1,4 @@
1
- import { e as HookEventName, P as PlatformId } from '../types-D6RWGXm1.js';
1
+ import { e as HookEventName, P as PlatformId } from '../types-D0RqWxT8.js';
2
2
 
3
3
  /**
4
4
  * runtime/hook-entrypoint — the universal json-stdio hook dispatcher.
@@ -4,24 +4,24 @@ import {
4
4
  runServe,
5
5
  runStatusline,
6
6
  runUsageEvent
7
- } from "../chunk-LKAVD4HP.js";
7
+ } from "../chunk-447JWFZO.js";
8
8
  import "../chunk-OP4KBXUO.js";
9
- import "../chunk-LN76OGNR.js";
10
- import "../chunk-S4E6QQEM.js";
9
+ import "../chunk-Z2MRSS2I.js";
10
+ import "../chunk-FO5CEXXN.js";
11
11
  import {
12
12
  isNativeHookDeclared,
13
13
  runHook,
14
14
  runNativeHook
15
- } from "../chunk-ZXX5DVSE.js";
16
- import "../chunk-4FWETID5.js";
15
+ } from "../chunk-FBCBHEGB.js";
17
16
  import "../chunk-KHO5WNTP.js";
18
- import "../chunk-7NXEHZAK.js";
19
- import "../chunk-PZHB5TVA.js";
20
- import "../chunk-X457NOFE.js";
21
- import "../chunk-56R2ER7K.js";
22
- import "../chunk-HORHRHNG.js";
23
- import "../chunk-YYNXIUR2.js";
24
- import "../chunk-IXOQDZWC.js";
17
+ import "../chunk-IVAWP6HH.js";
18
+ import "../chunk-JVO6NBTT.js";
19
+ import "../chunk-AY3VFNOH.js";
20
+ import "../chunk-KA55FISM.js";
21
+ import "../chunk-NBYKLUF6.js";
22
+ import "../chunk-4NHXLXSD.js";
23
+ import "../chunk-M2H7JURF.js";
24
+ import "../chunk-GZGLCCEE.js";
25
25
  export {
26
26
  isNativeHookDeclared,
27
27
  runAction,
@@ -1,7 +1,7 @@
1
1
  export { ConnectorConfigError, defineAction, defineCommand, defineConfigPatch, defineConnector, defineHook, defineMemory, defineNativeHook, defineSkill, defineStatusline, defineSubagent } from '../index.js';
2
- export { S as SURFACE_PREDICATES, a as SurfaceName, c as capabilitiesOf, h as hostsSupporting, s as surfaceSupport } from '../introspect-5o5ick0_.js';
3
- import { P as PlatformId } from '../types-D6RWGXm1.js';
4
- export { A as ActionDef, a as ActionResult, b as AuthSpec, C as CommandDef, c as ConfigPatchDef, d as ConnectorConfig, E as EventPayloadMap, H as HookDefinition, e as HookEventName, f as HookParadigm, g as HookResponse, h as HooksConfig, i as HostCtx, I as InstallScope, J as JsonValue, M as MemoryDef, N as NativeHookDef, j as NativeHookEvent, k as NotificationEvent, l as PermissionRequestEvent, m as PlatformCapabilities, n as PlatformMemoryOverride, o as PlatformOverride, p as PostToolUseEvent, q as PostToolUseFailureEvent, r as PreCompactEvent, s as PreToolUseEvent, t as PublishConfig, R as ResolvedConnector, S as ServerDef, u as SessionEndEvent, v as SessionStartEvent, w as SkillDef, x as StatuslineContext, y as StatuslineDef, z as StopEvent, B as SubagentDef, D as SubagentStartEvent, F as SubagentStopEvent, G as SurfaceToolPolicy, T as TelemetryAccessor, K as TelemetryConfig, L as TelemetryUsageSummary, O as ToolFilter, Q as Transport, U as UserPromptSubmitEvent } from '../types-D6RWGXm1.js';
2
+ export { S as SURFACE_PREDICATES, a as SurfaceName, c as capabilitiesOf, h as hostsSupporting, s as surfaceSupport } from '../introspect-BkId4LGP.js';
3
+ import { P as PlatformId } from '../types-D0RqWxT8.js';
4
+ export { A as ActionDef, a as ActionResult, b as AuthSpec, C as CommandDef, c as ConfigPatchDef, d as ConnectorConfig, E as EventPayloadMap, H as HookDefinition, e as HookEventName, f as HookParadigm, g as HookResponse, h as HooksConfig, i as HostCtx, I as InstallScope, J as JsonValue, M as MemoryDef, N as NativeHookDef, j as NativeHookEvent, k as NotificationEvent, l as PermissionRequestEvent, m as PlatformCapabilities, n as PlatformMemoryOverride, o as PlatformOverride, p as PostToolUseEvent, q as PostToolUseFailureEvent, r as PreCompactEvent, s as PreToolUseEvent, t as PublishConfig, R as ResolvedConnector, S as ServerDef, u as SessionEndEvent, v as SessionStartEvent, w as SkillDef, x as StatuslineContext, y as StatuslineDef, z as StopEvent, B as SubagentDef, D as SubagentStartEvent, F as SubagentStopEvent, G as SurfaceToolPolicy, T as TelemetryAccessor, K as TelemetryConfig, L as TelemetryUsageSummary, O as ToolFilter, Q as Transport, U as UserPromptSubmitEvent } from '../types-D0RqWxT8.js';
5
5
 
6
6
  /**
7
7
  * sdk/helpers — host-aware authoring helpers for connector handlers.
package/dist/sdk/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  capabilitiesOf,
5
5
  hostsSupporting,
6
6
  surfaceSupport
7
- } from "../chunk-AMK2K6XZ.js";
7
+ } from "../chunk-7UT6OB52.js";
8
8
  import {
9
9
  ConnectorConfigError,
10
10
  defineAction,
@@ -17,11 +17,11 @@ import {
17
17
  defineSkill,
18
18
  defineStatusline,
19
19
  defineSubagent
20
- } from "../chunk-PZHB5TVA.js";
21
- import "../chunk-X457NOFE.js";
22
- import "../chunk-56R2ER7K.js";
23
- import "../chunk-YYNXIUR2.js";
24
- import "../chunk-IXOQDZWC.js";
20
+ } from "../chunk-AY3VFNOH.js";
21
+ import "../chunk-KA55FISM.js";
22
+ import "../chunk-NBYKLUF6.js";
23
+ import "../chunk-M2H7JURF.js";
24
+ import "../chunk-GZGLCCEE.js";
25
25
 
26
26
  // src/sdk/helpers.ts
27
27
  var PREFIXED_HOSTS = /* @__PURE__ */ new Set([
@@ -1,5 +1,5 @@
1
- import { P as PlatformId, e as HookEventName, R as ResolvedConnector } from '../types-D6RWGXm1.js';
2
- import { a as SurfaceName } from '../introspect-5o5ick0_.js';
1
+ import { P as PlatformId, e as HookEventName, R as ResolvedConnector } from '../types-D0RqWxT8.js';
2
+ import { a as SurfaceName } from '../introspect-BkId4LGP.js';
3
3
 
4
4
  /**
5
5
  * sdk/test-harness — the SHIPPED, OFFLINE behavioral harness.
package/dist/sdk/test.js CHANGED
@@ -3,17 +3,17 @@ import {
3
3
  explain,
4
4
  explainHooks,
5
5
  simulate
6
- } from "../chunk-YJP3KGLM.js";
7
- import "../chunk-ZXX5DVSE.js";
8
- import "../chunk-4FWETID5.js";
6
+ } from "../chunk-L26PSQTY.js";
7
+ import "../chunk-FBCBHEGB.js";
9
8
  import "../chunk-KHO5WNTP.js";
10
- import "../chunk-AMK2K6XZ.js";
11
- import "../chunk-7NXEHZAK.js";
12
- import "../chunk-PZHB5TVA.js";
13
- import "../chunk-X457NOFE.js";
14
- import "../chunk-56R2ER7K.js";
15
- import "../chunk-YYNXIUR2.js";
16
- import "../chunk-IXOQDZWC.js";
9
+ import "../chunk-IVAWP6HH.js";
10
+ import "../chunk-7UT6OB52.js";
11
+ import "../chunk-JVO6NBTT.js";
12
+ import "../chunk-AY3VFNOH.js";
13
+ import "../chunk-KA55FISM.js";
14
+ import "../chunk-NBYKLUF6.js";
15
+ import "../chunk-M2H7JURF.js";
16
+ import "../chunk-GZGLCCEE.js";
17
17
  export {
18
18
  explain,
19
19
  explainHooks,
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fail
4
- } from "./chunk-VKRGQLY4.js";
4
+ } from "./chunk-5Z36KVU2.js";
5
5
  import {
6
6
  runServe
7
- } from "./chunk-LKAVD4HP.js";
7
+ } from "./chunk-447JWFZO.js";
8
8
  import "./chunk-OP4KBXUO.js";
9
- import "./chunk-LN76OGNR.js";
10
- import "./chunk-S4E6QQEM.js";
11
- import "./chunk-ZXX5DVSE.js";
12
- import "./chunk-4FWETID5.js";
9
+ import "./chunk-Z2MRSS2I.js";
10
+ import "./chunk-FO5CEXXN.js";
11
+ import "./chunk-FBCBHEGB.js";
13
12
  import "./chunk-KHO5WNTP.js";
14
- import "./chunk-7NXEHZAK.js";
15
- import "./chunk-PZHB5TVA.js";
16
- import "./chunk-X457NOFE.js";
17
- import "./chunk-56R2ER7K.js";
18
- import "./chunk-HORHRHNG.js";
19
- import "./chunk-YYNXIUR2.js";
20
- import "./chunk-IXOQDZWC.js";
13
+ import "./chunk-IVAWP6HH.js";
14
+ import "./chunk-JVO6NBTT.js";
15
+ import "./chunk-AY3VFNOH.js";
16
+ import "./chunk-KA55FISM.js";
17
+ import "./chunk-NBYKLUF6.js";
18
+ import "./chunk-4NHXLXSD.js";
19
+ import "./chunk-M2H7JURF.js";
20
+ import "./chunk-GZGLCCEE.js";
21
21
 
22
22
  // src/cli/commands/serve.ts
23
23
  import { parseArgs } from "util";
@@ -74,4 +74,4 @@ async function run(argv) {
74
74
  export {
75
75
  run
76
76
  };
77
- //# sourceMappingURL=serve-WMO2TUW3.js.map
77
+ //# sourceMappingURL=serve-EPRN7F2X.js.map
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  marketplaceEvidence
4
- } from "./chunk-QKLJU4JX.js";
4
+ } from "./chunk-2Y2MZRLP.js";
5
+ import "./chunk-UM5S7DKK.js";
5
6
  import {
6
7
  fail,
7
8
  parseScope,
8
9
  print
9
- } from "./chunk-VKRGQLY4.js";
10
+ } from "./chunk-5Z36KVU2.js";
10
11
  import {
11
12
  detectInstalledPlatforms
12
- } from "./chunk-S4E6QQEM.js";
13
+ } from "./chunk-FO5CEXXN.js";
13
14
  import {
14
15
  findConnectorConfig,
15
16
  listRegisteredConnectors,
16
17
  loadConnectorFromPath
17
- } from "./chunk-7NXEHZAK.js";
18
- import "./chunk-PZHB5TVA.js";
18
+ } from "./chunk-JVO6NBTT.js";
19
+ import "./chunk-AY3VFNOH.js";
19
20
  import {
20
21
  loadAdapter
21
- } from "./chunk-X457NOFE.js";
22
- import "./chunk-56R2ER7K.js";
23
- import "./chunk-UM5S7DKK.js";
24
- import "./chunk-YYNXIUR2.js";
22
+ } from "./chunk-KA55FISM.js";
23
+ import "./chunk-NBYKLUF6.js";
24
+ import "./chunk-M2H7JURF.js";
25
25
  import {
26
26
  dataRoot,
27
27
  homeBinPath
28
- } from "./chunk-IXOQDZWC.js";
28
+ } from "./chunk-GZGLCCEE.js";
29
29
 
30
30
  // src/cli/commands/status.ts
31
31
  import { parseArgs } from "util";
@@ -139,4 +139,4 @@ async function run(argv) {
139
139
  export {
140
140
  run
141
141
  };
142
- //# sourceMappingURL=status-WRLBTBRE.js.map
142
+ //# sourceMappingURL=status-B2PG6YKR.js.map
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runStatusline
4
- } from "./chunk-LKAVD4HP.js";
4
+ } from "./chunk-447JWFZO.js";
5
5
  import "./chunk-OP4KBXUO.js";
6
- import "./chunk-LN76OGNR.js";
7
- import "./chunk-S4E6QQEM.js";
8
- import "./chunk-ZXX5DVSE.js";
9
- import "./chunk-4FWETID5.js";
6
+ import "./chunk-Z2MRSS2I.js";
7
+ import "./chunk-FO5CEXXN.js";
8
+ import "./chunk-FBCBHEGB.js";
10
9
  import "./chunk-KHO5WNTP.js";
11
- import "./chunk-7NXEHZAK.js";
12
- import "./chunk-PZHB5TVA.js";
13
- import "./chunk-X457NOFE.js";
14
- import "./chunk-56R2ER7K.js";
15
- import "./chunk-HORHRHNG.js";
16
- import "./chunk-YYNXIUR2.js";
17
- import "./chunk-IXOQDZWC.js";
10
+ import "./chunk-IVAWP6HH.js";
11
+ import "./chunk-JVO6NBTT.js";
12
+ import "./chunk-AY3VFNOH.js";
13
+ import "./chunk-KA55FISM.js";
14
+ import "./chunk-NBYKLUF6.js";
15
+ import "./chunk-4NHXLXSD.js";
16
+ import "./chunk-M2H7JURF.js";
17
+ import "./chunk-GZGLCCEE.js";
18
18
 
19
19
  // src/cli/commands/statusline.ts
20
20
  import { parseArgs } from "util";
@@ -57,4 +57,4 @@ async function run(argv) {
57
57
  export {
58
58
  run
59
59
  };
60
- //# sourceMappingURL=statusline-EUD4DMIP.js.map
60
+ //# sourceMappingURL=statusline-5ERFMYSM.js.map
@@ -8,25 +8,25 @@ import {
8
8
  mcpLeaderboard,
9
9
  surfaceLeaderboard,
10
10
  toolLeaderboard
11
- } from "./chunk-AY3RGRTT.js";
11
+ } from "./chunk-6TF7MHG5.js";
12
12
  import {
13
13
  fail,
14
14
  print
15
- } from "./chunk-VKRGQLY4.js";
15
+ } from "./chunk-5Z36KVU2.js";
16
16
  import {
17
17
  openStore
18
- } from "./chunk-4FWETID5.js";
18
+ } from "./chunk-IVAWP6HH.js";
19
19
  import {
20
20
  connectorFromMeta,
21
21
  listRegisteredConnectors,
22
22
  loadRegisteredConnector,
23
23
  readRegisteredMeta
24
- } from "./chunk-7NXEHZAK.js";
25
- import "./chunk-PZHB5TVA.js";
26
- import "./chunk-X457NOFE.js";
27
- import "./chunk-56R2ER7K.js";
28
- import "./chunk-YYNXIUR2.js";
29
- import "./chunk-IXOQDZWC.js";
24
+ } from "./chunk-JVO6NBTT.js";
25
+ import "./chunk-AY3VFNOH.js";
26
+ import "./chunk-KA55FISM.js";
27
+ import "./chunk-NBYKLUF6.js";
28
+ import "./chunk-M2H7JURF.js";
29
+ import "./chunk-GZGLCCEE.js";
30
30
 
31
31
  // src/cli/commands/telemetry.ts
32
32
  import { writeFileSync } from "fs";
@@ -349,4 +349,4 @@ export {
349
349
  parseSince,
350
350
  run
351
351
  };
352
- //# sourceMappingURL=telemetry-U3LGMR3D.js.map
352
+ //# sourceMappingURL=telemetry-ZMCAWBWB.js.map
@@ -5,13 +5,13 @@ import {
5
5
  import {
6
6
  BaseAdapter,
7
7
  renderSkillMd
8
- } from "./chunk-VVFDU4IX.js";
8
+ } from "./chunk-WFEHWTLM.js";
9
9
  import {
10
10
  buildWrappedStdio,
11
11
  isHomeBinHookCommand
12
- } from "./chunk-HORHRHNG.js";
13
- import "./chunk-YYNXIUR2.js";
14
- import "./chunk-IXOQDZWC.js";
12
+ } from "./chunk-4NHXLXSD.js";
13
+ import "./chunk-M2H7JURF.js";
14
+ import "./chunk-GZGLCCEE.js";
15
15
 
16
16
  // src/adapters/trae/index.ts
17
17
  import { existsSync } from "fs";
@@ -271,4 +271,4 @@ export {
271
271
  adapter,
272
272
  trae_default as default
273
273
  };
274
- //# sourceMappingURL=trae-Z7CQ2A2Q.js.map
274
+ //# sourceMappingURL=trae-7KDCYIMN.js.map