@productbrain/cli 0.1.0-beta.9197 → 0.1.0-beta.9201
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/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +7 -1
- package/dist/commands/search.js.map +1 -1
- package/dist/formatters/search.d.ts +3 -0
- package/dist/formatters/search.d.ts.map +1 -1
- package/dist/formatters/search.js +4 -0
- package/dist/formatters/search.js.map +1 -1
- package/dist/formatters/search.test.js +19 -0
- package/dist/formatters/search.test.js.map +1 -1
- package/dist/lib/platformGlossary.d.ts +19 -0
- package/dist/lib/platformGlossary.d.ts.map +1 -0
- package/dist/lib/platformGlossary.js +21 -0
- package/dist/lib/platformGlossary.js.map +1 -0
- package/package.json +1 -1
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* pb search — full-text search across all collections via chain.searchEntries.
|
|
3
3
|
* BET-181 Slice 0: routes through runCliCommand for JSON-default output.
|
|
4
4
|
*/
|
|
5
|
+
import { type SearchResult } from '../formatters/search.js';
|
|
6
|
+
/** TEN-4475 (DEC-1958): the platform glossary terms the query names come first; they have no entry id. */
|
|
7
|
+
export declare function withPlatformGlossaryMatches(query: string, entries: SearchResult[]): SearchResult[];
|
|
5
8
|
export declare function runSearch(options: {
|
|
6
9
|
query: string;
|
|
7
10
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGjF,0GAA0G;AAC1G,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAGlG;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzE"}
|
package/dist/commands/search.js
CHANGED
|
@@ -6,12 +6,18 @@ import { getConfigOrGuide } from '../lib/config.js';
|
|
|
6
6
|
import { kernelCall } from '../lib/client.js';
|
|
7
7
|
import { runCliCommand } from '../lib/runner.js';
|
|
8
8
|
import { formatSearchResults } from '../formatters/search.js';
|
|
9
|
+
import { matchPlatformGlossaryTerms } from '../lib/platformGlossary.js';
|
|
10
|
+
/** TEN-4475 (DEC-1958): the platform glossary terms the query names come first; they have no entry id. */
|
|
11
|
+
export function withPlatformGlossaryMatches(query, entries) {
|
|
12
|
+
const platform = matchPlatformGlossaryTerms(query).map((t) => ({ entryId: null, name: t.name, collectionSlug: 'glossary', definition: t.definition, platform: true }));
|
|
13
|
+
return [...platform, ...entries];
|
|
14
|
+
}
|
|
9
15
|
export async function runSearch(options) {
|
|
10
16
|
const config = await getConfigOrGuide(() => runSearch(options));
|
|
11
17
|
if (!config)
|
|
12
18
|
return;
|
|
13
19
|
await runCliCommand({
|
|
14
|
-
fn: () => kernelCall('chain.searchEntries', { query: options.query }),
|
|
20
|
+
fn: async () => withPlatformGlossaryMatches(options.query, await kernelCall('chain.searchEntries', { query: options.query })),
|
|
15
21
|
formatPretty: (results) => formatSearchResults(results ?? []),
|
|
16
22
|
});
|
|
17
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAqB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAqB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,0GAA0G;AAC1G,MAAM,UAAU,2BAA2B,CAAC,KAAa,EAAE,OAAuB;IAChF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC;IAChL,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA0B;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,MAAM,aAAa,CAAiB;QAClC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,UAAU,CAAkD,qBAAqB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9K,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,IAAI,EAAE,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,6 +3,9 @@ export interface SearchResult {
|
|
|
3
3
|
name: string;
|
|
4
4
|
collectionSlug?: string | null;
|
|
5
5
|
status?: string;
|
|
6
|
+
/** TEN-4475: a platform glossary term served from code, not a Chain entry. */
|
|
7
|
+
platform?: true;
|
|
8
|
+
definition?: string;
|
|
6
9
|
}
|
|
7
10
|
export declare function formatSearchResults(results: SearchResult[]): string;
|
|
8
11
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAoBnE"}
|
|
@@ -19,6 +19,10 @@ export function formatSearchResults(results) {
|
|
|
19
19
|
const s = stripControlChars;
|
|
20
20
|
const lines = [];
|
|
21
21
|
for (const r of results) {
|
|
22
|
+
if (r.platform) {
|
|
23
|
+
lines.push(` platform [glossary] ${s(r.name)}${r.definition ? ` ${s(r.definition)}` : ''}`);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
22
26
|
const id = r.entryId ?? r.name;
|
|
23
27
|
const coll = r.collectionSlug ?? '—';
|
|
24
28
|
const status = displayStatus(r.status);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC,CAAC,2EAA2E;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/formatters/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC,CAAC,2EAA2E;AAY5I;sEACsE;AACtE,SAAS,aAAa,CAAC,MAA0B;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAuB;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,GAAG,iBAAiB,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChG,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -54,4 +54,23 @@ describe('formatSearchResults — status column trust-word display (WP-644 S2)',
|
|
|
54
54
|
expect(output).toContain('archived');
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
|
+
describe('pb search — the platform glossary terms (TEN-4475, DEC-1958)', () => {
|
|
58
|
+
it('puts the matching platform term first with no entry id, and a team term of the same name stays', async () => {
|
|
59
|
+
const { withPlatformGlossaryMatches } = await import('../commands/search.js');
|
|
60
|
+
const results = withPlatformGlossaryMatches('team lead', [
|
|
61
|
+
{ entryId: 'GLO-9', name: 'Team Lead', collectionSlug: 'glossary', status: 'accepted' },
|
|
62
|
+
]);
|
|
63
|
+
expect(results.map((r) => [r.entryId, r.name, r.platform ?? false])).toEqual([
|
|
64
|
+
[null, 'Team Lead', true],
|
|
65
|
+
['GLO-9', 'Team Lead', false],
|
|
66
|
+
]);
|
|
67
|
+
const output = formatSearchResults(results);
|
|
68
|
+
expect(output).toContain('platform [glossary] Team Lead The role accountable');
|
|
69
|
+
expect(output).toContain('GLO-9 [glossary] Team Lead');
|
|
70
|
+
});
|
|
71
|
+
it('adds nothing when the query names no platform term', async () => {
|
|
72
|
+
const { withPlatformGlossaryMatches } = await import('../commands/search.js');
|
|
73
|
+
expect(withPlatformGlossaryMatches('roadmap', [])).toEqual([]);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
57
76
|
//# sourceMappingURL=search.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../src/formatters/search.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../src/formatters/search.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform's glossary: four governance words every workspace shares, served from code (TEN-4475,
|
|
3
|
+
* DEC-1949, DEC-1947). No workspace stores them and no team edits them; a team adds its own terms
|
|
4
|
+
* as glossary entries, and those are listed after these. A platform term has no entry id.
|
|
5
|
+
*
|
|
6
|
+
* Readers: the Cortex Glossary page (src/lib/glossary/platformTerms.ts), the build context
|
|
7
|
+
* (convex/agentKnowledge/intelligence.ts), pb search, and the MCP entries search and terminology
|
|
8
|
+
* resource through generated copies (scripts/generate-mcp-embedded-copies.mjs). Zero imports, so
|
|
9
|
+
* the generator copies it verbatim.
|
|
10
|
+
*/
|
|
11
|
+
export interface PlatformGlossaryTerm {
|
|
12
|
+
name: string;
|
|
13
|
+
definition: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const PLATFORM_GLOSSARY_TERMS: readonly PlatformGlossaryTerm[];
|
|
16
|
+
/** The platform terms a free-text search names: every query word (case-insensitive) appears in the
|
|
17
|
+
* term's name. Queries shorter than two characters match nothing, like the entry search. */
|
|
18
|
+
export declare function matchPlatformGlossaryTerms(query: string): PlatformGlossaryTerm[];
|
|
19
|
+
//# sourceMappingURL=platformGlossary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformGlossary.d.ts","sourceRoot":"","sources":["../../src/lib/platformGlossary.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAKlE,CAAC;AAEF;6FAC6F;AAC7F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAOhF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// GENERATED by scripts/generate-mcp-embedded-copies.mjs from kernel/governance/platformGlossary.ts.
|
|
2
|
+
// DO NOT EDIT. Run `npm run mcp:embedded-copies` to regenerate.
|
|
3
|
+
// Local runtime copy for the isolated connector build.
|
|
4
|
+
export const PLATFORM_GLOSSARY_TERMS = [
|
|
5
|
+
{ name: 'Team', definition: 'A group of people and agents working toward one purpose; its roles own its decisions, rules and work.' },
|
|
6
|
+
{ name: 'Team Lead', definition: 'The role accountable for a team\'s purpose; it decides anything that belongs to a role nobody holds.' },
|
|
7
|
+
{ name: 'Role', definition: 'A named set of responsibilities a person holds; whoever sits in it decides and accepts the entries it owns.' },
|
|
8
|
+
{ name: 'Tension', definition: 'A gap someone notices between how things are and how they should be; linking one to an entry is how you say you disagree with it.' },
|
|
9
|
+
];
|
|
10
|
+
/** The platform terms a free-text search names: every query word (case-insensitive) appears in the
|
|
11
|
+
* term's name. Queries shorter than two characters match nothing, like the entry search. */
|
|
12
|
+
export function matchPlatformGlossaryTerms(query) {
|
|
13
|
+
const words = query.toLowerCase().split(/\s+/).filter(Boolean);
|
|
14
|
+
if (query.trim().length < 2 || words.length === 0)
|
|
15
|
+
return [];
|
|
16
|
+
return PLATFORM_GLOSSARY_TERMS.filter((term) => {
|
|
17
|
+
const name = term.name.toLowerCase();
|
|
18
|
+
return words.every((word) => name.includes(word));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=platformGlossary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformGlossary.js","sourceRoot":"","sources":["../../src/lib/platformGlossary.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,gEAAgE;AAChE,uDAAuD;AAkBvD,MAAM,CAAC,MAAM,uBAAuB,GAAoC;IACvE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,uGAAuG,EAAE;IACrI,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,sGAAsG,EAAE;IACzI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,6GAA6G,EAAE;IAC3I,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,mIAAmI,EAAE;CACpK,CAAC;AAEF;6FAC6F;AAC7F,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACJ,CAAC"}
|