@gramatr/mcp 0.10.17 → 0.11.0
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/bin/hook-dispatcher.d.ts.map +1 -1
- package/dist/bin/hook-dispatcher.js +15 -0
- package/dist/bin/hook-dispatcher.js.map +1 -1
- package/dist/bin/setup-config-io.d.ts.map +1 -1
- package/dist/bin/setup-config-io.js +6 -2
- package/dist/bin/setup-config-io.js.map +1 -1
- package/dist/bin/setup-shared.d.ts +1 -2
- package/dist/bin/setup-shared.d.ts.map +1 -1
- package/dist/bin/setup-shared.js +1 -9
- package/dist/bin/setup-shared.js.map +1 -1
- package/dist/bin/setup.d.ts.map +1 -1
- package/dist/bin/setup.js +2 -2
- package/dist/bin/setup.js.map +1 -1
- package/dist/hooks/generated/hook-registry.d.ts +23 -0
- package/dist/hooks/generated/hook-registry.d.ts.map +1 -0
- package/dist/hooks/generated/hook-registry.js +61 -0
- package/dist/hooks/generated/hook-registry.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/instructions-loaded.d.ts +30 -0
- package/dist/hooks/instructions-loaded.d.ts.map +1 -0
- package/dist/hooks/instructions-loaded.js +205 -0
- package/dist/hooks/instructions-loaded.js.map +1 -0
- package/dist/hooks/lib/hook-state.d.ts.map +1 -1
- package/dist/hooks/lib/hook-state.js +3 -2
- package/dist/hooks/lib/hook-state.js.map +1 -1
- package/dist/hooks/manifest.d.ts +6 -36
- package/dist/hooks/manifest.d.ts.map +1 -1
- package/dist/hooks/manifest.js +6 -47
- package/dist/hooks/manifest.js.map +1 -1
- package/dist/hooks/subagent-route.d.ts +22 -0
- package/dist/hooks/subagent-route.d.ts.map +1 -0
- package/dist/hooks/subagent-route.js +95 -0
- package/dist/hooks/subagent-route.js.map +1 -0
- package/dist/hooks/task-quality-gate.d.ts +50 -0
- package/dist/hooks/task-quality-gate.d.ts.map +1 -0
- package/dist/hooks/task-quality-gate.js +175 -0
- package/dist/hooks/task-quality-gate.js.map +1 -0
- package/dist/proxy/local-client.d.ts +18 -15
- package/dist/proxy/local-client.d.ts.map +1 -1
- package/dist/proxy/local-client.js +54 -37
- package/dist/proxy/local-client.js.map +1 -1
- package/dist/setup/generated/instruction-blocks.d.ts +3 -3
- package/dist/setup/generated/instruction-blocks.d.ts.map +1 -1
- package/dist/setup/generated/instruction-blocks.js +3 -3
- package/dist/setup/generated/instruction-blocks.js.map +1 -1
- package/dist/setup/generated/platform-guidance.d.ts +39 -0
- package/dist/setup/generated/platform-guidance.d.ts.map +1 -0
- package/dist/setup/generated/platform-guidance.js +27 -0
- package/dist/setup/generated/platform-guidance.js.map +1 -0
- package/dist/setup/generated/platform-hooks.d.ts +4 -4
- package/dist/setup/generated/platform-hooks.d.ts.map +1 -1
- package/dist/setup/generated/platform-hooks.js +79 -27
- package/dist/setup/generated/platform-hooks.js.map +1 -1
- package/dist/setup/instructions.d.ts +4 -4
- package/dist/setup/instructions.d.ts.map +1 -1
- package/dist/setup/instructions.js +14 -16
- package/dist/setup/instructions.js.map +1 -1
- package/dist/setup/integrations.d.ts +9 -0
- package/dist/setup/integrations.d.ts.map +1 -1
- package/dist/setup/integrations.js +17 -1
- package/dist/setup/integrations.js.map +1 -1
- package/dist/setup/platform.d.ts +1 -1
- package/dist/setup/platform.js +1 -1
- package/package.json +4 -6
- package/dist/__mocks__/bun-sqlite.d.ts +0 -34
- package/dist/__mocks__/bun-sqlite.d.ts.map +0 -1
- package/dist/__mocks__/bun-sqlite.js +0 -103
- package/dist/__mocks__/bun-sqlite.js.map +0 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* instructions-loaded.ts — InstructionsLoaded hook.
|
|
3
|
+
*
|
|
4
|
+
* Fires when CLAUDE.md (or another instructions file) is loaded. When the
|
|
5
|
+
* loaded file is gramatr's CLAUDE.md — path contains `.claude/CLAUDE.md`, or
|
|
6
|
+
* content contains the `GRAMATR-START` marker — the hook:
|
|
7
|
+
*
|
|
8
|
+
* 1. Calls `gramatr_resolve_project` with `action: "auto"` (git-derived).
|
|
9
|
+
* 2. Calls `gramatr_session_start` with the resolved project_id.
|
|
10
|
+
* 3. Calls `gramatr_load_handoff` for the project + session.
|
|
11
|
+
* 4. Injects the handoff content as `additionalContext` on stdout so Claude
|
|
12
|
+
* receives it as part of the session context.
|
|
13
|
+
* 5. Writes a concise success line to stderr.
|
|
14
|
+
*
|
|
15
|
+
* For any non-gramatr CLAUDE.md (or on any error), the hook outputs
|
|
16
|
+
* `{ continue: true }` and returns — graceful degradation is required.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
19
|
+
import { callTool } from '../proxy/local-client.js';
|
|
20
|
+
import { deriveProjectId, getGitContext, log, now, readHookInput, } from './lib/gramatr-hook-utils.js';
|
|
21
|
+
import { loadProjectHandoff, startRemoteSession, resolveLocalProjectUuid, normalizeSessionStartResponse, } from './lib/session.js';
|
|
22
|
+
import { setSessionContext } from './lib/hook-state.js';
|
|
23
|
+
import { extractToolPayload } from './lib/tool-envelope.js';
|
|
24
|
+
import { resolveHookClientRuntime } from './lib/client-runtime.js';
|
|
25
|
+
// ── Detection ──
|
|
26
|
+
const GRAMATR_MARKER = 'GRAMATR-START';
|
|
27
|
+
export function isGramatrInstructions(input) {
|
|
28
|
+
const filePath = input.file_path || input.path || '';
|
|
29
|
+
if (filePath.includes('.claude/CLAUDE.md'))
|
|
30
|
+
return true;
|
|
31
|
+
// Check inline content if provided
|
|
32
|
+
if (typeof input.content === 'string' && input.content.includes(GRAMATR_MARKER)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
// Fallback: read the file itself and look for the marker
|
|
36
|
+
if (filePath && existsSync(filePath)) {
|
|
37
|
+
try {
|
|
38
|
+
const raw = readFileSync(filePath, 'utf8');
|
|
39
|
+
if (raw.includes(GRAMATR_MARKER))
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Unreadable — treat as non-gramatr
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// ── Output helpers ──
|
|
49
|
+
function emitAllow() {
|
|
50
|
+
process.stdout.write(JSON.stringify({ continue: true }));
|
|
51
|
+
}
|
|
52
|
+
function emitWithContext(additionalContext) {
|
|
53
|
+
const out = {
|
|
54
|
+
continue: true,
|
|
55
|
+
hookSpecificOutput: {
|
|
56
|
+
hookEventName: 'InstructionsLoaded',
|
|
57
|
+
additionalContext,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
process.stdout.write(JSON.stringify(out));
|
|
61
|
+
}
|
|
62
|
+
// ── Handoff formatting ──
|
|
63
|
+
export function formatHandoff(handoff, projectName, openTasks) {
|
|
64
|
+
const lines = [];
|
|
65
|
+
lines.push('grāmatr Project Context (Auto-loaded from InstructionsLoaded hook)');
|
|
66
|
+
lines.push('');
|
|
67
|
+
if (projectName)
|
|
68
|
+
lines.push(`Project: ${projectName}`);
|
|
69
|
+
if (typeof openTasks === 'number' && openTasks >= 0) {
|
|
70
|
+
lines.push(`Open tasks: ${openTasks}`);
|
|
71
|
+
}
|
|
72
|
+
lines.push('');
|
|
73
|
+
if (handoff) {
|
|
74
|
+
lines.push('## Previous Session Handoff');
|
|
75
|
+
lines.push('');
|
|
76
|
+
if (handoff.where_we_are) {
|
|
77
|
+
lines.push('**Where we are:**');
|
|
78
|
+
lines.push(handoff.where_we_are);
|
|
79
|
+
lines.push('');
|
|
80
|
+
}
|
|
81
|
+
if (handoff.what_shipped) {
|
|
82
|
+
lines.push('**What shipped:**');
|
|
83
|
+
lines.push(handoff.what_shipped);
|
|
84
|
+
lines.push('');
|
|
85
|
+
}
|
|
86
|
+
if (handoff.whats_next) {
|
|
87
|
+
lines.push("**What's next:**");
|
|
88
|
+
lines.push(handoff.whats_next);
|
|
89
|
+
lines.push('');
|
|
90
|
+
}
|
|
91
|
+
if (handoff.key_context) {
|
|
92
|
+
lines.push('**Key context:**');
|
|
93
|
+
lines.push(handoff.key_context);
|
|
94
|
+
lines.push('');
|
|
95
|
+
}
|
|
96
|
+
if (handoff.dont_forget) {
|
|
97
|
+
lines.push("**Don't forget:**");
|
|
98
|
+
lines.push(handoff.dont_forget);
|
|
99
|
+
lines.push('');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
lines.push('No prior handoff available for this project.');
|
|
104
|
+
}
|
|
105
|
+
return lines.join('\n');
|
|
106
|
+
}
|
|
107
|
+
// ── Hook runner ──
|
|
108
|
+
export async function runInstructionsLoadedHook(_args = []) {
|
|
109
|
+
const runtime = resolveHookClientRuntime(_args);
|
|
110
|
+
let input;
|
|
111
|
+
try {
|
|
112
|
+
input = (await readHookInput());
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
emitAllow();
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
// If we can't tell this is gramatr's CLAUDE.md, pass through silently.
|
|
119
|
+
if (!isGramatrInstructions(input)) {
|
|
120
|
+
emitAllow();
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
// Derive project identity from git.
|
|
125
|
+
const git = getGitContext();
|
|
126
|
+
if (!git) {
|
|
127
|
+
log('[gramatr] InstructionsLoaded: no git context, skipping project resolution');
|
|
128
|
+
emitAllow();
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
const fallbackProjectId = deriveProjectId(git.remote, git.projectName);
|
|
132
|
+
// Step 1: resolve the project via server (auto mode — git-derived).
|
|
133
|
+
let resolved = null;
|
|
134
|
+
try {
|
|
135
|
+
const raw = (await callTool('gramatr_resolve_project', {
|
|
136
|
+
action: 'auto',
|
|
137
|
+
git_remote: git.remote,
|
|
138
|
+
project_name: git.projectName,
|
|
139
|
+
directory: git.root,
|
|
140
|
+
}));
|
|
141
|
+
resolved = extractToolPayload(raw);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
log(`[gramatr] InstructionsLoaded: resolve_project failed: ${String(err)}`);
|
|
145
|
+
// Continue with the fallback project id — the hook is best-effort.
|
|
146
|
+
}
|
|
147
|
+
const projectId = resolved?.project_id || fallbackProjectId;
|
|
148
|
+
const projectName = resolved?.project_name || git.projectName;
|
|
149
|
+
// Step 2: start (or resume) a session.
|
|
150
|
+
const localUuid = resolveLocalProjectUuid({
|
|
151
|
+
directory: git.root,
|
|
152
|
+
projectName: git.projectName,
|
|
153
|
+
});
|
|
154
|
+
const sessionStart = await startRemoteSession({
|
|
155
|
+
clientType: runtime.clientType,
|
|
156
|
+
projectId,
|
|
157
|
+
projectName,
|
|
158
|
+
gitRemote: git.remote,
|
|
159
|
+
gitBranch: git.branch,
|
|
160
|
+
directory: git.root,
|
|
161
|
+
projectUuid: localUuid ?? undefined,
|
|
162
|
+
});
|
|
163
|
+
const sessionResult = normalizeSessionStartResponse(sessionStart);
|
|
164
|
+
const sessionId = sessionStart?.project_id ? (input.session_id || 'unknown') : (input.session_id || 'unknown');
|
|
165
|
+
// Step 3: load handoff.
|
|
166
|
+
const handoff = await loadProjectHandoff(projectId);
|
|
167
|
+
// Persist session context locally so downstream hooks can see it.
|
|
168
|
+
try {
|
|
169
|
+
setSessionContext({
|
|
170
|
+
session_id: sessionId,
|
|
171
|
+
project_id: projectId,
|
|
172
|
+
interaction_id: sessionResult.interactionId ?? null,
|
|
173
|
+
entity_id: sessionResult.entityId ?? null,
|
|
174
|
+
project_name: projectName,
|
|
175
|
+
git_root: git.root,
|
|
176
|
+
git_branch: git.branch,
|
|
177
|
+
git_remote: git.remote,
|
|
178
|
+
working_directory: git.root,
|
|
179
|
+
session_start: now(),
|
|
180
|
+
updated_at: now(),
|
|
181
|
+
client_type: runtime.clientType,
|
|
182
|
+
agent_name: runtime.agentName,
|
|
183
|
+
platform: process.platform,
|
|
184
|
+
arch: process.arch,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
// Non-critical — continue.
|
|
189
|
+
}
|
|
190
|
+
// Step 4: emit additionalContext.
|
|
191
|
+
const context = formatHandoff(handoff, projectName, null);
|
|
192
|
+
emitWithContext(context);
|
|
193
|
+
// Step 5: user-visible success line.
|
|
194
|
+
const resumedFragment = sessionResult.resumed ? ' (resumed)' : '';
|
|
195
|
+
log(`[gramatr] Project context loaded: ${projectName}${resumedFragment}`);
|
|
196
|
+
return 0;
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
// Never block — fail gracefully.
|
|
200
|
+
log(`[gramatr] InstructionsLoaded error: ${String(err)}`);
|
|
201
|
+
emitAllow();
|
|
202
|
+
return 0;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=instructions-loaded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions-loaded.js","sourceRoot":"","sources":["../../src/hooks/instructions-loaded.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"hook-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Set GRAMATR_STATE_DB=:memory: in tests to avoid touching the filesystem.
|
|
9
9
|
*/
|
|
10
10
|
import { DatabaseSync } from "node:sqlite";
|
|
11
|
+
const Database = DatabaseSync;
|
|
11
12
|
import { existsSync, mkdirSync } from "node:fs";
|
|
12
13
|
import { dirname, join } from "node:path";
|
|
13
14
|
import { getGramatrDirFromEnv, getHomeDir } from "../../config-runtime.js";
|
|
@@ -45,11 +46,11 @@ function getDb() {
|
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
try {
|
|
48
|
-
_db = new
|
|
49
|
+
_db = new Database(_filesystemAvailable ? path : ":memory:");
|
|
49
50
|
}
|
|
50
51
|
catch {
|
|
51
52
|
_filesystemAvailable = false;
|
|
52
|
-
_db = new
|
|
53
|
+
_db = new Database(":memory:");
|
|
53
54
|
}
|
|
54
55
|
_db.exec("PRAGMA journal_mode = WAL");
|
|
55
56
|
_db.exec("PRAGMA synchronous = NORMAL");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-state.js","sourceRoot":"","sources":["../../../src/hooks/lib/hook-state.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/manifest.d.ts
CHANGED
|
@@ -1,37 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}, {
|
|
8
|
-
readonly name: "edit-tracker";
|
|
9
|
-
readonly description: "Track modified files for lint awareness.";
|
|
10
|
-
}, {
|
|
11
|
-
readonly name: "git-gate";
|
|
12
|
-
readonly description: "Enforce behavioral gates on dangerous git operations.";
|
|
13
|
-
}, {
|
|
14
|
-
readonly name: "input-validator";
|
|
15
|
-
readonly description: "Validate MCP tool inputs before they are sent.";
|
|
16
|
-
}, {
|
|
17
|
-
readonly name: "rating-capture";
|
|
18
|
-
readonly description: "Capture explicit user ratings from prompt input.";
|
|
19
|
-
}, {
|
|
20
|
-
readonly name: "session-start";
|
|
21
|
-
readonly description: "Restore session continuity and inject startup context.";
|
|
22
|
-
}, {
|
|
23
|
-
readonly name: "session-end";
|
|
24
|
-
readonly description: "Flush session state and record remote session end.";
|
|
25
|
-
}, {
|
|
26
|
-
readonly name: "stop";
|
|
27
|
-
readonly description: "Submit pending classification feedback at stop time.";
|
|
28
|
-
}, {
|
|
29
|
-
readonly name: "tool-tracker";
|
|
30
|
-
readonly description: "Summarize tool execution metrics after tool calls.";
|
|
31
|
-
}, {
|
|
32
|
-
readonly name: "user-prompt-submit";
|
|
33
|
-
readonly description: "Route the user prompt and inject the intelligence packet.";
|
|
34
|
-
}];
|
|
35
|
-
export declare const HOOK_NAMES: readonly string[];
|
|
36
|
-
export type HookName = (typeof HOOK_MANIFEST)[number]['name'];
|
|
1
|
+
/**
|
|
2
|
+
* Hook manifest re-exports from the generated registry.
|
|
3
|
+
* Source of truth: contracts/hooks/hook-registry.yaml
|
|
4
|
+
* Run `pnpm generate:contracts` to update.
|
|
5
|
+
*/
|
|
6
|
+
export { HOOK_MANIFEST, HOOK_NAMES, LOCAL_HOOKS, REMOTE_HOOKS, type HookName, type HookRegistryEntry, } from './generated/hook-registry.js';
|
|
37
7
|
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/hooks/manifest.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/hooks/manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC"}
|
package/dist/hooks/manifest.js
CHANGED
|
@@ -1,48 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
name: 'agent-verify',
|
|
8
|
-
description: 'Emit Quality Gate verification reminder after sub-agent completion.',
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
name: 'edit-tracker',
|
|
12
|
-
description: 'Track modified files for lint awareness.',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'git-gate',
|
|
16
|
-
description: 'Enforce behavioral gates on dangerous git operations.',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'input-validator',
|
|
20
|
-
description: 'Validate MCP tool inputs before they are sent.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'rating-capture',
|
|
24
|
-
description: 'Capture explicit user ratings from prompt input.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'session-start',
|
|
28
|
-
description: 'Restore session continuity and inject startup context.',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'session-end',
|
|
32
|
-
description: 'Flush session state and record remote session end.',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'stop',
|
|
36
|
-
description: 'Submit pending classification feedback at stop time.',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'tool-tracker',
|
|
40
|
-
description: 'Summarize tool execution metrics after tool calls.',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: 'user-prompt-submit',
|
|
44
|
-
description: 'Route the user prompt and inject the intelligence packet.',
|
|
45
|
-
},
|
|
46
|
-
];
|
|
47
|
-
export const HOOK_NAMES = HOOK_MANIFEST.map((hook) => hook.name);
|
|
1
|
+
/**
|
|
2
|
+
* Hook manifest re-exports from the generated registry.
|
|
3
|
+
* Source of truth: contracts/hooks/hook-registry.yaml
|
|
4
|
+
* Run `pnpm generate:contracts` to update.
|
|
5
|
+
*/
|
|
6
|
+
export { HOOK_MANIFEST, HOOK_NAMES, LOCAL_HOOKS, REMOTE_HOOKS, } from './generated/hook-registry.js';
|
|
48
7
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/hooks/manifest.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/hooks/manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,GAGb,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* subagent-route.ts — SubagentStart hook.
|
|
3
|
+
*
|
|
4
|
+
* Fires immediately before a sub-agent is launched. Checks that a fresh
|
|
5
|
+
* gramatr_route_request classification exists in local SQLite state (same
|
|
6
|
+
* freshness rule as agent-gate), and — when fresh — writes a reminder to
|
|
7
|
+
* stderr that the calling agent must pass the Quality Gate scaffold from
|
|
8
|
+
* `enrichment.data.reasoning.isc_scaffold` to the sub-agent.
|
|
9
|
+
*
|
|
10
|
+
* Output contract for SubagentStart:
|
|
11
|
+
* { "continue": true } — allow launch
|
|
12
|
+
* { "continue": false, "stopReason": "message" } — block launch
|
|
13
|
+
*
|
|
14
|
+
* Graceful degradation: any internal error produces `{ continue: true }`
|
|
15
|
+
* so a hook failure never blocks the sub-agent from launching.
|
|
16
|
+
*/
|
|
17
|
+
export declare function checkSubagentClassificationFreshness(sessionId: string, nowMs?: number): {
|
|
18
|
+
allow: boolean;
|
|
19
|
+
reason?: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function runSubagentRouteHook(_args?: string[]): Promise<number>;
|
|
22
|
+
//# sourceMappingURL=subagent-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-route.d.ts","sourceRoot":"","sources":["../../src/hooks/subagent-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmEH,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAmB,GACzB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAUrC;AAID,wBAAsB,oBAAoB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BhF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* subagent-route.ts — SubagentStart hook.
|
|
3
|
+
*
|
|
4
|
+
* Fires immediately before a sub-agent is launched. Checks that a fresh
|
|
5
|
+
* gramatr_route_request classification exists in local SQLite state (same
|
|
6
|
+
* freshness rule as agent-gate), and — when fresh — writes a reminder to
|
|
7
|
+
* stderr that the calling agent must pass the Quality Gate scaffold from
|
|
8
|
+
* `enrichment.data.reasoning.isc_scaffold` to the sub-agent.
|
|
9
|
+
*
|
|
10
|
+
* Output contract for SubagentStart:
|
|
11
|
+
* { "continue": true } — allow launch
|
|
12
|
+
* { "continue": false, "stopReason": "message" } — block launch
|
|
13
|
+
*
|
|
14
|
+
* Graceful degradation: any internal error produces `{ continue: true }`
|
|
15
|
+
* so a hook failure never blocks the sub-agent from launching.
|
|
16
|
+
*/
|
|
17
|
+
import { getLatestClassification, getSessionContextByProject } from './lib/hook-state.js';
|
|
18
|
+
import { deriveProjectId, getGitContext } from './lib/gramatr-hook-utils.js';
|
|
19
|
+
import { AGENT_GATE_FRESHNESS_THRESHOLD_MS, HOOK_STDIN_DEFAULT_TIMEOUT_MS, } from './generated/hook-timeouts.js';
|
|
20
|
+
// ── Stdin ──
|
|
21
|
+
function readStdin(timeoutMs) {
|
|
22
|
+
return new Promise((resolve) => {
|
|
23
|
+
let data = '';
|
|
24
|
+
const timer = setTimeout(() => resolve(data), timeoutMs);
|
|
25
|
+
process.stdin.setEncoding('utf-8');
|
|
26
|
+
process.stdin.on('data', (chunk) => {
|
|
27
|
+
data += chunk;
|
|
28
|
+
});
|
|
29
|
+
process.stdin.on('end', () => {
|
|
30
|
+
clearTimeout(timer);
|
|
31
|
+
resolve(data);
|
|
32
|
+
});
|
|
33
|
+
process.stdin.on('error', () => {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
resolve(data);
|
|
36
|
+
});
|
|
37
|
+
process.stdin.resume();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// ── Decision helpers ──
|
|
41
|
+
const FRESHNESS_THRESHOLD_MS = AGENT_GATE_FRESHNESS_THRESHOLD_MS;
|
|
42
|
+
const DENY_REASON = 'Sub-agent launch blocked: no fresh gramatr_route_request classification found. ' +
|
|
43
|
+
'Call gramatr_route_request with the sub-task prompt first, then pass the ' +
|
|
44
|
+
'Quality Gate scaffold from enrichment.data.reasoning.isc_scaffold as the ' +
|
|
45
|
+
"sub-agent's acceptance criteria, and orchestration.agents.composed as the " +
|
|
46
|
+
"sub-agent's system prompt.";
|
|
47
|
+
const ALLOW_REMINDER = '[gramatr] Sub-agent routing allowed. Remember to pass the Quality Gate scaffold ' +
|
|
48
|
+
"from enrichment.data.reasoning.isc_scaffold as the sub-agent's acceptance " +
|
|
49
|
+
'criteria and orchestration.agents.composed as its system prompt.\n';
|
|
50
|
+
function buildOutput(allow, reason) {
|
|
51
|
+
if (allow)
|
|
52
|
+
return { continue: true };
|
|
53
|
+
return { continue: false, stopReason: reason || 'Sub-agent launch blocked by gramatr gate.' };
|
|
54
|
+
}
|
|
55
|
+
export function checkSubagentClassificationFreshness(sessionId, nowMs = Date.now()) {
|
|
56
|
+
const record = getLatestClassification(sessionId);
|
|
57
|
+
if (!record || !record.recorded_at) {
|
|
58
|
+
return { allow: false, reason: DENY_REASON };
|
|
59
|
+
}
|
|
60
|
+
const ageMs = nowMs - record.recorded_at;
|
|
61
|
+
if (ageMs > FRESHNESS_THRESHOLD_MS) {
|
|
62
|
+
return { allow: false, reason: DENY_REASON };
|
|
63
|
+
}
|
|
64
|
+
return { allow: true };
|
|
65
|
+
}
|
|
66
|
+
// ── Hook runner ──
|
|
67
|
+
export async function runSubagentRouteHook(_args = []) {
|
|
68
|
+
const raw = await readStdin(HOOK_STDIN_DEFAULT_TIMEOUT_MS);
|
|
69
|
+
// Empty stdin: allow — not enough information to block.
|
|
70
|
+
if (!raw.trim()) {
|
|
71
|
+
process.stdout.write(JSON.stringify(buildOutput(true)));
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
// Parse but do not require tool_name — SubagentStart input shape can vary.
|
|
76
|
+
JSON.parse(raw);
|
|
77
|
+
// Look up active session via git context, same as agent-gate.
|
|
78
|
+
const git = getGitContext();
|
|
79
|
+
const projectId = git ? deriveProjectId(git.remote, git.projectName) : null;
|
|
80
|
+
const ctx = projectId ? getSessionContextByProject(projectId) : null;
|
|
81
|
+
const interactionId = ctx?.interaction_id || ctx?.session_id || 'unknown';
|
|
82
|
+
const result = checkSubagentClassificationFreshness(interactionId);
|
|
83
|
+
if (result.allow) {
|
|
84
|
+
// Emit reminder on stderr so the calling agent sees it in its transcript.
|
|
85
|
+
process.stderr.write(ALLOW_REMINDER);
|
|
86
|
+
}
|
|
87
|
+
process.stdout.write(JSON.stringify(buildOutput(result.allow, result.reason)));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Never block on hook failures.
|
|
91
|
+
process.stdout.write(JSON.stringify(buildOutput(true)));
|
|
92
|
+
}
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=subagent-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-route.js","sourceRoot":"","sources":["../../src/hooks/subagent-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task-quality-gate.ts — TaskCreated hook.
|
|
3
|
+
*
|
|
4
|
+
* Fires before a TaskCreate tool call is accepted. Reads the `tool_input`
|
|
5
|
+
* from stdin, extracts the Quality Gate criteria fields, and validates:
|
|
6
|
+
* 1. At least 4 criteria are present.
|
|
7
|
+
* 2. Each criterion is 8-12 words long.
|
|
8
|
+
* 3. At least 1 anti-criterion is present — identified by the criterion
|
|
9
|
+
* text containing "NOT" / "must not" / "anti-criterion", or an ID
|
|
10
|
+
* matching /^QG-A/ or /^ISC-A/.
|
|
11
|
+
*
|
|
12
|
+
* Output contract mirrors PreToolUse:
|
|
13
|
+
* { hookSpecificOutput: { hookEventName: 'TaskCreated', permissionDecision: 'allow' } }
|
|
14
|
+
* { hookSpecificOutput: { hookEventName: 'TaskCreated', permissionDecision: 'deny', permissionDecisionReason: ... } }
|
|
15
|
+
*
|
|
16
|
+
* To maximise compatibility with different Claude Code versions, the hook
|
|
17
|
+
* also emits `{ continue: true|false, stopReason }` alongside the structured
|
|
18
|
+
* permission block — unrecognised fields are ignored by clients that use
|
|
19
|
+
* one contract and not the other.
|
|
20
|
+
*
|
|
21
|
+
* Graceful degradation: any internal parse error outputs `continue: true`
|
|
22
|
+
* so a hook failure never blocks task creation.
|
|
23
|
+
*/
|
|
24
|
+
interface RawCriterion {
|
|
25
|
+
id?: string;
|
|
26
|
+
text?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
criterion?: string;
|
|
29
|
+
is_anti?: boolean;
|
|
30
|
+
type?: string;
|
|
31
|
+
}
|
|
32
|
+
interface QualityGateDecision {
|
|
33
|
+
allow: boolean;
|
|
34
|
+
reason?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function isAntiCriterion(c: RawCriterion): boolean;
|
|
37
|
+
export declare function criterionText(c: RawCriterion): string;
|
|
38
|
+
export declare function wordCount(text: string): number;
|
|
39
|
+
/**
|
|
40
|
+
* Extract criteria from the TaskCreate tool_input. Accepts multiple shapes so
|
|
41
|
+
* the hook is tolerant of evolving TaskCreate schemas:
|
|
42
|
+
* - `quality_gate_criteria`: array of strings or objects
|
|
43
|
+
* - `criteria`: array of strings or objects
|
|
44
|
+
* - `acceptance_criteria`: array of strings or objects
|
|
45
|
+
*/
|
|
46
|
+
export declare function extractCriteria(toolInput: Record<string, unknown> | undefined): RawCriterion[];
|
|
47
|
+
export declare function validateQualityGate(toolInput: Record<string, unknown> | undefined): QualityGateDecision;
|
|
48
|
+
export declare function runTaskQualityGateHook(_args?: string[]): Promise<number>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=task-quality-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-quality-gate.d.ts","sourceRoot":"","sources":["../../src/hooks/task-quality-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqDD,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAMxD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAErD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,YAAY,EAAE,CAgB9F;AAID,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,mBAAmB,CAqBvG;AAkCD,wBAAsB,sBAAsB,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BlF"}
|