@vibesdotdev/integrations-anthropic 0.0.0-stage → 1.0.0-rc.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/LICENSE +126 -0
- package/README.md +57 -2
- package/dist/ai/anthropic-router-codec.d.ts +32 -0
- package/dist/ai/anthropic-router-codec.d.ts.map +1 -0
- package/dist/ai/anthropic-router-codec.js +321 -0
- package/dist/ai/anthropic-router-codec.js.map +1 -0
- package/dist/ai/anthropic.plugin.d.ts +6 -0
- package/dist/ai/anthropic.plugin.d.ts.map +1 -0
- package/dist/ai/anthropic.plugin.js +116 -0
- package/dist/ai/anthropic.plugin.js.map +1 -0
- package/dist/ai/catalog.d.ts +87 -0
- package/dist/ai/catalog.d.ts.map +1 -0
- package/dist/ai/catalog.js +64 -0
- package/dist/ai/catalog.js.map +1 -0
- package/dist/ai/claude-code-session.d.ts +56 -0
- package/dist/ai/claude-code-session.d.ts.map +1 -0
- package/dist/ai/claude-code-session.js +75 -0
- package/dist/ai/claude-code-session.js.map +1 -0
- package/dist/ai/claude-code-turn-env.d.ts +10 -0
- package/dist/ai/claude-code-turn-env.d.ts.map +1 -0
- package/dist/ai/claude-code-turn-env.js +19 -0
- package/dist/ai/claude-code-turn-env.js.map +1 -0
- package/dist/ai/hostile.d.ts +23 -0
- package/dist/ai/hostile.d.ts.map +1 -0
- package/dist/ai/hostile.js +22 -0
- package/dist/ai/hostile.js.map +1 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +4 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/metadata/assets/logos/providers/anthropic.svg +1 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-3-5-haiku-20241022.json +77 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-3-5-sonnet-20241022.json +42 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-4-opus-20250514.json +79 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-4-sonnet-20250514.json +79 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-haiku-4-5.json +80 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-haiku-5-5.json +39 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-opus-4-1.json +78 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-opus-4-5.json +80 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-opus-4-6.json +80 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-opus-4-7.json +81 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-sonnet-4-5.json +80 -0
- package/dist/ai/metadata/provider-models/anthropic/anthropic-claude-sonnet-4-6.json +80 -0
- package/dist/ai/metadata/providers/anthropic.json +22 -0
- package/dist/ai/providers/anthropic/anthropic.provider.impl.d.ts +62 -0
- package/dist/ai/providers/anthropic/anthropic.provider.impl.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/anthropic.provider.impl.js +430 -0
- package/dist/ai/providers/anthropic/anthropic.provider.impl.js.map +1 -0
- package/dist/ai/providers/anthropic/detection/index.d.ts +8 -0
- package/dist/ai/providers/anthropic/detection/index.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/detection/index.js +8 -0
- package/dist/ai/providers/anthropic/detection/index.js.map +1 -0
- package/dist/ai/providers/anthropic/detection/system.d.ts +12 -0
- package/dist/ai/providers/anthropic/detection/system.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/detection/system.js +34 -0
- package/dist/ai/providers/anthropic/detection/system.js.map +1 -0
- package/dist/ai/providers/anthropic/docs/ai.providers.anthropic.docs.descriptor.d.ts +4 -0
- package/dist/ai/providers/anthropic/docs/ai.providers.anthropic.docs.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/docs/ai.providers.anthropic.docs.descriptor.js +212 -0
- package/dist/ai/providers/anthropic/docs/ai.providers.anthropic.docs.descriptor.js.map +1 -0
- package/dist/ai/providers/anthropic/index.d.ts +4 -0
- package/dist/ai/providers/anthropic/index.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/index.js +4 -0
- package/dist/ai/providers/anthropic/index.js.map +1 -0
- package/dist/ai/providers/anthropic/recommendations.d.ts +24 -0
- package/dist/ai/providers/anthropic/recommendations.d.ts.map +1 -0
- package/dist/ai/providers/anthropic/recommendations.js +192 -0
- package/dist/ai/providers/anthropic/recommendations.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/config.anthropic.descriptor.d.ts +4194 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/config.anthropic.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/config.anthropic.descriptor.js +52 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/config.anthropic.descriptor.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/schemas/index.d.ts +46 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/schemas/index.js +22 -0
- package/dist/ai/providers/cloud/frontier/anthropic/config/schemas/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/index.d.ts +5 -0
- package/dist/ai/providers/cloud/frontier/anthropic/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/index.js +4 -0
- package/dist/ai/providers/cloud/frontier/anthropic/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/provider.anthropic.descriptor.d.ts +183 -0
- package/dist/ai/providers/cloud/frontier/anthropic/provider.anthropic.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/anthropic/provider.anthropic.descriptor.js +115 -0
- package/dist/ai/providers/cloud/frontier/anthropic/provider.anthropic.descriptor.js.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.failures.d.ts +46 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.failures.d.ts.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.failures.js +183 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.failures.js.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.descriptor.d.ts +34 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.descriptor.js +29 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.descriptor.js.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.impl.d.ts +48 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.impl.d.ts.map +1 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.impl.js +557 -0
- package/dist/ai/specs/anthropic-messages/anthropic-messages.spec.impl.js.map +1 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.descriptor.d.ts +26 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.descriptor.js +15 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.descriptor.js.map +1 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.impl.d.ts +35 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.impl.d.ts.map +1 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.impl.js +210 -0
- package/dist/ai/specs/claude-code-exec/claude-code-exec.spec.impl.js.map +1 -0
- package/dist/external/acp-server.consumer.plugin.d.ts +3 -0
- package/dist/external/acp-server.consumer.plugin.d.ts.map +1 -0
- package/dist/external/acp-server.consumer.plugin.js +29 -0
- package/dist/external/acp-server.consumer.plugin.js.map +1 -0
- package/dist/external/acp-server.d.ts +19 -0
- package/dist/external/acp-server.d.ts.map +1 -0
- package/dist/external/acp-server.js +198 -0
- package/dist/external/acp-server.js.map +1 -0
- package/dist/external/claude-code-hooks.d.ts +51 -0
- package/dist/external/claude-code-hooks.d.ts.map +1 -0
- package/dist/external/claude-code-hooks.js +252 -0
- package/dist/external/claude-code-hooks.js.map +1 -0
- package/dist/external/claude-code-installer.d.ts +10 -0
- package/dist/external/claude-code-installer.d.ts.map +1 -0
- package/dist/external/claude-code-installer.js +604 -0
- package/dist/external/claude-code-installer.js.map +1 -0
- package/dist/external/claude-code-operations.d.ts +217 -0
- package/dist/external/claude-code-operations.d.ts.map +1 -0
- package/dist/external/claude-code-operations.js +101 -0
- package/dist/external/claude-code-operations.js.map +1 -0
- package/dist/external/claude-code-plugin.json +7 -0
- package/dist/external/claude-code-presets.d.ts +813 -0
- package/dist/external/claude-code-presets.d.ts.map +1 -0
- package/dist/external/claude-code-presets.js +157 -0
- package/dist/external/claude-code-presets.js.map +1 -0
- package/dist/external/claude-code.descriptor.d.ts +160 -0
- package/dist/external/claude-code.descriptor.d.ts.map +1 -0
- package/dist/external/claude-code.descriptor.js +5 -0
- package/dist/external/claude-code.descriptor.js.map +1 -0
- package/dist/external/claude-code.manifest.d.ts +5 -0
- package/dist/external/claude-code.manifest.d.ts.map +1 -0
- package/dist/external/claude-code.manifest.js +205 -0
- package/dist/external/claude-code.manifest.js.map +1 -0
- package/dist/external/external.plugin.d.ts +6 -0
- package/dist/external/external.plugin.d.ts.map +1 -0
- package/dist/external/external.plugin.js +56 -0
- package/dist/external/external.plugin.js.map +1 -0
- package/dist/external/index.d.ts +6 -0
- package/dist/external/index.d.ts.map +1 -0
- package/dist/external/index.js +6 -0
- package/dist/external/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/package.json +108 -4
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { ExternalHookEnvelopeSchema, createExternalHookAdapterDescriptor } from '@vibesdotdev/external/hooks';
|
|
3
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
4
|
+
import { claudeCodeManifest } from "./claude-code.manifest.js";
|
|
5
|
+
const ClaudeHookPayloadSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
session_id: z.string().trim().min(1).optional(),
|
|
8
|
+
transcript_path: z.string().nullable().optional(),
|
|
9
|
+
cwd: z.string().trim().min(1).optional(),
|
|
10
|
+
hook_event_name: z.string().trim().min(1).optional(),
|
|
11
|
+
model: z.string().trim().min(1).optional(),
|
|
12
|
+
turn_id: z.string().trim().min(1).optional(),
|
|
13
|
+
source: z.string().trim().min(1).optional(),
|
|
14
|
+
trigger: z.string().trim().min(1).optional(),
|
|
15
|
+
reason: z.string().trim().min(1).optional(),
|
|
16
|
+
permission_mode: z.string().trim().min(1).optional(),
|
|
17
|
+
prompt: z.string().optional(),
|
|
18
|
+
tool_name: z.string().trim().min(1).optional(),
|
|
19
|
+
tool_use_id: z.string().trim().min(1).optional(),
|
|
20
|
+
tool_input: z.unknown().optional(),
|
|
21
|
+
tool_response: z.unknown().optional(),
|
|
22
|
+
tool_error: z.boolean().optional(),
|
|
23
|
+
stop_hook_active: z.boolean().optional(),
|
|
24
|
+
// SubagentStop: the subagent that finished and its own transcript.
|
|
25
|
+
agent_id: z.string().trim().min(1).optional(),
|
|
26
|
+
agent_type: z.string().trim().min(1).optional()
|
|
27
|
+
})
|
|
28
|
+
.passthrough();
|
|
29
|
+
/** Envelope trigger marking a Stop hook that Claude re-ran after the hook's own block. */
|
|
30
|
+
export const STOP_HOOK_ACTIVE_TRIGGER = 'stop-hook-active';
|
|
31
|
+
const nativeEventMap = claudeCodeManifest.hooks.nativeEventMap;
|
|
32
|
+
export const claudeCodeHookAdapterDescriptor = createExternalHookAdapterDescriptor({
|
|
33
|
+
id: 'anthropic/claude-code-hooks',
|
|
34
|
+
name: 'Claude Code lifecycle adapter',
|
|
35
|
+
description: 'Normalizes Claude Code native lifecycle payloads into the external hook envelope',
|
|
36
|
+
toolId: 'claude-code',
|
|
37
|
+
nativeEventMap,
|
|
38
|
+
hardware: ['consumer'],
|
|
39
|
+
tags: ['anthropic', 'claude-code', 'hooks']
|
|
40
|
+
});
|
|
41
|
+
/** Where a tool's input names the file it touches. */
|
|
42
|
+
const ToolInputPathSchema = z.looseObject({
|
|
43
|
+
file_path: z.unknown().optional(),
|
|
44
|
+
path: z.unknown().optional()
|
|
45
|
+
});
|
|
46
|
+
const NonBlankStringSchema = z.string().refine((candidate) => candidate.trim().length > 0);
|
|
47
|
+
/** What the envelope retains of model-controlled text and values: bounded, so a hook never stores a megabyte a tool read. */
|
|
48
|
+
export const HOOK_ENVELOPE_LIMITS = {
|
|
49
|
+
promptChars: 32_768,
|
|
50
|
+
toolInputChars: 32_768,
|
|
51
|
+
toolResponseChars: 65_536
|
|
52
|
+
};
|
|
53
|
+
/** A string cut to `max` characters. */
|
|
54
|
+
function boundText(text, max) {
|
|
55
|
+
return text.length <= max ? text : text.slice(0, max);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A tool's input or response, bounded: a value whose JSON text fits `max` characters is kept as it
|
|
59
|
+
* is; a larger one is replaced by a marker that says it was cut and how large it was.
|
|
60
|
+
*/
|
|
61
|
+
function boundValue(value, max) {
|
|
62
|
+
if (value === undefined)
|
|
63
|
+
return value;
|
|
64
|
+
const asText = z.string().safeParse(value);
|
|
65
|
+
if (asText.success) {
|
|
66
|
+
return asText.data.length <= max
|
|
67
|
+
? value
|
|
68
|
+
: { truncated: true, originalChars: asText.data.length, text: asText.data.slice(0, max) };
|
|
69
|
+
}
|
|
70
|
+
const text = JSON.stringify(value);
|
|
71
|
+
if (text === undefined || text.length <= max)
|
|
72
|
+
return value;
|
|
73
|
+
return { truncated: true, originalChars: text.length };
|
|
74
|
+
}
|
|
75
|
+
/** The segments of `path` with `.` and `..` resolved, lexically; `undefined` when `..` climbs above its root. */
|
|
76
|
+
function normalizeSegments(path) {
|
|
77
|
+
const out = [];
|
|
78
|
+
for (const segment of path.split(/[\\/]+/)) {
|
|
79
|
+
if (segment === '' || segment === '.')
|
|
80
|
+
continue;
|
|
81
|
+
if (segment === '..') {
|
|
82
|
+
if (out.pop() === undefined)
|
|
83
|
+
return undefined;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
out.push(segment);
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The file a tool names, only when it lies inside the workspace. A relative path is taken from the
|
|
92
|
+
* workspace; an absolute one, or one that climbs out with `..`, outside it is not a path this hook may
|
|
93
|
+
* hand to a consumer (`../../../etc/shadow` is the shape a hostile tool input takes), so it is dropped.
|
|
94
|
+
*/
|
|
95
|
+
function containedFilePath(candidate, workspace) {
|
|
96
|
+
const root = normalizeSegments(workspace);
|
|
97
|
+
if (root === undefined)
|
|
98
|
+
return undefined;
|
|
99
|
+
const absolute = candidate.startsWith('/') || /^[A-Za-z]:[\\/]/.test(candidate);
|
|
100
|
+
const target = normalizeSegments(absolute ? candidate : `${workspace}/${candidate}`);
|
|
101
|
+
if (target === undefined || target.length <= root.length)
|
|
102
|
+
return undefined;
|
|
103
|
+
for (let index = 0; index < root.length; index += 1) {
|
|
104
|
+
if (target[index] !== root[index])
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
return `${workspace.startsWith('/') ? '/' : ''}${target.join('/')}`;
|
|
108
|
+
}
|
|
109
|
+
function filePathFrom(payload, workspace) {
|
|
110
|
+
const input = ToolInputPathSchema.safeParse(payload.tool_input);
|
|
111
|
+
if (!input.success)
|
|
112
|
+
return undefined;
|
|
113
|
+
const candidate = NonBlankStringSchema.safeParse(input.data.file_path ?? input.data.path);
|
|
114
|
+
return candidate.success ? containedFilePath(candidate.data, workspace) : undefined;
|
|
115
|
+
}
|
|
116
|
+
function invalidPayload(event, message, cause) {
|
|
117
|
+
const options = {
|
|
118
|
+
reason: 'hook-payload-invalid',
|
|
119
|
+
details: { event },
|
|
120
|
+
cause
|
|
121
|
+
};
|
|
122
|
+
return new CapabilityError(`Claude Code ${event} hook ${message}`, 'INVALID_INPUT', options);
|
|
123
|
+
}
|
|
124
|
+
function decodeClaudeHookPayload(event, raw) {
|
|
125
|
+
let decoded;
|
|
126
|
+
try {
|
|
127
|
+
decoded = JSON.parse(raw);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
throw new CapabilityError(`Claude Code ${event} hook stdin was not valid JSON`, 'INVALID_INPUT', {
|
|
131
|
+
reason: 'hook-payload-invalid',
|
|
132
|
+
details: { event },
|
|
133
|
+
cause: error
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const parsed = ClaudeHookPayloadSchema.safeParse(decoded);
|
|
137
|
+
if (!parsed.success)
|
|
138
|
+
throw invalidPayload(event, 'stdin did not match the Claude Code payload', parsed.error);
|
|
139
|
+
return parsed.data;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Normalize one Claude Code hook payload. The payload's `cwd` names the
|
|
143
|
+
* workspace and `session_id` the session; a sparse payload takes them from the
|
|
144
|
+
* caller's `invocation`. With neither, the hook fails `INVALID_INPUT`
|
|
145
|
+
* (`hook-session-unnamed`, `hook-workspace-unnamed`): nothing guesses.
|
|
146
|
+
*/
|
|
147
|
+
export function normalizeClaudeCodeHook(event, raw, invocation) {
|
|
148
|
+
const payload = decodeClaudeHookPayload(event, raw);
|
|
149
|
+
const nativeEvent = payload.hook_event_name ??
|
|
150
|
+
Object.entries(nativeEventMap).find(([, semantic]) => semantic === event)?.[0];
|
|
151
|
+
if (payload.hook_event_name && nativeEventMap[payload.hook_event_name] !== event) {
|
|
152
|
+
throw new CapabilityError(`Claude Code hook event mismatch: command expected ${event}, stdin reported ${payload.hook_event_name}`, 'INVALID_INPUT', { reason: 'hook-event-mismatch', details: { event, nativeEvent: payload.hook_event_name } });
|
|
153
|
+
}
|
|
154
|
+
if (!nativeEvent) {
|
|
155
|
+
throw new CapabilityError(`Claude Code ${event} hook stdin did not name a native event`, 'INVALID_INPUT', { reason: 'hook-event-unnamed', details: { event } });
|
|
156
|
+
}
|
|
157
|
+
// Every Claude Code hook payload names its session, or its caller does. A
|
|
158
|
+
// shared 'unknown' fallback once merged every such call into one
|
|
159
|
+
// participant, so an unnamed session is an error.
|
|
160
|
+
const nativeSessionId = payload.session_id ?? invocation.sessionId;
|
|
161
|
+
if (!nativeSessionId) {
|
|
162
|
+
throw new CapabilityError(`Claude Code ${event} hook named no session: stdin has no session_id and the invocation carries none.`, 'INVALID_INPUT', { reason: 'hook-session-unnamed', details: { event } });
|
|
163
|
+
}
|
|
164
|
+
const workspacePath = payload.cwd ?? invocation.workspace;
|
|
165
|
+
if (!workspacePath) {
|
|
166
|
+
throw new CapabilityError(`Claude Code ${event} hook named no workspace: stdin has no cwd and the invocation carries none.`, 'INVALID_INPUT', { reason: 'hook-workspace-unnamed', details: { event } });
|
|
167
|
+
}
|
|
168
|
+
const tool = payload.tool_name || payload.tool_input !== undefined || payload.tool_response !== undefined
|
|
169
|
+
? {
|
|
170
|
+
name: payload.tool_name ?? 'unknown',
|
|
171
|
+
input: boundValue(payload.tool_input, HOOK_ENVELOPE_LIMITS.toolInputChars),
|
|
172
|
+
result: boundValue(payload.tool_response, HOOK_ENVELOPE_LIMITS.toolResponseChars),
|
|
173
|
+
callId: payload.tool_use_id,
|
|
174
|
+
filePath: filePathFrom(payload, workspacePath),
|
|
175
|
+
error: payload.tool_error
|
|
176
|
+
}
|
|
177
|
+
: undefined;
|
|
178
|
+
return ExternalHookEnvelopeSchema.parse({
|
|
179
|
+
event,
|
|
180
|
+
clientId: 'claude',
|
|
181
|
+
nativeSessionId,
|
|
182
|
+
workspacePath,
|
|
183
|
+
model: payload.model,
|
|
184
|
+
turnId: payload.turn_id,
|
|
185
|
+
// A Stop hook re-entered after its own block carries `stop_hook_active`; the framework reads
|
|
186
|
+
// this marker to deliver nothing, so a block cannot loop.
|
|
187
|
+
trigger: payload.trigger ?? payload.source ?? (payload.stop_hook_active ? STOP_HOOK_ACTIVE_TRIGGER : undefined),
|
|
188
|
+
reason: payload.reason,
|
|
189
|
+
permissionMode: payload.permission_mode,
|
|
190
|
+
prompt: payload.prompt === undefined ? undefined : boundText(payload.prompt, HOOK_ENVELOPE_LIMITS.promptChars),
|
|
191
|
+
tool,
|
|
192
|
+
// Which subagent finished — its identity only. Transcript paths stay out
|
|
193
|
+
// of the envelope (privacy: nothing that points at conversation content).
|
|
194
|
+
subagent: event === 'subagent.stop' && payload.agent_id
|
|
195
|
+
? { agentId: payload.agent_id, agentType: payload.agent_type }
|
|
196
|
+
: undefined,
|
|
197
|
+
provenance: {
|
|
198
|
+
adapterId: claudeCodeHookAdapterDescriptor.id,
|
|
199
|
+
nativeEvent,
|
|
200
|
+
normalizedAt: new Date().toISOString()
|
|
201
|
+
},
|
|
202
|
+
continuity: { respawned: false },
|
|
203
|
+
privacy: { rawRetained: false }
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/** Claude Code stdout dialect. Cognition/context remains Framework-owned input here. */
|
|
207
|
+
export function renderClaudeCodeHook(result) {
|
|
208
|
+
const nativeEvent = Object.entries(nativeEventMap).find(([, semantic]) => semantic === result.event)?.[0];
|
|
209
|
+
if (!result.success) {
|
|
210
|
+
return JSON.stringify({
|
|
211
|
+
continue: true,
|
|
212
|
+
// A fixed message: the host's error text can quote a path, a credential or a stack, and
|
|
213
|
+
// this line is shown in Claude's UI and kept in its transcript.
|
|
214
|
+
systemMessage: `Vibes ${nativeEvent ?? result.event} hook failed.`
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
// PreToolUse: a deny reason (tier enforcement, native-edit lock) stops the tool call.
|
|
218
|
+
const blocked = result.event === 'tool.before' ? result.data?.blocked : undefined;
|
|
219
|
+
if (blocked) {
|
|
220
|
+
return JSON.stringify({
|
|
221
|
+
hookSpecificOutput: {
|
|
222
|
+
hookEventName: 'PreToolUse',
|
|
223
|
+
permissionDecision: 'deny',
|
|
224
|
+
permissionDecisionReason: blocked
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
// Stop and SubagentStop take no additionalContext; `decision: block` with a reason is how
|
|
229
|
+
// Claude receives text there. The framework delivers nothing on a re-entered Stop.
|
|
230
|
+
if (result.context && (result.event === 'agent.stop' || result.event === 'subagent.stop')) {
|
|
231
|
+
return JSON.stringify({ decision: 'block', reason: result.context });
|
|
232
|
+
}
|
|
233
|
+
if (result.context) {
|
|
234
|
+
return JSON.stringify({
|
|
235
|
+
hookSpecificOutput: {
|
|
236
|
+
hookEventName: nativeEvent ?? result.event,
|
|
237
|
+
additionalContext: result.context
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* The adapter the hook host resolves. Its caller passes the hook invocation's
|
|
245
|
+
* own workspace and session (`ExternalHookInvocation`, never the serving
|
|
246
|
+
* host's), which a sparse payload falls back to.
|
|
247
|
+
*/
|
|
248
|
+
export const claudeCodeHookAdapter = {
|
|
249
|
+
normalize: normalizeClaudeCodeHook,
|
|
250
|
+
render: renderClaudeCodeHook
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=claude-code-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-hooks.js","sourceRoot":"","sources":["../../src/external/claude-code-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ExternalOperation } from '@vibesdotdev/external';
|
|
2
|
+
export declare const claudeCodeInstallOperation: ExternalOperation;
|
|
3
|
+
export declare const claudeCodeUninstallOperation: ExternalOperation;
|
|
4
|
+
export declare const claudeCodeStatusOperation: ExternalOperation;
|
|
5
|
+
export declare const claudeCodeBackupOperation: ExternalOperation;
|
|
6
|
+
export declare const claudeCodeBackupsOperation: ExternalOperation;
|
|
7
|
+
export declare const claudeCodeRestoreOperation: ExternalOperation;
|
|
8
|
+
export declare const claudeCodeBuildOperation: ExternalOperation;
|
|
9
|
+
export declare const claudeCodeAssetsOperation: ExternalOperation;
|
|
10
|
+
//# sourceMappingURL=claude-code-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code-installer.d.ts","sourceRoot":"","sources":["../../src/external/claude-code-installer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGX,iBAAiB,EAEjB,MAAM,uBAAuB,CAAC;AA+qB/B,eAAO,MAAM,0BAA0B,EAAE,iBASxC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,iBAS1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBASvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBASvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,iBASxC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,iBASxC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAStC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAcvC,CAAC"}
|