@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.
- package/README.md +302 -561
- package/dist/{action-OHGFVKMC.js → action-CVIEPX4U.js} +14 -14
- package/dist/{amazon-q-B52EY2SV.js → amazon-q-TIT7FIW3.js} +5 -5
- package/dist/{amp-UXABVUKC.js → amp-NF3OAAUG.js} +5 -5
- package/dist/{antigravity-RZHN53VB.js → antigravity-7LPK7QOY.js} +6 -6
- package/dist/antigravity-cli-MDEMPPAH.js +467 -0
- package/dist/antigravity-cli-MDEMPPAH.js.map +1 -0
- package/dist/{chunk-QKLJU4JX.js → chunk-2Y2MZRLP.js} +56 -2
- package/dist/chunk-2Y2MZRLP.js.map +1 -0
- package/dist/{chunk-UBB7T54N.js → chunk-3C5AASHM.js} +3 -3
- package/dist/{chunk-LKAVD4HP.js → chunk-447JWFZO.js} +12 -12
- package/dist/{chunk-HORHRHNG.js → chunk-4NHXLXSD.js} +2 -2
- package/dist/chunk-5Z36KVU2.js +590 -0
- package/dist/chunk-5Z36KVU2.js.map +1 -0
- package/dist/{chunk-AY3RGRTT.js → chunk-6TF7MHG5.js} +2 -2
- package/dist/{chunk-AMK2K6XZ.js → chunk-7UT6OB52.js} +2 -2
- package/dist/{chunk-PZHB5TVA.js → chunk-AY3VFNOH.js} +5 -5
- package/dist/{chunk-4HVQ7IUM.js → chunk-DI5S6TXJ.js} +17 -4
- package/dist/chunk-DI5S6TXJ.js.map +1 -0
- package/dist/{chunk-ZXX5DVSE.js → chunk-FBCBHEGB.js} +8 -8
- package/dist/{chunk-4NSU3KWX.js → chunk-FJCUKXGX.js} +2 -2
- package/dist/{chunk-S4E6QQEM.js → chunk-FO5CEXXN.js} +7 -2
- package/dist/chunk-FO5CEXXN.js.map +1 -0
- package/dist/{chunk-IXOQDZWC.js → chunk-GZGLCCEE.js} +5 -1
- package/dist/chunk-GZGLCCEE.js.map +1 -0
- package/dist/{chunk-UYZ53KWS.js → chunk-IBLYVAWH.js} +31 -9
- package/dist/chunk-IBLYVAWH.js.map +1 -0
- package/dist/{chunk-4FWETID5.js → chunk-IVAWP6HH.js} +2 -2
- package/dist/{chunk-NBUEL74R.js → chunk-JFXL4HYA.js} +3 -3
- package/dist/{chunk-VD4EG6SG.js → chunk-JO2IM2JL.js} +538 -226
- package/dist/chunk-JO2IM2JL.js.map +1 -0
- package/dist/{chunk-7NXEHZAK.js → chunk-JVO6NBTT.js} +3 -3
- package/dist/{chunk-X457NOFE.js → chunk-KA55FISM.js} +116 -36
- package/dist/chunk-KA55FISM.js.map +1 -0
- package/dist/{chunk-YJP3KGLM.js → chunk-L26PSQTY.js} +4 -4
- package/dist/{chunk-YYNXIUR2.js → chunk-M2H7JURF.js} +2 -2
- package/dist/{chunk-56R2ER7K.js → chunk-NBYKLUF6.js} +2 -2
- package/dist/{chunk-IRUYJD23.js → chunk-NLE2J5P4.js} +1 -1
- package/dist/{chunk-VVFDU4IX.js → chunk-WFEHWTLM.js} +12 -5
- package/dist/{chunk-VVFDU4IX.js.map → chunk-WFEHWTLM.js.map} +1 -1
- package/dist/{chunk-LN76OGNR.js → chunk-Z2MRSS2I.js} +2 -2
- package/dist/{claude-code-T6ZRCMA7.js → claude-code-7RS4YVGZ.js} +9 -9
- package/dist/cli/sdk.js +7 -7
- package/dist/cli.js +1 -1
- package/dist/{cline-NNMVCECA.js → cline-BZQAUYPC.js} +5 -5
- package/dist/codebuddy-G42IKGKB.js +643 -0
- package/dist/codebuddy-G42IKGKB.js.map +1 -0
- package/dist/{codebuff-RJIDSEU3.js → codebuff-5RLTLZAU.js} +5 -5
- package/dist/{codex-RHKQKNNG.js → codex-XHAMJILX.js} +14 -8
- package/dist/{codex-RHKQKNNG.js.map → codex-XHAMJILX.js.map} +1 -1
- package/dist/{continue-MNM7YVJY.js → continue-JLIB7R7X.js} +6 -6
- package/dist/{copilot-cli-SMTX5F65.js → copilot-cli-XZSUYNQZ.js} +5 -5
- package/dist/{crush-NYDBHIJE.js → crush-ESERLVLT.js} +5 -5
- package/dist/{cursor-AOELDNZU.js → cursor-FUDOV5VK.js} +6 -6
- package/dist/{detect-ALAKE54S.js → detect-Z5BDTY6B.js} +4 -4
- package/dist/devin-Y7PWKVHY.js +510 -0
- package/dist/devin-Y7PWKVHY.js.map +1 -0
- package/dist/{doctor-UNF7FCF4.js → doctor-GAP27PP2.js} +27 -23
- package/dist/doctor-GAP27PP2.js.map +1 -0
- package/dist/{droid-PTCH2K7Y.js → droid-DTO5POTK.js} +5 -5
- package/dist/{gemini-cli-QGLN2UMS.js → gemini-cli-RBIG6U2F.js} +5 -5
- package/dist/{goose-DQ6GSZ5O.js → goose-VGNOP5J2.js} +6 -6
- package/dist/grok-cli-2RFBK6J3.js +482 -0
- package/dist/grok-cli-2RFBK6J3.js.map +1 -0
- package/dist/{hermes-E47IG63A.js → hermes-NUKFWZI5.js} +6 -6
- package/dist/{hook-GM2IDA3C.js → hook-XPR3AHDI.js} +14 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/install-O32TDIZP.js +382 -0
- package/dist/install-O32TDIZP.js.map +1 -0
- package/dist/{introspect-5o5ick0_.d.ts → introspect-BkId4LGP.d.ts} +1 -1
- package/dist/{jetbrains-copilot-4IOT3I2Y.js → jetbrains-copilot-FXZ5AOTS.js} +31 -9
- package/dist/jetbrains-copilot-FXZ5AOTS.js.map +1 -0
- package/dist/junie-TSXIZSCE.js +227 -0
- package/dist/junie-TSXIZSCE.js.map +1 -0
- package/dist/{kilo-TAHOPT2Q.js → kilo-JLH3KVZJ.js} +8 -8
- package/dist/{kilo-cli-X4NPJWGX.js → kilo-cli-5W36VJQZ.js} +8 -8
- package/dist/{kimi-Z7L2LEEI.js → kimi-R62W7HKZ.js} +5 -5
- package/dist/{kiro-YZ4TTZGD.js → kiro-AUJMGIBL.js} +81 -6
- package/dist/kiro-AUJMGIBL.js.map +1 -0
- package/dist/{leaderboard-DVW4WYJ6.js → leaderboard-YWMOSJBC.js} +7 -7
- package/dist/{mimo-code-G2CBZ4M6.js → mimo-code-PGLFFVER.js} +5 -5
- package/dist/mistral-vibe-36CZVQNQ.js +300 -0
- package/dist/mistral-vibe-36CZVQNQ.js.map +1 -0
- package/dist/{mux-JNM3F2NW.js → mux-HWL4N5KH.js} +5 -5
- package/dist/{nemoclaw-SHA4IUML.js → nemoclaw-QPHETUXM.js} +6 -6
- package/dist/{omp-OOVUNXME.js → omp-3TFMTJ5U.js} +5 -5
- package/dist/open-interpreter-UTBKE2EH.js +264 -0
- package/dist/open-interpreter-UTBKE2EH.js.map +1 -0
- package/dist/openclaw-RYFO5TLY.js +17 -0
- package/dist/{opencode-W2RK4M7G.js → opencode-JX7GBE5Q.js} +5 -5
- package/dist/openhands-AZW4PXJ3.js +384 -0
- package/dist/openhands-AZW4PXJ3.js.map +1 -0
- package/dist/{package-H5V3AZHR.js → package-2KKUGZFS.js} +13 -13
- package/dist/{pi-I7BLL4EI.js → pi-MRI3EBWU.js} +143 -6
- package/dist/pi-MRI3EBWU.js.map +1 -0
- package/dist/{qwen-code-JG7AF442.js → qwen-code-ISR6BEET.js} +9 -9
- package/dist/{roo-code-L5F7S6QH.js → roo-code-6TSCME4R.js} +5 -5
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.js +12 -12
- package/dist/sdk/index.d.ts +3 -3
- package/dist/sdk/index.js +6 -6
- package/dist/sdk/test.d.ts +2 -2
- package/dist/sdk/test.js +10 -10
- package/dist/{serve-WMO2TUW3.js → serve-EPRN7F2X.js} +14 -14
- package/dist/{status-WRLBTBRE.js → status-B2PG6YKR.js} +11 -11
- package/dist/{statusline-EUD4DMIP.js → statusline-5ERFMYSM.js} +13 -13
- package/dist/{telemetry-U3LGMR3D.js → telemetry-ZMCAWBWB.js} +10 -10
- package/dist/{trae-Z7CQ2A2Q.js → trae-7KDCYIMN.js} +5 -5
- package/dist/{types-D6RWGXm1.d.ts → types-D0RqWxT8.d.ts} +53 -9
- package/dist/{uninstall-TWPUEJEC.js → uninstall-M76BHLTH.js} +37 -27
- package/dist/uninstall-M76BHLTH.js.map +1 -0
- package/dist/{upgrade-EM6Y7QLH.js → upgrade-JLSCNAQA.js} +25 -19
- package/dist/upgrade-JLSCNAQA.js.map +1 -0
- package/dist/{usage-3HQDTXGY.js → usage-5I72HWCR.js} +3 -3
- package/dist/{usage-event-DWIGKO7V.js → usage-event-HIX4ZI45.js} +13 -13
- package/dist/{vscode-copilot-LU5NC4ZS.js → vscode-copilot-LILHAPJI.js} +20 -5
- package/dist/vscode-copilot-LILHAPJI.js.map +1 -0
- package/dist/{warp-4PPG5LOM.js → warp-KJUCWEA3.js} +5 -5
- package/dist/{windsurf-3T3RVXKM.js → windsurf-5TGGQR5I.js} +5 -5
- package/dist/{zed-LLOAUXSA.js → zed-EL3JCZ25.js} +123 -7
- package/dist/zed-EL3JCZ25.js.map +1 -0
- package/package.json +1 -1
- package/dist/antigravity-cli-KODEKUTM.js +0 -87
- package/dist/antigravity-cli-KODEKUTM.js.map +0 -1
- package/dist/chunk-4HVQ7IUM.js.map +0 -1
- package/dist/chunk-IXOQDZWC.js.map +0 -1
- package/dist/chunk-QKLJU4JX.js.map +0 -1
- package/dist/chunk-S4E6QQEM.js.map +0 -1
- package/dist/chunk-UYZ53KWS.js.map +0 -1
- package/dist/chunk-VD4EG6SG.js.map +0 -1
- package/dist/chunk-VKRGQLY4.js +0 -201
- package/dist/chunk-VKRGQLY4.js.map +0 -1
- package/dist/chunk-X457NOFE.js.map +0 -1
- package/dist/doctor-UNF7FCF4.js.map +0 -1
- package/dist/install-7O4XWH7T.js +0 -96
- package/dist/install-7O4XWH7T.js.map +0 -1
- package/dist/jetbrains-copilot-4IOT3I2Y.js.map +0 -1
- package/dist/kiro-YZ4TTZGD.js.map +0 -1
- package/dist/openclaw-BD56E5MV.js +0 -17
- package/dist/pi-I7BLL4EI.js.map +0 -1
- package/dist/uninstall-TWPUEJEC.js.map +0 -1
- package/dist/upgrade-EM6Y7QLH.js.map +0 -1
- package/dist/vscode-copilot-LU5NC4ZS.js.map +0 -1
- package/dist/zed-LLOAUXSA.js.map +0 -1
- /package/dist/{action-OHGFVKMC.js.map → action-CVIEPX4U.js.map} +0 -0
- /package/dist/{amazon-q-B52EY2SV.js.map → amazon-q-TIT7FIW3.js.map} +0 -0
- /package/dist/{amp-UXABVUKC.js.map → amp-NF3OAAUG.js.map} +0 -0
- /package/dist/{antigravity-RZHN53VB.js.map → antigravity-7LPK7QOY.js.map} +0 -0
- /package/dist/{chunk-UBB7T54N.js.map → chunk-3C5AASHM.js.map} +0 -0
- /package/dist/{chunk-LKAVD4HP.js.map → chunk-447JWFZO.js.map} +0 -0
- /package/dist/{chunk-HORHRHNG.js.map → chunk-4NHXLXSD.js.map} +0 -0
- /package/dist/{chunk-AY3RGRTT.js.map → chunk-6TF7MHG5.js.map} +0 -0
- /package/dist/{chunk-AMK2K6XZ.js.map → chunk-7UT6OB52.js.map} +0 -0
- /package/dist/{chunk-PZHB5TVA.js.map → chunk-AY3VFNOH.js.map} +0 -0
- /package/dist/{chunk-ZXX5DVSE.js.map → chunk-FBCBHEGB.js.map} +0 -0
- /package/dist/{chunk-4NSU3KWX.js.map → chunk-FJCUKXGX.js.map} +0 -0
- /package/dist/{chunk-4FWETID5.js.map → chunk-IVAWP6HH.js.map} +0 -0
- /package/dist/{chunk-NBUEL74R.js.map → chunk-JFXL4HYA.js.map} +0 -0
- /package/dist/{chunk-7NXEHZAK.js.map → chunk-JVO6NBTT.js.map} +0 -0
- /package/dist/{chunk-YJP3KGLM.js.map → chunk-L26PSQTY.js.map} +0 -0
- /package/dist/{chunk-YYNXIUR2.js.map → chunk-M2H7JURF.js.map} +0 -0
- /package/dist/{chunk-56R2ER7K.js.map → chunk-NBYKLUF6.js.map} +0 -0
- /package/dist/{chunk-IRUYJD23.js.map → chunk-NLE2J5P4.js.map} +0 -0
- /package/dist/{chunk-LN76OGNR.js.map → chunk-Z2MRSS2I.js.map} +0 -0
- /package/dist/{claude-code-T6ZRCMA7.js.map → claude-code-7RS4YVGZ.js.map} +0 -0
- /package/dist/{cline-NNMVCECA.js.map → cline-BZQAUYPC.js.map} +0 -0
- /package/dist/{codebuff-RJIDSEU3.js.map → codebuff-5RLTLZAU.js.map} +0 -0
- /package/dist/{continue-MNM7YVJY.js.map → continue-JLIB7R7X.js.map} +0 -0
- /package/dist/{copilot-cli-SMTX5F65.js.map → copilot-cli-XZSUYNQZ.js.map} +0 -0
- /package/dist/{crush-NYDBHIJE.js.map → crush-ESERLVLT.js.map} +0 -0
- /package/dist/{cursor-AOELDNZU.js.map → cursor-FUDOV5VK.js.map} +0 -0
- /package/dist/{detect-ALAKE54S.js.map → detect-Z5BDTY6B.js.map} +0 -0
- /package/dist/{droid-PTCH2K7Y.js.map → droid-DTO5POTK.js.map} +0 -0
- /package/dist/{gemini-cli-QGLN2UMS.js.map → gemini-cli-RBIG6U2F.js.map} +0 -0
- /package/dist/{goose-DQ6GSZ5O.js.map → goose-VGNOP5J2.js.map} +0 -0
- /package/dist/{hermes-E47IG63A.js.map → hermes-NUKFWZI5.js.map} +0 -0
- /package/dist/{hook-GM2IDA3C.js.map → hook-XPR3AHDI.js.map} +0 -0
- /package/dist/{kilo-TAHOPT2Q.js.map → kilo-JLH3KVZJ.js.map} +0 -0
- /package/dist/{kilo-cli-X4NPJWGX.js.map → kilo-cli-5W36VJQZ.js.map} +0 -0
- /package/dist/{kimi-Z7L2LEEI.js.map → kimi-R62W7HKZ.js.map} +0 -0
- /package/dist/{leaderboard-DVW4WYJ6.js.map → leaderboard-YWMOSJBC.js.map} +0 -0
- /package/dist/{mimo-code-G2CBZ4M6.js.map → mimo-code-PGLFFVER.js.map} +0 -0
- /package/dist/{mux-JNM3F2NW.js.map → mux-HWL4N5KH.js.map} +0 -0
- /package/dist/{nemoclaw-SHA4IUML.js.map → nemoclaw-QPHETUXM.js.map} +0 -0
- /package/dist/{omp-OOVUNXME.js.map → omp-3TFMTJ5U.js.map} +0 -0
- /package/dist/{openclaw-BD56E5MV.js.map → openclaw-RYFO5TLY.js.map} +0 -0
- /package/dist/{opencode-W2RK4M7G.js.map → opencode-JX7GBE5Q.js.map} +0 -0
- /package/dist/{package-H5V3AZHR.js.map → package-2KKUGZFS.js.map} +0 -0
- /package/dist/{qwen-code-JG7AF442.js.map → qwen-code-ISR6BEET.js.map} +0 -0
- /package/dist/{roo-code-L5F7S6QH.js.map → roo-code-6TSCME4R.js.map} +0 -0
- /package/dist/{serve-WMO2TUW3.js.map → serve-EPRN7F2X.js.map} +0 -0
- /package/dist/{status-WRLBTBRE.js.map → status-B2PG6YKR.js.map} +0 -0
- /package/dist/{statusline-EUD4DMIP.js.map → statusline-5ERFMYSM.js.map} +0 -0
- /package/dist/{telemetry-U3LGMR3D.js.map → telemetry-ZMCAWBWB.js.map} +0 -0
- /package/dist/{trae-Z7CQ2A2Q.js.map → trae-7KDCYIMN.js.map} +0 -0
- /package/dist/{usage-3HQDTXGY.js.map → usage-5I72HWCR.js.map} +0 -0
- /package/dist/{usage-event-DWIGKO7V.js.map → usage-event-HIX4ZI45.js.map} +0 -0
- /package/dist/{warp-4PPG5LOM.js.map → warp-KJUCWEA3.js.map} +0 -0
- /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-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
27
|
+
} from "./chunk-WFEHWTLM.js";
|
|
28
28
|
import {
|
|
29
29
|
buildHomeBinStatuslineCommand,
|
|
30
30
|
buildWrappedStdio,
|
|
31
31
|
isHomeBinHookCommand,
|
|
32
32
|
isHomeBinStatuslineCommand
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
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-
|
|
1086
|
+
//# sourceMappingURL=qwen-code-ISR6BEET.js.map
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
BaseAdapter,
|
|
7
7
|
renderCommandMd,
|
|
8
8
|
renderSkillMd
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WFEHWTLM.js";
|
|
10
10
|
import {
|
|
11
11
|
buildWrappedStdio
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
361
|
+
//# sourceMappingURL=roo-code-6TSCME4R.js.map
|
package/dist/runtime/index.d.ts
CHANGED
package/dist/runtime/index.js
CHANGED
|
@@ -4,24 +4,24 @@ import {
|
|
|
4
4
|
runServe,
|
|
5
5
|
runStatusline,
|
|
6
6
|
runUsageEvent
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-447JWFZO.js";
|
|
8
8
|
import "../chunk-OP4KBXUO.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
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-
|
|
16
|
-
import "../chunk-4FWETID5.js";
|
|
15
|
+
} from "../chunk-FBCBHEGB.js";
|
|
17
16
|
import "../chunk-KHO5WNTP.js";
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
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,
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -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-
|
|
3
|
-
import { P as PlatformId } from '../types-
|
|
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-
|
|
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-
|
|
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-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
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([
|
package/dist/sdk/test.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PlatformId, e as HookEventName, R as ResolvedConnector } from '../types-
|
|
2
|
-
import { a as SurfaceName } from '../introspect-
|
|
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-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-4FWETID5.js";
|
|
6
|
+
} from "../chunk-L26PSQTY.js";
|
|
7
|
+
import "../chunk-FBCBHEGB.js";
|
|
9
8
|
import "../chunk-KHO5WNTP.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
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-
|
|
4
|
+
} from "./chunk-5Z36KVU2.js";
|
|
5
5
|
import {
|
|
6
6
|
runServe
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-447JWFZO.js";
|
|
8
8
|
import "./chunk-OP4KBXUO.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
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-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
10
|
+
} from "./chunk-5Z36KVU2.js";
|
|
10
11
|
import {
|
|
11
12
|
detectInstalledPlatforms
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-FO5CEXXN.js";
|
|
13
14
|
import {
|
|
14
15
|
findConnectorConfig,
|
|
15
16
|
listRegisteredConnectors,
|
|
16
17
|
loadConnectorFromPath
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-JVO6NBTT.js";
|
|
19
|
+
import "./chunk-AY3VFNOH.js";
|
|
19
20
|
import {
|
|
20
21
|
loadAdapter
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
4
|
+
} from "./chunk-447JWFZO.js";
|
|
5
5
|
import "./chunk-OP4KBXUO.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
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-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
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-
|
|
60
|
+
//# sourceMappingURL=statusline-5ERFMYSM.js.map
|
|
@@ -8,25 +8,25 @@ import {
|
|
|
8
8
|
mcpLeaderboard,
|
|
9
9
|
surfaceLeaderboard,
|
|
10
10
|
toolLeaderboard
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-6TF7MHG5.js";
|
|
12
12
|
import {
|
|
13
13
|
fail,
|
|
14
14
|
print
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-5Z36KVU2.js";
|
|
16
16
|
import {
|
|
17
17
|
openStore
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IVAWP6HH.js";
|
|
19
19
|
import {
|
|
20
20
|
connectorFromMeta,
|
|
21
21
|
listRegisteredConnectors,
|
|
22
22
|
loadRegisteredConnector,
|
|
23
23
|
readRegisteredMeta
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
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-
|
|
352
|
+
//# sourceMappingURL=telemetry-ZMCAWBWB.js.map
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
BaseAdapter,
|
|
7
7
|
renderSkillMd
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WFEHWTLM.js";
|
|
9
9
|
import {
|
|
10
10
|
buildWrappedStdio,
|
|
11
11
|
isHomeBinHookCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
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-
|
|
274
|
+
//# sourceMappingURL=trae-7KDCYIMN.js.map
|