@geohar/pi-cribsheet 0.10.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +94 -3
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAER,YAAY,EAIf,MAAM,SAAS,CAAA;AA0GhB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA8IxD"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
// — see mcp.json.example and the README; static, and unnecessary when combiner-served.
|
|
25
25
|
// The sharedserver resolution is ported faithfully from plugins/opencode/src/index.ts.
|
|
26
26
|
import { spawnSync } from "node:child_process";
|
|
27
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
27
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
28
|
+
import { homedir } from "node:os";
|
|
28
29
|
import { dirname, join } from "node:path";
|
|
29
30
|
import { fileURLToPath } from "node:url";
|
|
30
31
|
import { resolveSharedserver } from "./sharedserver-resolve.js";
|
|
@@ -134,7 +135,7 @@ export default function cribsheet(pi) {
|
|
|
134
135
|
// ── /crib command: recall memory + code index, then steer the model ──
|
|
135
136
|
if (wantCommand) {
|
|
136
137
|
pi.registerCommand("crib", {
|
|
137
|
-
description: "Consult crib (recall memory + code index);
|
|
138
|
+
description: "Consult crib (recall memory + code index); verbs: system-prompt (show the directive), install-config [path] (write mcp.json)",
|
|
138
139
|
getArgumentCompletions: (prefix) => completeVerbs(prefix),
|
|
139
140
|
handler: async (args, ctx) => {
|
|
140
141
|
const arg = args.trim();
|
|
@@ -142,6 +143,10 @@ export default function cribsheet(pi) {
|
|
|
142
143
|
showDirective(ctx, "cribsheet", CRIB_DIRECTIVE, wantInstructions);
|
|
143
144
|
return;
|
|
144
145
|
}
|
|
146
|
+
if (arg === "install-config" || arg.startsWith("install-config ")) {
|
|
147
|
+
installConfig(ctx, arg.slice("install-config".length).trim() || undefined);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
145
150
|
const topic = arg;
|
|
146
151
|
if (!topic) {
|
|
147
152
|
ctx.ui?.notify?.("crib: give me a topic (e.g. /crib auth flow), or /crib system-prompt", "warn");
|
|
@@ -241,12 +246,91 @@ export default function cribsheet(pi) {
|
|
|
241
246
|
// Slash-command verbs. `system-prompt` shows the directive this extension injects — the
|
|
242
247
|
// show-command pattern from pi-custom-system-prompt, since `before_agent_start`
|
|
243
248
|
// injections are per-turn and never appear in Pi's own `/system-prompt` (base only).
|
|
244
|
-
const COMMAND_VERBS = ["system-prompt"];
|
|
249
|
+
const COMMAND_VERBS = ["system-prompt", "install-config"];
|
|
245
250
|
function completeVerbs(prefix) {
|
|
246
251
|
const p = prefix.trim();
|
|
247
252
|
const matches = COMMAND_VERBS.filter((v) => v.startsWith(p));
|
|
248
253
|
return matches.length ? matches.map((v) => ({ value: v, label: v })) : null;
|
|
249
254
|
}
|
|
255
|
+
// ── /crib install-config: write the pi-mcp-adapter mcp.json entry ──
|
|
256
|
+
// A USER-INVOKED write — merge the cribsheet entry into pi-mcp-adapter's mcp.json,
|
|
257
|
+
// wired for crib's optional inbound bearer auth:
|
|
258
|
+
//
|
|
259
|
+
// { "url": "…/mcp", "auth": "bearer", "bearerTokenEnv": "CRIBSHEET_AUTH_TOKEN" }
|
|
260
|
+
//
|
|
261
|
+
// - auth:"bearer" → the adapter attaches `Authorization: Bearer <token>` (it gates the
|
|
262
|
+
// header on `auth === "bearer"`, NOT on bearerTokenEnv alone), AND makes
|
|
263
|
+
// supportsOAuth() false so a wrong/missing token surfaces as an honest 401 rather
|
|
264
|
+
// than a Dynamic-Client-Registration 404.
|
|
265
|
+
// - bearerTokenEnv → names the env var the token is read from at connect (nothing
|
|
266
|
+
// written to disk). The backend enforces only when CRIBSHEET_AUTH_TOKEN is set on ITS
|
|
267
|
+
// side; unset ⇒ open, the env var is unset here too so no header is sent. The one
|
|
268
|
+
// shape is correct whether or not auth is enabled. Ported from mcp-companion's
|
|
269
|
+
// /mcp-combiner install-config.
|
|
270
|
+
function expandHome(p) {
|
|
271
|
+
if (p === "~")
|
|
272
|
+
return homedir();
|
|
273
|
+
if (p.startsWith("~/"))
|
|
274
|
+
return join(homedir(), p.slice(2));
|
|
275
|
+
return p;
|
|
276
|
+
}
|
|
277
|
+
/** The URL the adapter should reach cribsheet at — 127.0.0.1:<port>/mcp with the same
|
|
278
|
+
* port defaults the backend serves on ($PI_CRIBSHEET_PORT, else 7732). */
|
|
279
|
+
function defaultCribUrl() {
|
|
280
|
+
let port = DEFAULT_PORT;
|
|
281
|
+
const raw = env("PI_CRIBSHEET_PORT");
|
|
282
|
+
if (raw !== undefined) {
|
|
283
|
+
const n = Number(raw);
|
|
284
|
+
if (Number.isInteger(n) && n > 0)
|
|
285
|
+
port = n;
|
|
286
|
+
}
|
|
287
|
+
return `http://127.0.0.1:${port}/mcp`;
|
|
288
|
+
}
|
|
289
|
+
function installConfig(ctx, pathArg) {
|
|
290
|
+
const target = pathArg ? expandHome(pathArg) : join(homedir(), ".config", "mcp", "mcp.json");
|
|
291
|
+
const key = DEFAULT_NAME;
|
|
292
|
+
// Read + parse existing (tolerate absence; refuse to clobber non-JSON).
|
|
293
|
+
let doc = {};
|
|
294
|
+
if (existsSync(target)) {
|
|
295
|
+
try {
|
|
296
|
+
const parsed = JSON.parse(readFileSync(target, "utf8"));
|
|
297
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
298
|
+
ctx.ui?.notify?.(`cribsheet: ${target} is not a JSON object; not overwriting`, "error");
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
doc = parsed;
|
|
302
|
+
}
|
|
303
|
+
catch (e) {
|
|
304
|
+
ctx.ui?.notify?.(`cribsheet: ${target} is not valid JSON; not overwriting (${e})`, "error");
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
const servers = (doc.mcpServers ??= {});
|
|
309
|
+
const prev = (servers[key] ?? {});
|
|
310
|
+
const before = JSON.stringify(prev);
|
|
311
|
+
// Preserve any existing url and other fields; only ensure the auth-wiring keys.
|
|
312
|
+
servers[key] = {
|
|
313
|
+
...prev,
|
|
314
|
+
url: typeof prev.url === "string" && prev.url ? prev.url : defaultCribUrl(),
|
|
315
|
+
auth: "bearer",
|
|
316
|
+
bearerTokenEnv: "CRIBSHEET_AUTH_TOKEN",
|
|
317
|
+
};
|
|
318
|
+
const existed = before !== "{}" && Object.keys(prev).length > 0;
|
|
319
|
+
const changed = before !== JSON.stringify(servers[key]);
|
|
320
|
+
try {
|
|
321
|
+
mkdirSync(dirname(target), { recursive: true });
|
|
322
|
+
writeFileSync(target, `${JSON.stringify(doc, null, 2)}\n`, "utf8");
|
|
323
|
+
}
|
|
324
|
+
catch (e) {
|
|
325
|
+
ctx.ui?.notify?.(`cribsheet: failed to write ${target} (${e})`, "error");
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const what = !existed ? "added" : changed ? "updated" : "already configured";
|
|
329
|
+
ctx.ui?.notify?.(`cribsheet: ${what} "${key}" in ${target}\n` +
|
|
330
|
+
`Sends "Authorization: Bearer $CRIBSHEET_AUTH_TOKEN" when that env var is set ` +
|
|
331
|
+
`(auth:"bearer" both sends the token and suppresses OAuth probing). ` +
|
|
332
|
+
`Run /reload so pi-mcp-adapter re-reads mcp.json.`, "info");
|
|
333
|
+
}
|
|
250
334
|
const SHOW_LIMIT = 1600;
|
|
251
335
|
function showDirective(ctx, label, directive, enabled) {
|
|
252
336
|
if (!directive) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geohar/pi-cribsheet",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Pi extension: run the crib (cribsheet) memory + code-index MCP server via sharedserver, inject the reach-for-crib directive, and ship the /crib recall command. Pairs with pi-mcp-adapter.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/index.ts
CHANGED
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
// The sharedserver resolution is ported faithfully from plugins/opencode/src/index.ts.
|
|
26
26
|
|
|
27
27
|
import { spawnSync } from "node:child_process"
|
|
28
|
-
import { existsSync, readFileSync } from "node:fs"
|
|
28
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"
|
|
29
|
+
import { homedir } from "node:os"
|
|
29
30
|
import { dirname, join } from "node:path"
|
|
30
31
|
import { fileURLToPath } from "node:url"
|
|
31
32
|
import type {
|
|
@@ -158,7 +159,8 @@ export default function cribsheet(pi: ExtensionAPI): void {
|
|
|
158
159
|
// ── /crib command: recall memory + code index, then steer the model ──
|
|
159
160
|
if (wantCommand) {
|
|
160
161
|
pi.registerCommand("crib", {
|
|
161
|
-
description:
|
|
162
|
+
description:
|
|
163
|
+
"Consult crib (recall memory + code index); verbs: system-prompt (show the directive), install-config [path] (write mcp.json)",
|
|
162
164
|
getArgumentCompletions: (prefix) => completeVerbs(prefix),
|
|
163
165
|
handler: async (args, ctx) => {
|
|
164
166
|
const arg = args.trim()
|
|
@@ -166,6 +168,10 @@ export default function cribsheet(pi: ExtensionAPI): void {
|
|
|
166
168
|
showDirective(ctx, "cribsheet", CRIB_DIRECTIVE, wantInstructions)
|
|
167
169
|
return
|
|
168
170
|
}
|
|
171
|
+
if (arg === "install-config" || arg.startsWith("install-config ")) {
|
|
172
|
+
installConfig(ctx, arg.slice("install-config".length).trim() || undefined)
|
|
173
|
+
return
|
|
174
|
+
}
|
|
169
175
|
const topic = arg
|
|
170
176
|
if (!topic) {
|
|
171
177
|
ctx.ui?.notify?.("crib: give me a topic (e.g. /crib auth flow), or /crib system-prompt", "warn")
|
|
@@ -284,13 +290,98 @@ export default function cribsheet(pi: ExtensionAPI): void {
|
|
|
284
290
|
// Slash-command verbs. `system-prompt` shows the directive this extension injects — the
|
|
285
291
|
// show-command pattern from pi-custom-system-prompt, since `before_agent_start`
|
|
286
292
|
// injections are per-turn and never appear in Pi's own `/system-prompt` (base only).
|
|
287
|
-
const COMMAND_VERBS = ["system-prompt"]
|
|
293
|
+
const COMMAND_VERBS = ["system-prompt", "install-config"]
|
|
288
294
|
function completeVerbs(prefix: string): AutocompleteItem[] | null {
|
|
289
295
|
const p = prefix.trim()
|
|
290
296
|
const matches = COMMAND_VERBS.filter((v) => v.startsWith(p))
|
|
291
297
|
return matches.length ? matches.map((v) => ({ value: v, label: v })) : null
|
|
292
298
|
}
|
|
293
299
|
|
|
300
|
+
// ── /crib install-config: write the pi-mcp-adapter mcp.json entry ──
|
|
301
|
+
// A USER-INVOKED write — merge the cribsheet entry into pi-mcp-adapter's mcp.json,
|
|
302
|
+
// wired for crib's optional inbound bearer auth:
|
|
303
|
+
//
|
|
304
|
+
// { "url": "…/mcp", "auth": "bearer", "bearerTokenEnv": "CRIBSHEET_AUTH_TOKEN" }
|
|
305
|
+
//
|
|
306
|
+
// - auth:"bearer" → the adapter attaches `Authorization: Bearer <token>` (it gates the
|
|
307
|
+
// header on `auth === "bearer"`, NOT on bearerTokenEnv alone), AND makes
|
|
308
|
+
// supportsOAuth() false so a wrong/missing token surfaces as an honest 401 rather
|
|
309
|
+
// than a Dynamic-Client-Registration 404.
|
|
310
|
+
// - bearerTokenEnv → names the env var the token is read from at connect (nothing
|
|
311
|
+
// written to disk). The backend enforces only when CRIBSHEET_AUTH_TOKEN is set on ITS
|
|
312
|
+
// side; unset ⇒ open, the env var is unset here too so no header is sent. The one
|
|
313
|
+
// shape is correct whether or not auth is enabled. Ported from mcp-companion's
|
|
314
|
+
// /mcp-combiner install-config.
|
|
315
|
+
|
|
316
|
+
function expandHome(p: string): string {
|
|
317
|
+
if (p === "~") return homedir()
|
|
318
|
+
if (p.startsWith("~/")) return join(homedir(), p.slice(2))
|
|
319
|
+
return p
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/** The URL the adapter should reach cribsheet at — 127.0.0.1:<port>/mcp with the same
|
|
323
|
+
* port defaults the backend serves on ($PI_CRIBSHEET_PORT, else 7732). */
|
|
324
|
+
function defaultCribUrl(): string {
|
|
325
|
+
let port = DEFAULT_PORT
|
|
326
|
+
const raw = env("PI_CRIBSHEET_PORT")
|
|
327
|
+
if (raw !== undefined) {
|
|
328
|
+
const n = Number(raw)
|
|
329
|
+
if (Number.isInteger(n) && n > 0) port = n
|
|
330
|
+
}
|
|
331
|
+
return `http://127.0.0.1:${port}/mcp`
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function installConfig(ctx: ExtensionCommandContext, pathArg?: string): void {
|
|
335
|
+
const target = pathArg ? expandHome(pathArg) : join(homedir(), ".config", "mcp", "mcp.json")
|
|
336
|
+
const key = DEFAULT_NAME
|
|
337
|
+
|
|
338
|
+
// Read + parse existing (tolerate absence; refuse to clobber non-JSON).
|
|
339
|
+
let doc: Record<string, unknown> = {}
|
|
340
|
+
if (existsSync(target)) {
|
|
341
|
+
try {
|
|
342
|
+
const parsed = JSON.parse(readFileSync(target, "utf8"))
|
|
343
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
344
|
+
ctx.ui?.notify?.(`cribsheet: ${target} is not a JSON object; not overwriting`, "error")
|
|
345
|
+
return
|
|
346
|
+
}
|
|
347
|
+
doc = parsed as Record<string, unknown>
|
|
348
|
+
} catch (e) {
|
|
349
|
+
ctx.ui?.notify?.(`cribsheet: ${target} is not valid JSON; not overwriting (${e})`, "error")
|
|
350
|
+
return
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
const servers = (doc.mcpServers ??= {}) as Record<string, Record<string, unknown>>
|
|
355
|
+
const prev = (servers[key] ?? {}) as Record<string, unknown>
|
|
356
|
+
const before = JSON.stringify(prev)
|
|
357
|
+
// Preserve any existing url and other fields; only ensure the auth-wiring keys.
|
|
358
|
+
servers[key] = {
|
|
359
|
+
...prev,
|
|
360
|
+
url: typeof prev.url === "string" && prev.url ? prev.url : defaultCribUrl(),
|
|
361
|
+
auth: "bearer",
|
|
362
|
+
bearerTokenEnv: "CRIBSHEET_AUTH_TOKEN",
|
|
363
|
+
}
|
|
364
|
+
const existed = before !== "{}" && Object.keys(prev).length > 0
|
|
365
|
+
const changed = before !== JSON.stringify(servers[key])
|
|
366
|
+
|
|
367
|
+
try {
|
|
368
|
+
mkdirSync(dirname(target), { recursive: true })
|
|
369
|
+
writeFileSync(target, `${JSON.stringify(doc, null, 2)}\n`, "utf8")
|
|
370
|
+
} catch (e) {
|
|
371
|
+
ctx.ui?.notify?.(`cribsheet: failed to write ${target} (${e})`, "error")
|
|
372
|
+
return
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
const what = !existed ? "added" : changed ? "updated" : "already configured"
|
|
376
|
+
ctx.ui?.notify?.(
|
|
377
|
+
`cribsheet: ${what} "${key}" in ${target}\n` +
|
|
378
|
+
`Sends "Authorization: Bearer $CRIBSHEET_AUTH_TOKEN" when that env var is set ` +
|
|
379
|
+
`(auth:"bearer" both sends the token and suppresses OAuth probing). ` +
|
|
380
|
+
`Run /reload so pi-mcp-adapter re-reads mcp.json.`,
|
|
381
|
+
"info",
|
|
382
|
+
)
|
|
383
|
+
}
|
|
384
|
+
|
|
294
385
|
const SHOW_LIMIT = 1600
|
|
295
386
|
function showDirective(ctx: ExtensionCommandContext, label: string, directive: string, enabled: boolean): void {
|
|
296
387
|
if (!directive) {
|