pipebrain-mcp 0.47.1 → 0.48.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/main.js +11 -36
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -15521,6 +15521,15 @@ var issueSchema = external_exports.object({
|
|
|
15521
15521
|
// An absent field and an unmarked issue would be indistinguishable to a caller, which
|
|
15522
15522
|
// is precisely the failure the wire mappers in libs/db/src/issues.ts warn about.
|
|
15523
15523
|
reservedForPerson: external_exports.boolean(),
|
|
15524
|
+
// Whether the issue's PROJECT has been archived (PIPE-419). Derived on read from the
|
|
15525
|
+
// project's own `deleted_at`, never stored on the issue — archiving a project touches
|
|
15526
|
+
// no issue row, which is exactly why the flag has to be carried rather than inferred.
|
|
15527
|
+
//
|
|
15528
|
+
// REQUIRED for the same reason `reservedForPerson` above is: both mappers send it on
|
|
15529
|
+
// every issue, and this schema is a `z.object`, so an undeclared key is stripped in
|
|
15530
|
+
// silence rather than rejected — a field left off here would vanish from anything that
|
|
15531
|
+
// parses through it with nothing to say it had.
|
|
15532
|
+
projectArchived: external_exports.boolean(),
|
|
15524
15533
|
source: sourceSchema,
|
|
15525
15534
|
metadata: metadataSchema,
|
|
15526
15535
|
customFields: customFieldsSchema,
|
|
@@ -15921,22 +15930,6 @@ var orgInstructionSchema = external_exports.object({
|
|
|
15921
15930
|
body: external_exports.string().min(1),
|
|
15922
15931
|
createdBy: uuidSchema.nullable(),
|
|
15923
15932
|
viaTokenId: uuidSchema.nullable(),
|
|
15924
|
-
/**
|
|
15925
|
-
* sha256 of the shipped default this row was SEEDED from, or null when nothing seeded
|
|
15926
|
-
* it — a row written by a person, a row re-created after its scope was cleared, or a row
|
|
15927
|
-
* that predates seeding.
|
|
15928
|
-
*
|
|
15929
|
-
* It is what lets a settings page say the shipped default has MOVED since this
|
|
15930
|
-
* organization got it, without the product ever applying that move: comparing this digest
|
|
15931
|
-
* against the running release's default for the same scope is the whole signal. It is not
|
|
15932
|
-
* updated by an edit, because what it records is what was seeded — which stays true after
|
|
15933
|
-
* the organization rewrites the body, and is exactly then that the comparison is worth
|
|
15934
|
-
* making.
|
|
15935
|
-
*
|
|
15936
|
-
* `.default(null)` rather than a bare nullable, for the tolerance this schema keeps
|
|
15937
|
-
* throughout: a payload from a server that predates the column still parses.
|
|
15938
|
-
*/
|
|
15939
|
-
seededDefaultSha: external_exports.string().nullable().default(null),
|
|
15940
15933
|
createdAt: external_exports.iso.datetime({ offset: true }),
|
|
15941
15934
|
updatedAt: external_exports.iso.datetime({ offset: true }),
|
|
15942
15935
|
deletedAt: external_exports.iso.datetime({ offset: true }).nullable()
|
|
@@ -16605,12 +16598,6 @@ var listEnvelopeSchema = (item) => external_exports.object({ items: external_exp
|
|
|
16605
16598
|
var mintedTokenSchema = apiTokenSchema.extend({ token: external_exports.string().min(1) }).loose();
|
|
16606
16599
|
var tokenListSchema = listEnvelopeSchema(apiTokenSchema);
|
|
16607
16600
|
var orgInstructionListSchema = listEnvelopeSchema(orgInstructionSchema);
|
|
16608
|
-
var instructionDefaultSchema = external_exports.object({
|
|
16609
|
-
scope: external_exports.string().min(1),
|
|
16610
|
-
body: external_exports.string().min(1),
|
|
16611
|
-
sha256: external_exports.string().min(1)
|
|
16612
|
-
}).loose();
|
|
16613
|
-
var instructionDefaultListSchema = listEnvelopeSchema(instructionDefaultSchema);
|
|
16614
16601
|
var ApiClient = class _ApiClient {
|
|
16615
16602
|
baseUrl;
|
|
16616
16603
|
auth;
|
|
@@ -17354,18 +17341,6 @@ var ApiClient = class _ApiClient {
|
|
|
17354
17341
|
const body = await this.request("GET", "/api/v1/org-instructions", {}, orgInstructionListSchema);
|
|
17355
17342
|
return body.items;
|
|
17356
17343
|
}
|
|
17357
|
-
/**
|
|
17358
|
-
* The starting text THIS RELEASE ships, per scope, with the digest a seeded row records.
|
|
17359
|
-
*
|
|
17360
|
-
* Shipped content rather than the org's, so it carries no tenant data and any
|
|
17361
|
-
* authenticated caller may read it. Comparing a row's `seededDefaultSha` against the
|
|
17362
|
-
* `sha256` here is how a settings page says the shipped default has MOVED since this
|
|
17363
|
-
* organization was seeded — a difference the product reports and never applies.
|
|
17364
|
-
*/
|
|
17365
|
-
async listInstructionDefaults() {
|
|
17366
|
-
const body = await this.request("GET", "/api/v1/org-instructions/defaults", {}, instructionDefaultListSchema);
|
|
17367
|
-
return body.items;
|
|
17368
|
-
}
|
|
17369
17344
|
/** Upserts one scope's instruction text (ADMIN+; body ≤ 4000 chars). */
|
|
17370
17345
|
setOrgInstruction(scope, body) {
|
|
17371
17346
|
return this.request("PUT", `/api/v1/org-instructions/${enc(scope)}`, { body: { body } }, orgInstructionSchema);
|
|
@@ -17905,7 +17880,7 @@ function createMcpServer(baseClient, apiBaseUrl, orgInstructions2 = /* @__PURE__
|
|
|
17905
17880
|
(args) => run(() => client2().listIssues(args), GUIDANCE_POINTER)
|
|
17906
17881
|
);
|
|
17907
17882
|
registerStrict("get_issue", {
|
|
17908
|
-
description: `Full issue detail by display id or uuid: the header \u2014 \`summary\`, \`why\`, \`affectedSurfaces\`, with \`headerDerivedAt\` and \`headerStale\`, true when nobody has written a header or the body has moved since one was written, and \`set_issue_header\` is what writes it \u2014 body, criteria (states, modes, evidence), explicit requirement links (pinned revision + staleness), the project\u2019s cross-cutting requirements at their latest approved revision, this organization\u2019s approved conventions \u2014 standing guidance that BINDS work in every project here, delivered in full at the revision a person approved \u2014 children, and comments (\xA77). Carries \`terminal\`: true when the issue is finished (\`done\`) or deliberately abandoned (\`killed\`) and is therefore NOT buildable work \u2014 check it before acting on an issue you were handed by key. Reading criterion state: \`state_evidence\` is required only when a TOKEN sets one, so a \`manual\` criterion \u2014 settable only from a web session \u2014 carries none by design, and the attribution the server already stores (who set it, and when) IS its record. What this payload tells you about ANOTHER issue goes stale. Reference that issue by key and say what you need from it; never restate its status, its criteria, or whether those criteria passed. Long records read in PARTS: \`bodyOffset\`/\`bodyLimit\` window the body (UTF-16 offsets; parts concatenate back exactly), \`commentOffset\`/\`commentLimit\` window the oldest-first comment list. Unpaged, the body is capped at ${ISSUE_BODY_CHAR_LIMIT} chars and comments at the newest ${ISSUE_COMMENT_LIMIT}; a response that left anything out says so in \`omitted\` \u2014 the true totals, the omitted comment count, and in \`next\` the exact arguments for the adjacent part (body walks forward, comments toward older) \u2014 follow \`next\` until null to retrieve everything. An issue under both caps reads whole in ONE call, no notice.`,
|
|
17883
|
+
description: `Full issue detail by display id or uuid: the header \u2014 \`summary\`, \`why\`, \`affectedSurfaces\`, with \`headerDerivedAt\` and \`headerStale\`, true when nobody has written a header or the body has moved since one was written, and \`set_issue_header\` is what writes it \u2014 body, criteria (states, modes, evidence), explicit requirement links (pinned revision + staleness), the project\u2019s cross-cutting requirements at their latest approved revision, this organization\u2019s approved conventions \u2014 standing guidance that BINDS work in every project here, delivered in full at the revision a person approved \u2014 children, and comments (\xA77). Carries \`terminal\`: true when the issue is finished (\`done\`) or deliberately abandoned (\`killed\`) and is therefore NOT buildable work \u2014 check it before acting on an issue you were handed by key. Carries \`projectArchived\` on the same terms: true when the project is retired, so this read still answers while lists, search and the work-moving writes do not. Reading criterion state: \`state_evidence\` is required only when a TOKEN sets one, so a \`manual\` criterion \u2014 settable only from a web session \u2014 carries none by design, and the attribution the server already stores (who set it, and when) IS its record. What this payload tells you about ANOTHER issue goes stale. Reference that issue by key and say what you need from it; never restate its status, its criteria, or whether those criteria passed. Long records read in PARTS: \`bodyOffset\`/\`bodyLimit\` window the body (UTF-16 offsets; parts concatenate back exactly), \`commentOffset\`/\`commentLimit\` window the oldest-first comment list. Unpaged, the body is capped at ${ISSUE_BODY_CHAR_LIMIT} chars and comments at the newest ${ISSUE_COMMENT_LIMIT}; a response that left anything out says so in \`omitted\` \u2014 the true totals, the omitted comment count, and in \`next\` the exact arguments for the adjacent part (body walks forward, comments toward older) \u2014 follow \`next\` until null to retrieve everything. An issue under both caps reads whole in ONE call, no notice.`,
|
|
17909
17884
|
inputSchema: getIssueInputSchema.shape,
|
|
17910
17885
|
// The same result-threshold annotation `get_work_context` declares, and the same
|
|
17911
17886
|
// key spelled out for the same reason (an unknown `_meta` key is silently
|
|
@@ -18341,7 +18316,7 @@ function loadMcpConfig() {
|
|
|
18341
18316
|
}
|
|
18342
18317
|
|
|
18343
18318
|
// src/version.ts
|
|
18344
|
-
var VERSION = "0.
|
|
18319
|
+
var VERSION = "0.48.1";
|
|
18345
18320
|
|
|
18346
18321
|
// src/main.ts
|
|
18347
18322
|
async function scopedClient(base, org) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pipebrain-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.1",
|
|
4
4
|
"description": "Pipebrain MCP server for Claude Code and Claude Desktop — issues, requirements, decision records, conventions, prompts, content, assets, metadata-only secrets, and more of the platform's modules over the Pipebrain API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|