greprag 5.49.5 → 5.49.8
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/arm-reminder.d.ts +3 -10
- package/dist/commands/arm-reminder.js +8 -26
- package/dist/commands/arm-reminder.js.map +1 -1
- package/dist/commands/corpus/client.d.ts +5 -1
- package/dist/commands/corpus/client.js +10 -3
- package/dist/commands/corpus/client.js.map +1 -1
- package/dist/commands/corpus/index.js +21 -1
- package/dist/commands/corpus/index.js.map +1 -1
- package/dist/commands/corpus/manage.js +31 -5
- package/dist/commands/corpus/manage.js.map +1 -1
- package/dist/commands/corpus/search.js +13 -6
- package/dist/commands/corpus/search.js.map +1 -1
- package/dist/commands/corpus/status.js +2 -1
- package/dist/commands/corpus/status.js.map +1 -1
- package/dist/commands/corpus/tags.d.ts +17 -0
- package/dist/commands/corpus/tags.js +91 -0
- package/dist/commands/corpus/tags.js.map +1 -0
- package/dist/commands/corpus-reminder.d.ts +15 -0
- package/dist/commands/corpus-reminder.js +34 -0
- package/dist/commands/corpus-reminder.js.map +1 -0
- package/dist/commands/inbox-primer-reminder.js +1 -1
- package/dist/commands/inbox-primer-reminder.js.map +1 -1
- package/dist/commands/memory-reflex.d.ts +8 -16
- package/dist/commands/memory-reflex.js +11 -28
- package/dist/commands/memory-reflex.js.map +1 -1
- package/dist/commands/reminder-registry.js +2 -0
- package/dist/commands/reminder-registry.js.map +1 -1
- package/dist/commands/reminder-types.d.ts +5 -0
- package/dist/hook.js +28 -60
- package/dist/hook.js.map +1 -1
- package/dist/session-id.d.ts +0 -21
- package/dist/session-id.js +0 -32
- package/dist/session-id.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,14 +5,6 @@
|
|
|
5
5
|
* supplies `armed` (isLocallyArmed) + `sessionUnread` (this session's own mail).
|
|
6
6
|
* adr: adr/session-id-awareness.md */
|
|
7
7
|
import { ReminderEnv, Detection, ReminderModule } from './reminder-types';
|
|
8
|
-
/** SessionStart announce — the heavy half, loaded once (+ re-fired on compact via the
|
|
9
|
-
* session-id hook). Leads with ARM NOW (not "here's how for later") so the agent arms
|
|
10
|
-
* immediately; states peers ARE reaching this session, and teaches the drop-anytime →
|
|
11
|
-
* MUST re-arm fact that licenses the per-turn reminder. Carries the deferred-Monitor
|
|
12
|
-
* call shape (ToolSearch select:Monitor + required description/timeout_ms) so the arm
|
|
13
|
-
* call succeeds unaided. Do NOT trim the ToolSearch clause — the deferral made it
|
|
14
|
-
* load-bearing (adr/session-id-awareness.md 2026-05-29). adr: adr/session-id-awareness.md */
|
|
15
|
-
export declare function buildArmAnnounce(short: string, ownerPid?: number | null, alias?: string | null, assistant?: boolean): string;
|
|
16
8
|
/** Detect the watcher deficiency. armed → silent (the auto-stop). Unarmed → nag when a
|
|
17
9
|
* peer has actually messaged this session (grounded + TRUE — nag only when
|
|
18
10
|
* sessionUnread>0, so it never decays into a cried-wolf banner), else nudge. */
|
|
@@ -20,6 +12,7 @@ export declare function armDetect(env: ReminderEnv): Detection;
|
|
|
20
12
|
/** Per-turn thin line. nag = a real peer message waits (true by construction); nudge =
|
|
21
13
|
* unarmed with no mail. The heavy how-to-arm lives in the SessionStart announce. */
|
|
22
14
|
export declare function buildArmReminder(d: Detection): string | null;
|
|
23
|
-
/** The reference module
|
|
24
|
-
*
|
|
15
|
+
/** The reference module — now REMINDER-ONLY. No SessionStart announce: arming is taught
|
|
16
|
+
* once by the inbox-primer (the single announce line). This stays the per-turn poke that
|
|
17
|
+
* fires while unarmed and auto-silences when armed. Wired into reminder-registry.ts. */
|
|
25
18
|
export declare const watcherArmModule: ReminderModule;
|
|
@@ -7,31 +7,12 @@
|
|
|
7
7
|
* adr: adr/session-id-awareness.md */
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.watcherArmModule = void 0;
|
|
10
|
-
exports.buildArmAnnounce = buildArmAnnounce;
|
|
11
10
|
exports.armDetect = armDetect;
|
|
12
11
|
exports.buildArmReminder = buildArmReminder;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* MUST re-arm fact that licenses the per-turn reminder. Carries the deferred-Monitor
|
|
18
|
-
* call shape (ToolSearch select:Monitor + required description/timeout_ms) so the arm
|
|
19
|
-
* call succeeds unaided. Do NOT trim the ToolSearch clause — the deferral made it
|
|
20
|
-
* load-bearing (adr/session-id-awareness.md 2026-05-29). adr: adr/session-id-awareness.md */
|
|
21
|
-
function buildArmAnnounce(short, ownerPid, alias = null, assistant = false) {
|
|
22
|
-
const handle = alias || '<handle>';
|
|
23
|
-
return (`[⚠ ARM YOUR INBOX WATCHER NOW. Peers are live in your mesh trying to coordinate `
|
|
24
|
-
+ `with this session, and the operator can DM you — but they reach you ONLY while armed. `
|
|
25
|
-
+ `Unarmed, you're invisible and their messages silently pile up. The watcher can DROP `
|
|
26
|
-
+ `ANYTIME (crash / reload / OOM) — every turn you're flagged unarmed you MUST re-arm, `
|
|
27
|
-
+ `or coordination breaks. `
|
|
28
|
-
+ `ARM: Monitor is a deferred tool — first load its schema (ToolSearch query `
|
|
29
|
-
+ `"select:Monitor"), then call Monitor with persistent:true, timeout_ms:3600000, `
|
|
30
|
-
+ `description:"greprag inbox ${short}", and command: `
|
|
31
|
-
+ `\`${(0, session_id_1.armMonitorCommand)(short, ownerPid, assistant)}\`. `
|
|
32
|
-
+ `Then drain what's waiting: \`greprag inbox\`. `
|
|
33
|
-
+ `Reply to you: ${handle}@greprag.com/${short}.]`);
|
|
34
|
-
}
|
|
12
|
+
// SessionStart arming guidance lives in the inbox-primer now (the ONE announce line,
|
|
13
|
+
// carrying the Monitor how-to). This module is REMINDER-ONLY — the per-turn poke when
|
|
14
|
+
// unarmed. The old buildArmAnnounce (a duplicate SessionStart arm announce) and the
|
|
15
|
+
// never-called buildArmDirective were removed 2026-06-22. adr: adr/hook-enable-gate.md
|
|
35
16
|
/** Detect the watcher deficiency. armed → silent (the auto-stop). Unarmed → nag when a
|
|
36
17
|
* peer has actually messaged this session (grounded + TRUE — nag only when
|
|
37
18
|
* sessionUnread>0, so it never decays into a cried-wolf banner), else nudge. */
|
|
@@ -54,12 +35,13 @@ function buildArmReminder(d) {
|
|
|
54
35
|
}
|
|
55
36
|
return `⚠ Watcher down — peers can't reach you. RE-ARM now.`;
|
|
56
37
|
}
|
|
57
|
-
/** The reference module
|
|
58
|
-
*
|
|
38
|
+
/** The reference module — now REMINDER-ONLY. No SessionStart announce: arming is taught
|
|
39
|
+
* once by the inbox-primer (the single announce line). This stays the per-turn poke that
|
|
40
|
+
* fires while unarmed and auto-silences when armed. Wired into reminder-registry.ts. */
|
|
59
41
|
exports.watcherArmModule = {
|
|
60
42
|
id: 'watcher-arm',
|
|
61
43
|
detect: armDetect,
|
|
62
|
-
announce: (
|
|
44
|
+
announce: () => null,
|
|
63
45
|
reminder: (d) => buildArmReminder(d),
|
|
64
46
|
};
|
|
65
47
|
//# sourceMappingURL=arm-reminder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arm-reminder.js","sourceRoot":"","sources":["../../src/commands/arm-reminder.ts"],"names":[],"mappings":";AAAA;;;;;uCAKuC;;;AAYvC,
|
|
1
|
+
{"version":3,"file":"arm-reminder.js","sourceRoot":"","sources":["../../src/commands/arm-reminder.ts"],"names":[],"mappings":";AAAA;;;;;uCAKuC;;;AAYvC,8BAMC;AAID,4CAOC;AAzBD,qFAAqF;AACrF,sFAAsF;AACtF,oFAAoF;AACpF,uFAAuF;AAEvF;;iFAEiF;AACjF,SAAgB,SAAS,CAAC,GAAgB;IACxC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE;QACrC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED;qFACqF;AACrF,SAAgB,gBAAgB,CAAC,CAAY;IAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,CAAC,CAAC,MAA8B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,0BAA0B,MAAM,+DAA+D,CAAC;IACzG,CAAC;IACD,OAAO,qDAAqD,CAAC;AAC/D,CAAC;AAED;;yFAEyF;AAC5E,QAAA,gBAAgB,GAAmB;IAC9C,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;IACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;CACrC,CAAC"}
|
|
@@ -18,15 +18,19 @@ export declare function getConfig(): Cfg;
|
|
|
18
18
|
export declare function abortNotConfigured(): never;
|
|
19
19
|
export declare function apiCall<T>(url: string, apiKey: string, body: Record<string, unknown>): Promise<T>;
|
|
20
20
|
export declare function apiGet<T>(url: string, apiKey: string): Promise<T>;
|
|
21
|
-
export declare function apiDelete<T>(url: string, apiKey: string): Promise<T>;
|
|
21
|
+
export declare function apiDelete<T>(url: string, apiKey: string, body?: Record<string, unknown>): Promise<T>;
|
|
22
22
|
export interface StoreSummary {
|
|
23
23
|
id: string;
|
|
24
24
|
kind: string;
|
|
25
25
|
name: string;
|
|
26
|
+
tags?: string[];
|
|
26
27
|
nodeCount: number;
|
|
27
28
|
wordCount: number;
|
|
28
29
|
createdAt: string;
|
|
29
30
|
}
|
|
31
|
+
/** Internal store kinds — engine plumbing, NOT user corpora. Hidden from the
|
|
32
|
+
* default `corpus list`; shown with --all or an explicit --kind. adr: adr/corpus-tags.md */
|
|
33
|
+
export declare const INTERNAL_KINDS: readonly ["memory", "fix", "inbox"];
|
|
30
34
|
export interface QueryNode {
|
|
31
35
|
id: string;
|
|
32
36
|
nodeId: string;
|
|
@@ -41,7 +41,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
41
41
|
};
|
|
42
42
|
})();
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.VALID_KINDS = exports.UUID_RE = exports.API_URL_DEFAULT = void 0;
|
|
44
|
+
exports.INTERNAL_KINDS = exports.VALID_KINDS = exports.UUID_RE = exports.API_URL_DEFAULT = void 0;
|
|
45
45
|
exports.getConfig = getConfig;
|
|
46
46
|
exports.abortNotConfigured = abortNotConfigured;
|
|
47
47
|
exports.apiCall = apiCall;
|
|
@@ -117,15 +117,22 @@ async function apiGet(url, apiKey) {
|
|
|
117
117
|
throw new Error(`API ${res.status}: ${await res.text()}`);
|
|
118
118
|
return res.json();
|
|
119
119
|
}
|
|
120
|
-
async function apiDelete(url, apiKey) {
|
|
120
|
+
async function apiDelete(url, apiKey, body) {
|
|
121
121
|
const res = await fetch(url, {
|
|
122
122
|
method: 'DELETE',
|
|
123
|
-
headers: {
|
|
123
|
+
headers: {
|
|
124
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
125
|
+
...(body ? { 'Content-Type': 'application/json' } : {}),
|
|
126
|
+
},
|
|
127
|
+
...(body ? { body: JSON.stringify(body) } : {}),
|
|
124
128
|
});
|
|
125
129
|
if (!res.ok)
|
|
126
130
|
throw new Error(`API ${res.status}: ${await res.text()}`);
|
|
127
131
|
return res.json();
|
|
128
132
|
}
|
|
133
|
+
/** Internal store kinds — engine plumbing, NOT user corpora. Hidden from the
|
|
134
|
+
* default `corpus list`; shown with --all or an explicit --kind. adr: adr/corpus-tags.md */
|
|
135
|
+
exports.INTERNAL_KINDS = ['memory', 'fix', 'inbox'];
|
|
129
136
|
// -- Arg helpers -----------------------------------------------------------
|
|
130
137
|
function getFlag(args, flag) {
|
|
131
138
|
const idx = args.indexOf(flag);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/commands/corpus/client.ts"],"names":[],"mappings":";AAAA;;;;;;;kCAOkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiClC,8BAQC;AAED,gDAGC;AAID,0BAWC;AAED,wBAMC;AAED,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/commands/corpus/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,7 @@ const section_1 = require("./section");
|
|
|
31
31
|
const status_1 = require("./status");
|
|
32
32
|
const manage_1 = require("./manage");
|
|
33
33
|
const refresh_1 = require("./refresh");
|
|
34
|
+
const tags_1 = require("./tags");
|
|
34
35
|
const SUB_HELP = `
|
|
35
36
|
greprag corpus — upload, search, walk, and keep-fresh text corpora.
|
|
36
37
|
|
|
@@ -68,9 +69,19 @@ Subcommands:
|
|
|
68
69
|
last fetched/changed, next check, failures.
|
|
69
70
|
audit <store> [--limit N] Show recent refresh evidence: preserved,
|
|
70
71
|
fresh, and removed node IDs + hashes.
|
|
71
|
-
list [--kind K]
|
|
72
|
+
list [--kind K] [--tag T] [--all] List stores under this tenant. Hides
|
|
73
|
+
internal stores (memory/fix/inbox) by
|
|
74
|
+
default; --all or --kind shows them.
|
|
75
|
+
tag <store> <tag>... Add organization tag(s) to a store.
|
|
76
|
+
tag rename <old> <new> Rename a tag across EVERY store with it.
|
|
77
|
+
untag <store> <tag>... Remove tag(s) from a store.
|
|
78
|
+
tags List all tags in use + store counts
|
|
79
|
+
(incl. standard seed suggestions).
|
|
72
80
|
delete <store> [--yes] Delete a store. --yes to confirm.
|
|
73
81
|
|
|
82
|
+
Tags are a free-form organization axis, orthogonal to --kind (the engine type).
|
|
83
|
+
Standard seeds (suggestions, rename/add freely): api-docs, research, book, reference.
|
|
84
|
+
|
|
74
85
|
Examples:
|
|
75
86
|
greprag corpus upload ./meditations.txt --enriched --name "Meditations"
|
|
76
87
|
greprag corpus upload https://code.claude.com/docs/llms-full.txt --raw --name "claude-code-docs"
|
|
@@ -87,6 +98,12 @@ Examples:
|
|
|
87
98
|
greprag corpus sources claude-docs
|
|
88
99
|
greprag corpus audit claude-docs
|
|
89
100
|
greprag corpus list --kind docs
|
|
101
|
+
greprag corpus list --tag api-docs
|
|
102
|
+
greprag corpus tag stripe-docs api-docs stripe
|
|
103
|
+
greprag corpus tag rename api-docs reference-docs
|
|
104
|
+
greprag corpus untag stripe-docs stripe
|
|
105
|
+
greprag corpus tags
|
|
106
|
+
greprag corpus search "webhook signing" --tag api-docs
|
|
90
107
|
greprag corpus delete Meditations --yes
|
|
91
108
|
`.trim();
|
|
92
109
|
async function runCorpus(args) {
|
|
@@ -102,6 +119,9 @@ async function runCorpus(args) {
|
|
|
102
119
|
case 'sources': return (0, refresh_1.sourcesCmd)(rest);
|
|
103
120
|
case 'audit': return (0, refresh_1.auditCmd)(rest);
|
|
104
121
|
case 'list': return (0, manage_1.listCmd)(rest);
|
|
122
|
+
case 'tag': return (0, tags_1.tagCmd)(rest);
|
|
123
|
+
case 'untag': return (0, tags_1.untagCmd)(rest);
|
|
124
|
+
case 'tags': return (0, tags_1.tagsCmd)(rest);
|
|
105
125
|
case 'delete': return (0, manage_1.deleteCmd)(rest);
|
|
106
126
|
case undefined:
|
|
107
127
|
case 'help':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/corpus/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;sDAsBsD;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/corpus/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;sDAsBsD;;AAsFtD,8BA4BC;AAhHD,qCAAqC;AACrC,qCAAqC;AACrC,iCAAiC;AACjC,uCAAuC;AACvC,qCAAqC;AACrC,qCAA8C;AAC9C,uCAA6D;AAC7D,iCAAmD;AAEnD,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEhB,CAAC,IAAI,EAAE,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC,CAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;QACvC,KAAK,QAAQ,CAAC,CAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,CAAI,OAAO,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;QACrC,KAAK,SAAS,CAAC,CAAC,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;QACxC,KAAK,QAAQ,CAAC,CAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;QACvC,KAAK,SAAS,CAAC,CAAC,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;QACxC,KAAK,SAAS,CAAC,CAAC,OAAO,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;QACxC,KAAK,OAAO,CAAC,CAAG,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM,CAAC,CAAI,OAAO,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC;QACrC,KAAK,KAAK,CAAC,CAAK,OAAO,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QACpC,KAAK,OAAO,CAAC,CAAG,OAAO,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC;QACtC,KAAK,MAAM,CAAC,CAAI,OAAO,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;QACrC,KAAK,QAAQ,CAAC,CAAE,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;QACvC,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO;QACT;YACE,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -12,18 +12,44 @@ async function listCmd(args) {
|
|
|
12
12
|
if (!cfg.apiKey)
|
|
13
13
|
(0, client_1.abortNotConfigured)();
|
|
14
14
|
const kindFlag = (0, client_1.getFlag)(args, '--kind');
|
|
15
|
-
const
|
|
15
|
+
const tagFlag = (0, client_1.getFlag)(args, '--tag');
|
|
16
|
+
const showAll = args.includes('--all');
|
|
17
|
+
const params = new URLSearchParams();
|
|
18
|
+
if (kindFlag)
|
|
19
|
+
params.set('kind', kindFlag);
|
|
20
|
+
if (tagFlag)
|
|
21
|
+
params.set('tag', tagFlag);
|
|
22
|
+
const qs = params.toString();
|
|
23
|
+
const url = `${cfg.apiUrl}/v1/stores${qs ? `?${qs}` : ''}`;
|
|
16
24
|
const result = await (0, client_1.apiGet)(url, cfg.apiKey);
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
// Hide internal stores (memory/fix/inbox) from the default user-facing list —
|
|
26
|
+
// they're engine plumbing, not user corpora. An explicit --kind or --all
|
|
27
|
+
// shows them for audit. adr: adr/corpus-tags.md
|
|
28
|
+
const internal = new Set(client_1.INTERNAL_KINDS);
|
|
29
|
+
const hideInternal = !showAll && !kindFlag;
|
|
30
|
+
const stores = hideInternal
|
|
31
|
+
? result.stores.filter(s => !internal.has(s.kind))
|
|
32
|
+
: result.stores;
|
|
33
|
+
if (stores.length === 0) {
|
|
34
|
+
if (tagFlag)
|
|
35
|
+
console.log(`No stores tagged "${tagFlag}"${kindFlag ? ` with kind="${kindFlag}"` : ''}.`);
|
|
36
|
+
else if (kindFlag)
|
|
37
|
+
console.log(`No stores with kind="${kindFlag}".`);
|
|
38
|
+
else
|
|
39
|
+
console.log('No stores yet.');
|
|
19
40
|
console.log('Upload one: greprag corpus upload <file|url> --name "<name>"');
|
|
20
41
|
return;
|
|
21
42
|
}
|
|
22
|
-
const sorted = [...
|
|
43
|
+
const sorted = [...stores].sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
44
|
+
const hidden = result.stores.length - stores.length;
|
|
23
45
|
console.log(`\n${sorted.length} store${sorted.length === 1 ? '' : 's'}:\n`);
|
|
24
46
|
for (const s of sorted) {
|
|
25
47
|
const created = new Date(s.createdAt).toISOString().slice(0, 10);
|
|
26
|
-
|
|
48
|
+
const tagStr = (s.tags && s.tags.length) ? ` #${s.tags.join(' #')}` : '';
|
|
49
|
+
console.log(` ${s.id} ${s.kind.padEnd(8)} ${s.nodeCount.toString().padStart(6)} nodes ${s.wordCount.toString().padStart(8)} words ${created} ${s.name}${tagStr}`);
|
|
50
|
+
}
|
|
51
|
+
if (hidden > 0) {
|
|
52
|
+
console.log(`\n (${hidden} internal store${hidden === 1 ? '' : 's'} hidden — memory/fix/inbox. Use --all to show.)`);
|
|
27
53
|
}
|
|
28
54
|
}
|
|
29
55
|
async function deleteCmd(args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../../src/commands/corpus/manage.ts"],"names":[],"mappings":";AAAA;;;8EAG8E;;AAO9E,
|
|
1
|
+
{"version":3,"file":"manage.js","sourceRoot":"","sources":["../../../src/commands/corpus/manage.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.searchCmd = searchCmd;
|
|
9
9
|
const client_1 = require("./client");
|
|
10
|
-
const SEARCH_VALUE_FLAGS = new Set(['--limit', '--section', '--shape', '--store', '--kind', '--rerank-model', '--authenticity']);
|
|
10
|
+
const SEARCH_VALUE_FLAGS = new Set(['--limit', '--section', '--shape', '--store', '--kind', '--tag', '--rerank-model', '--authenticity']);
|
|
11
11
|
/** Score tag: the calibrated rerank confidence when the feature reranker ran
|
|
12
12
|
* (the honest signal), else the raw RRF score. RRF magnitudes are uncalibrated
|
|
13
13
|
* and compressed — misleading as a relevance read. */
|
|
@@ -27,7 +27,8 @@ async function searchCmd(args) {
|
|
|
27
27
|
const all = args.includes('--all');
|
|
28
28
|
const storeFlags = (0, client_1.getFlags)(args, '--store');
|
|
29
29
|
const kind = (0, client_1.getFlag)(args, '--kind');
|
|
30
|
-
const
|
|
30
|
+
const tag = (0, client_1.getFlag)(args, '--tag');
|
|
31
|
+
const multistore = all || storeFlags.length > 0 || !!kind || !!tag;
|
|
31
32
|
const limit = parseInt((0, client_1.getFlag)(args, '--limit') || (multistore ? '8' : '5'), 10);
|
|
32
33
|
const section = (0, client_1.getFlag)(args, '--section');
|
|
33
34
|
const shape = (0, client_1.getFlag)(args, '--shape');
|
|
@@ -53,7 +54,7 @@ async function searchCmd(args) {
|
|
|
53
54
|
if (multistore) {
|
|
54
55
|
const queryText = positionals[0];
|
|
55
56
|
if (!queryText) {
|
|
56
|
-
console.error('Usage: greprag corpus search "<lexical query>" (--all | --store <ref> [--store <ref>]...
|
|
57
|
+
console.error('Usage: greprag corpus search "<lexical query>" (--all | --store <ref> [--store <ref>]... | --tag T | --kind K) [--limit 8] [--section "<heading>"] [--rerank]');
|
|
57
58
|
process.exit(1);
|
|
58
59
|
}
|
|
59
60
|
let storeIds;
|
|
@@ -62,11 +63,17 @@ async function searchCmd(args) {
|
|
|
62
63
|
for (const ref of storeFlags)
|
|
63
64
|
storeIds.push((await (0, client_1.resolveStore)(ref, cfg.apiUrl, cfg.apiKey)).id);
|
|
64
65
|
}
|
|
65
|
-
else if (kind) {
|
|
66
|
-
|
|
66
|
+
else if (kind || tag) {
|
|
67
|
+
// --tag and --kind both narrow the store set server-side (AND together).
|
|
68
|
+
const params = new URLSearchParams();
|
|
69
|
+
if (kind)
|
|
70
|
+
params.set('kind', kind);
|
|
71
|
+
if (tag)
|
|
72
|
+
params.set('tag', tag);
|
|
73
|
+
const list = await (0, client_1.apiGet)(`${cfg.apiUrl}/v1/stores?${params.toString()}`, cfg.apiKey);
|
|
67
74
|
storeIds = list.stores.map(s => s.id);
|
|
68
75
|
if (storeIds.length === 0) {
|
|
69
|
-
console.error(`No stores
|
|
76
|
+
console.error(`No stores match${tag ? ` tag="${tag}"` : ''}${kind ? ` kind="${kind}"` : ''}.`);
|
|
70
77
|
process.exit(1);
|
|
71
78
|
}
|
|
72
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/corpus/search.ts"],"names":[],"mappings":";AAAA;;;;qEAIqE;;AAyBrE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/corpus/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ async function statusCmd(args) {
|
|
|
24
24
|
const barWidth = 30;
|
|
25
25
|
const filled = Math.round((pct / 100) * barWidth);
|
|
26
26
|
const bar = '█'.repeat(filled) + '░'.repeat(barWidth - filled);
|
|
27
|
-
|
|
27
|
+
const tagStr = (store.tags && store.tags.length) ? ` · #${store.tags.join(' #')}` : '';
|
|
28
|
+
console.log(`\n${store.name} · ${store.nodeCount} nodes · ${store.kind}${tagStr}`);
|
|
28
29
|
console.log(`\n Enrichment: [${bar}] ${pct}%`);
|
|
29
30
|
console.log(` Completed: ${s.completed.toLocaleString().padStart(6)} / ${s.total.toLocaleString()}`);
|
|
30
31
|
if (s.pending > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/corpus/status.ts"],"names":[],"mappings":";AAAA;;;iFAGiF;;AAMjF,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/corpus/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** greprag corpus tag / untag / tags — the organization axis.
|
|
2
|
+
*
|
|
3
|
+
* Tags are a free-form, many-per-store label set, orthogonal to `kind` (the
|
|
4
|
+
* closed engine enum). The engine never branches on a tag; tags drive
|
|
5
|
+
* filtering, the corpus announce, and human/agent navigation. Standard seed
|
|
6
|
+
* tags (api-docs / research / book / reference) are suggestions, not a closed
|
|
7
|
+
* set — users add their own and rename freely. adr: adr/corpus-tags.md
|
|
8
|
+
*
|
|
9
|
+
* Subcommands:
|
|
10
|
+
* tag <store> <tag>... add tag(s) to a store
|
|
11
|
+
* tag rename <old> <new> rename a tag across EVERY store carrying it
|
|
12
|
+
* untag <store> <tag>... remove tag(s) from a store
|
|
13
|
+
* tags list all tags in use + per-tag store counts
|
|
14
|
+
*/
|
|
15
|
+
export declare function tagCmd(args: string[]): Promise<void>;
|
|
16
|
+
export declare function untagCmd(args: string[]): Promise<void>;
|
|
17
|
+
export declare function tagsCmd(_args: string[]): Promise<void>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** greprag corpus tag / untag / tags — the organization axis.
|
|
3
|
+
*
|
|
4
|
+
* Tags are a free-form, many-per-store label set, orthogonal to `kind` (the
|
|
5
|
+
* closed engine enum). The engine never branches on a tag; tags drive
|
|
6
|
+
* filtering, the corpus announce, and human/agent navigation. Standard seed
|
|
7
|
+
* tags (api-docs / research / book / reference) are suggestions, not a closed
|
|
8
|
+
* set — users add their own and rename freely. adr: adr/corpus-tags.md
|
|
9
|
+
*
|
|
10
|
+
* Subcommands:
|
|
11
|
+
* tag <store> <tag>... add tag(s) to a store
|
|
12
|
+
* tag rename <old> <new> rename a tag across EVERY store carrying it
|
|
13
|
+
* untag <store> <tag>... remove tag(s) from a store
|
|
14
|
+
* tags list all tags in use + per-tag store counts
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.tagCmd = tagCmd;
|
|
18
|
+
exports.untagCmd = untagCmd;
|
|
19
|
+
exports.tagsCmd = tagsCmd;
|
|
20
|
+
const client_1 = require("./client");
|
|
21
|
+
const SEED_TAGS = ['api-docs', 'research', 'book', 'reference'];
|
|
22
|
+
async function tagCmd(args) {
|
|
23
|
+
const cfg = (0, client_1.getConfig)();
|
|
24
|
+
if (!cfg.apiKey)
|
|
25
|
+
(0, client_1.abortNotConfigured)();
|
|
26
|
+
// `tag rename <old> <new>` — propagating rename across the tenant.
|
|
27
|
+
if (args[0] === 'rename') {
|
|
28
|
+
const oldTag = args[1];
|
|
29
|
+
const newTag = args[2];
|
|
30
|
+
if (!oldTag || !newTag) {
|
|
31
|
+
console.error('Usage: greprag corpus tag rename <oldTag> <newTag>');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const res = await (0, client_1.apiCall)(`${cfg.apiUrl}/v1/stores/tags/rename`, cfg.apiKey, { old: oldTag, new: newTag });
|
|
35
|
+
if (!res.ok)
|
|
36
|
+
throw new Error(res.error || 'rename failed');
|
|
37
|
+
console.log(`Renamed "${oldTag}" → "${newTag}" across ${res.storesTouched} store${res.storesTouched === 1 ? '' : 's'}.`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const ref = args[0];
|
|
41
|
+
const tags = args.slice(1).filter(t => !t.startsWith('-'));
|
|
42
|
+
if (!ref || tags.length === 0) {
|
|
43
|
+
console.error('Usage: greprag corpus tag <storeIdOrName> <tag>...\n or: greprag corpus tag rename <oldTag> <newTag>');
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
const store = await (0, client_1.resolveStore)(ref, cfg.apiUrl, cfg.apiKey);
|
|
47
|
+
const res = await (0, client_1.apiCall)(`${cfg.apiUrl}/v1/stores/${store.id}/tags`, cfg.apiKey, { tags });
|
|
48
|
+
if (!res.ok)
|
|
49
|
+
throw new Error(res.error || 'tag failed');
|
|
50
|
+
console.log(`${store.name}: tags = [${(res.tags || []).join(', ')}]`);
|
|
51
|
+
}
|
|
52
|
+
async function untagCmd(args) {
|
|
53
|
+
const cfg = (0, client_1.getConfig)();
|
|
54
|
+
if (!cfg.apiKey)
|
|
55
|
+
(0, client_1.abortNotConfigured)();
|
|
56
|
+
const ref = args[0];
|
|
57
|
+
const tags = args.slice(1).filter(t => !t.startsWith('-'));
|
|
58
|
+
if (!ref || tags.length === 0) {
|
|
59
|
+
console.error('Usage: greprag corpus untag <storeIdOrName> <tag>...');
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
const store = await (0, client_1.resolveStore)(ref, cfg.apiUrl, cfg.apiKey);
|
|
63
|
+
const res = await (0, client_1.apiDelete)(`${cfg.apiUrl}/v1/stores/${store.id}/tags`, cfg.apiKey, { tags });
|
|
64
|
+
if (!res.ok)
|
|
65
|
+
throw new Error(res.error || 'untag failed');
|
|
66
|
+
console.log(`${store.name}: tags = [${(res.tags || []).join(', ')}]`);
|
|
67
|
+
}
|
|
68
|
+
async function tagsCmd(_args) {
|
|
69
|
+
const cfg = (0, client_1.getConfig)();
|
|
70
|
+
if (!cfg.apiKey)
|
|
71
|
+
(0, client_1.abortNotConfigured)();
|
|
72
|
+
const res = await (0, client_1.apiGet)(`${cfg.apiUrl}/v1/stores/tags`, cfg.apiKey);
|
|
73
|
+
const inUse = new Map(res.tags.map(t => [t.tag, t.storeCount]));
|
|
74
|
+
if (res.tags.length === 0) {
|
|
75
|
+
console.log('\nNo tags in use yet.');
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
console.log(`\n${res.tags.length} tag${res.tags.length === 1 ? '' : 's'} in use:\n`);
|
|
79
|
+
for (const t of res.tags) {
|
|
80
|
+
console.log(` ${t.tag.padEnd(20)} ${t.storeCount.toString().padStart(4)} store${t.storeCount === 1 ? '' : 's'}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Surface the seed tags as suggestions (those not already in use).
|
|
84
|
+
const unusedSeeds = SEED_TAGS.filter(s => !inUse.has(s));
|
|
85
|
+
if (unusedSeeds.length > 0) {
|
|
86
|
+
console.log(`\nStandard tags you can use (suggestions, not enforced): ${unusedSeeds.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
console.log('\n Tag a store: greprag corpus tag <store> <tag>...');
|
|
89
|
+
console.log(' Filter: greprag corpus list --tag <tag> · greprag corpus search "q" --tag <tag>');
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/commands/corpus/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** corpus-announce — the SessionStart announce that names the api-docs-tagged
|
|
2
|
+
* corpus stores on tap + the directive to SEARCH them before answering from
|
|
3
|
+
* training data. The reminder-interrupt "announce" half (load-once schema,
|
|
4
|
+
* never a per-turn nag).
|
|
5
|
+
*
|
|
6
|
+
* WHY: the tenant carries vendor/API reference banks (Stripe, QuickBooks,
|
|
7
|
+
* Cloudflare, Procore, Claude Code docs) as corpus stores tagged `api-docs`.
|
|
8
|
+
* An agent that doesn't know they exist answers from stale training data. This
|
|
9
|
+
* surfaces the set once per session, with the one command that searches it.
|
|
10
|
+
*
|
|
11
|
+
* Lean by construction: silent unless the tenant actually has api-docs-tagged
|
|
12
|
+
* stores (env.corpusApiDocs precomputed by the hook). adr: adr/corpus-tags.md */
|
|
13
|
+
import { ReminderModule } from './reminder-types';
|
|
14
|
+
export declare function buildCorpusAnnounce(names: string[]): string | null;
|
|
15
|
+
export declare const corpusAnnounceModule: ReminderModule;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** corpus-announce — the SessionStart announce that names the api-docs-tagged
|
|
3
|
+
* corpus stores on tap + the directive to SEARCH them before answering from
|
|
4
|
+
* training data. The reminder-interrupt "announce" half (load-once schema,
|
|
5
|
+
* never a per-turn nag).
|
|
6
|
+
*
|
|
7
|
+
* WHY: the tenant carries vendor/API reference banks (Stripe, QuickBooks,
|
|
8
|
+
* Cloudflare, Procore, Claude Code docs) as corpus stores tagged `api-docs`.
|
|
9
|
+
* An agent that doesn't know they exist answers from stale training data. This
|
|
10
|
+
* surfaces the set once per session, with the one command that searches it.
|
|
11
|
+
*
|
|
12
|
+
* Lean by construction: silent unless the tenant actually has api-docs-tagged
|
|
13
|
+
* stores (env.corpusApiDocs precomputed by the hook). adr: adr/corpus-tags.md */
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.corpusAnnounceModule = void 0;
|
|
16
|
+
exports.buildCorpusAnnounce = buildCorpusAnnounce;
|
|
17
|
+
function buildCorpusAnnounce(names) {
|
|
18
|
+
if (!names || names.length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
const shown = names.slice(0, 8);
|
|
21
|
+
const more = names.length > shown.length ? ` (+${names.length - shown.length} more)` : '';
|
|
22
|
+
return [
|
|
23
|
+
`[greprag corpus — API/reference banks on tap: ${shown.join(', ')}${more}.]`,
|
|
24
|
+
'If a corpus covers the domain you\'re in, SEARCH IT before answering from training data:',
|
|
25
|
+
'`greprag corpus search "<your question>" --tag api-docs` (or --store <name> for one bank).',
|
|
26
|
+
].join('\n');
|
|
27
|
+
}
|
|
28
|
+
exports.corpusAnnounceModule = {
|
|
29
|
+
id: 'corpus-announce',
|
|
30
|
+
detect: (_env) => ({ tier: 'silent' }), // never a per-turn nag
|
|
31
|
+
announce: (env) => buildCorpusAnnounce(env.corpusApiDocs || []),
|
|
32
|
+
reminder: () => null,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=corpus-reminder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corpus-reminder.js","sourceRoot":"","sources":["../../src/commands/corpus-reminder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;kFAWkF;;;AAIlF,kDASC;AATD,SAAgB,mBAAmB,CAAC,KAAe;IACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1F,OAAO;QACL,iDAAiD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;QAC5E,0FAA0F;QAC1F,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAEY,QAAA,oBAAoB,GAAmB;IAClD,EAAE,EAAE,iBAAiB;IACrB,MAAM,EAAE,CAAC,IAAiB,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB;IACvF,QAAQ,EAAE,CAAC,GAAgB,EAAiB,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IAC3F,QAAQ,EAAE,GAAkB,EAAE,CAAC,IAAI;CACpC,CAAC"}
|