@inventarch/steward-hook 0.0.0-stage → 1.1.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.
@@ -0,0 +1,501 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { closeSync, constants, fstatSync, lstatSync, openSync, readdirSync, readFileSync, readSync, realpathSync, } from 'node:fs';
3
+ import { dirname, isAbsolute, relative, resolve, sep } from 'node:path';
4
+ import { pathKey, unaliased } from '@inventarch/db';
5
+ import { canonicalDistributionJson, decodeDistributionJson, platformDebris } from '@inventarch/db/distribution';
6
+ import { installedImplementationDigest } from '@inventarch/agent-composition-system';
7
+ import { openLocalAuthoringView } from '@inventarch/agent-composition-system/authoring-manifest';
8
+ import { AuthoringError, prepareAuthoringTarget, resolveAuthoring, } from '@inventarch/agent-composition-system/authoring';
9
+ import { ResourceError, resourceOccurrences } from '@inventarch/agent-composition-system/resources';
10
+ import { LifecycleError, verifyLifecycleProfile, lifecycleProfile, SELECTED_CLAUDE_CODE_VERSION, } from '@inventarch/agent-composition-system/lifecycle-profile';
11
+ import { decodeLifecycleEvent } from '@inventarch/agent-composition-system/lifecycle-profile';
12
+ import { prepareLifecycleContext, prepareLifecycleContextSegments, } from '@inventarch/agent-composition-system/lifecycle';
13
+ import { COORDINATE_DOMAINS, isEntry, prepareCoordinate } from '@inventarch/runtime';
14
+ /** Bounded headroom for twelve independently fresh external hooks; byte-estimate tokens, not model billing tokens. */
15
+ export const DEFAULT_CONTEXT_HOOK_BUDGETS = Object.freeze({
16
+ tokens: 20_000,
17
+ records: 32,
18
+ bytes: 80_000,
19
+ timeoutMs: 30_000,
20
+ });
21
+ const fields = [
22
+ 'format',
23
+ 'root',
24
+ 'owner',
25
+ 'actor',
26
+ 'workspace',
27
+ 'profile',
28
+ 'scope',
29
+ 'view',
30
+ 'selection',
31
+ 'coordinate',
32
+ 'bootstrap',
33
+ 'budgets',
34
+ 'policy',
35
+ 'implementation',
36
+ ];
37
+ /** Paths compare as the volume compares names: case on win32; normalization and full case folding on darwin (#315, #323). */
38
+ const fold = pathKey;
39
+ const hash = (value) => createHash('sha256').update(value).digest('hex');
40
+ function fail(message) {
41
+ throw new LifecycleError('IA-LIFECYCLE-BINDING', message);
42
+ }
43
+ function plain(value, fields) {
44
+ if (value === null ||
45
+ typeof value !== 'object' ||
46
+ Array.isArray(value) ||
47
+ ![Object.prototype, null].includes(Object.getPrototypeOf(value)))
48
+ fail('Invalid context hook binding');
49
+ const keys = Reflect.ownKeys(value), descriptors = Object.getOwnPropertyDescriptors(value);
50
+ if (keys.length !== fields.length ||
51
+ keys.some((key) => typeof key !== 'string' ||
52
+ !fields.includes(key) ||
53
+ !descriptors[key]?.enumerable ||
54
+ !Object.hasOwn(descriptors[key], 'value')))
55
+ fail('Context binding has unknown, missing or non-data fields');
56
+ return value;
57
+ }
58
+ function text(value, maximum = 4096) {
59
+ if (typeof value !== 'string' ||
60
+ !value ||
61
+ value.includes('\0') ||
62
+ Buffer.byteLength(value) > maximum ||
63
+ Buffer.from(value).toString('utf8') !== value)
64
+ fail('Invalid bounded context binding text');
65
+ return value;
66
+ }
67
+ function pin(value) {
68
+ const result = text(value, 64);
69
+ if (!/^[a-f0-9]{64}$/.test(result))
70
+ fail('Invalid context binding digest');
71
+ return result;
72
+ }
73
+ function freeze(value) {
74
+ if (value && typeof value === 'object') {
75
+ for (const item of Object.values(value))
76
+ freeze(item);
77
+ Object.freeze(value);
78
+ }
79
+ return value;
80
+ }
81
+ function physicalDirectory(value) {
82
+ if (!isAbsolute(value))
83
+ fail('Context binding requires a fixed absolute root');
84
+ const root = resolve(value);
85
+ let current = root;
86
+ for (;;) {
87
+ const stat = lstatSync(current);
88
+ if (!stat.isDirectory() || stat.isSymbolicLink() || !unaliased(current, realpathSync.native(current)))
89
+ fail('Context root is not an unaliased physical directory');
90
+ const parent = dirname(current);
91
+ if (parent === current)
92
+ break;
93
+ current = parent;
94
+ }
95
+ return root;
96
+ }
97
+ function within(root, target) {
98
+ const path = relative(fold(root), fold(target));
99
+ return !isAbsolute(path) && path !== '..' && !path.startsWith('..' + sep);
100
+ }
101
+ function scopePath(value) {
102
+ if (value === '')
103
+ return '';
104
+ const result = text(value, 1024);
105
+ if (result.includes('\\') ||
106
+ isAbsolute(result) ||
107
+ result.split('/').some((p) => !p || p === '.' || p === '..' || /[. ]$/.test(p)))
108
+ fail('Invalid native scope root');
109
+ return result;
110
+ }
111
+ /** Explicit trusted registration factory. The returned digest covers all root/identity/scope selections. */
112
+ export function createContextHookBinding(input) {
113
+ plain(input, fields);
114
+ if (input.format !== 'ia.context-hook-binding.v1')
115
+ fail('Unknown context binding format');
116
+ const root = physicalDirectory(text(input.root)), profile = verifyLifecycleProfile(input.profile);
117
+ if (profile.host !== 'claude-code')
118
+ fail('This context hook requires the supported Claude profile');
119
+ const scope = plain(input.scope, ['root', 'identities']), selection = plain(input.selection, ['target', 'document', 'lifecycle']);
120
+ const identities = scope['identities'];
121
+ if (identities !== null &&
122
+ (!Array.isArray(identities) || identities.length > 256 || new Set(identities).size !== identities.length))
123
+ fail('Invalid context scope identity selection');
124
+ const selectedIdentities = identities === null ? null : identities.map((item) => text(item, 1024));
125
+ const rawView = plain(input.view, ['id', 'adopted', 'manifests']);
126
+ if (!Array.isArray(rawView['adopted']) ||
127
+ rawView['adopted'].length > 64 ||
128
+ !Array.isArray(rawView['manifests']) ||
129
+ !rawView['manifests'].length ||
130
+ rawView['manifests'].length > 64)
131
+ fail('Invalid explicit authoring package selection');
132
+ const adopted = rawView['adopted'].map((input) => {
133
+ const row = plain(input, ['id', 'root']);
134
+ return { id: text(row['id'], 64), root: physicalDirectory(text(row['root'])) };
135
+ });
136
+ const manifests = rawView['manifests'].map((input) => {
137
+ const row = plain(input, ['source', 'root']);
138
+ return { source: text(row['source'], 64), root: physicalDirectory(text(row['root'])) };
139
+ });
140
+ if (new Set(adopted.map((row) => row.id)).size !== adopted.length ||
141
+ new Set(manifests.map((row) => row.source)).size !== manifests.length)
142
+ fail('Duplicate authoring source selection');
143
+ const target = text(selection['target'], 1024), document = selection['document'] === null ? null : text(selection['document'], 128);
144
+ const lifecycle = selection['lifecycle'];
145
+ if (lifecycle !== null) {
146
+ const row = plain(lifecycle, ['model', 'version', 'workflow', 'iteration', 'stage', 'phase', 'primitive']);
147
+ for (const key of ['model', 'version', 'workflow', 'stage'])
148
+ text(row[key], 128);
149
+ if (!Number.isSafeInteger(row['iteration']) ||
150
+ row['iteration'] < 0 ||
151
+ row['iteration'] > 1_000_000)
152
+ fail('Invalid lifecycle iteration');
153
+ for (const axis of ['phase', 'primitive'])
154
+ if (row[axis] !== null && !COORDINATE_DOMAINS[axis].includes(text(row[axis], 64)))
155
+ fail('Unknown lifecycle method coordinate');
156
+ }
157
+ const coordinate = prepareCoordinate('', input.coordinate);
158
+ if (!coordinate.values.phase || !coordinate.values.primitive)
159
+ fail('Context binding requires explicit phase and primitive');
160
+ plain(input.budgets, ['tokens', 'records', 'bytes', 'timeoutMs']);
161
+ for (const [key, min, max] of [
162
+ ['tokens', 1, 256 * 1024],
163
+ ['records', 1, 256],
164
+ ['bytes', 128, 1024 * 1024],
165
+ ['timeoutMs', 1, 60_000],
166
+ ])
167
+ if (!Number.isSafeInteger(input.budgets[key]) || input.budgets[key] < min || input.budgets[key] > max)
168
+ fail('Context hook budget is outside its finite bound');
169
+ const body = {
170
+ format: input.format,
171
+ root,
172
+ owner: text(input.owner, 256),
173
+ actor: text(input.actor, 256),
174
+ workspace: text(input.workspace, 256),
175
+ profile,
176
+ scope: { root: scopePath(scope['root']), identities: selectedIdentities },
177
+ view: { id: text(rawView['id'], 64), adopted, manifests },
178
+ selection: {
179
+ target,
180
+ document,
181
+ lifecycle: lifecycle === null
182
+ ? null
183
+ : { ...lifecycle },
184
+ },
185
+ coordinate: { ...input.coordinate },
186
+ bootstrap: text(input.bootstrap, profile.maxPromptBytes),
187
+ budgets: { ...input.budgets },
188
+ policy: pin(input.policy),
189
+ implementation: pin(input.implementation),
190
+ };
191
+ return freeze({ ...body, digest: hash(canonicalDistributionJson(body)) });
192
+ }
193
+ function verifyBinding(input) {
194
+ plain(input, [...fields, 'digest']);
195
+ const { digest, ...body } = input, expected = createContextHookBinding(body);
196
+ if (expected.digest !== pin(digest) || canonicalDistributionJson(expected) !== canonicalDistributionJson(input))
197
+ fail('Context binding digest or canonical root differs');
198
+ return expected;
199
+ }
200
+ /** Read only the fixed project's managed binding; no event field selects this path. */
201
+ export function readContextHookBinding(rootInput, pathInput) {
202
+ const root = physicalDirectory(rootInput), path = resolve(pathInput), rel = relative(root, path).replaceAll('\\', '/');
203
+ if (!isAbsolute(pathInput) ||
204
+ !/^\.ia\/distributions\/hosts\/claude-context-[a-z][a-z0-9-]{0,63}\.binding\.json$/.test(rel) ||
205
+ !unaliased(path, realpathSync.native(path)))
206
+ fail('Context binding path is outside its fixed managed location');
207
+ physicalDirectory(dirname(path));
208
+ const maximum = 64 * 1024, stat = lstatSync(path);
209
+ const regular = (value) => value.isFile() && !value.isSymbolicLink() && value.nlink === 1 && value.size <= maximum;
210
+ const same = (value) => regular(value) &&
211
+ value.dev === stat.dev &&
212
+ value.ino === stat.ino &&
213
+ value.size === stat.size &&
214
+ value.mtimeMs === stat.mtimeMs &&
215
+ value.ctimeMs === stat.ctimeMs;
216
+ if (!regular(stat))
217
+ fail('Context binding is not a bounded regular file');
218
+ const fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
219
+ let bytes;
220
+ try {
221
+ if (!same(fstatSync(fd)))
222
+ fail('Context binding identity changed before read');
223
+ const buffer = Buffer.alloc(maximum + 1);
224
+ let length = 0;
225
+ while (length < buffer.length) {
226
+ const count = readSync(fd, buffer, length, buffer.length - length, length);
227
+ if (!count)
228
+ break;
229
+ length += count;
230
+ }
231
+ if (length !== stat.size ||
232
+ length > maximum ||
233
+ !same(fstatSync(fd)) ||
234
+ !same(lstatSync(path)) ||
235
+ !unaliased(path, realpathSync.native(path)))
236
+ fail('Context binding changed during read');
237
+ physicalDirectory(dirname(path));
238
+ bytes = buffer.subarray(0, length);
239
+ }
240
+ finally {
241
+ closeSync(fd);
242
+ }
243
+ const parsed = decodeDistributionJson(new TextDecoder('utf-8', { fatal: true }).decode(bytes)), result = verifyBinding(parsed);
244
+ if (fold(result.root) !== fold(root))
245
+ fail('Context binding names another root');
246
+ return result;
247
+ }
248
+ /** Fixed module inventory; no import-time I/O. Root override is for isolated host tests only. */
249
+ export function contextHookImplementationDigest(directory = import.meta.dirname) {
250
+ const root = physicalDirectory(directory), files = [], names = new Set();
251
+ let count = 0, total = 0;
252
+ const visit = (directory, prefix = '', depth = 0) => {
253
+ if (depth > 16)
254
+ fail('Hook implementation inventory exceeds its bound');
255
+ for (const entry of readdirSync(directory, { withFileTypes: true })) {
256
+ const name = entry.name, path = prefix + name;
257
+ if (++count > 2000 ||
258
+ name !== name.normalize('NFC') ||
259
+ /[\\/:\u0000-\u001f]/.test(name) ||
260
+ /[. ]$/.test(name) ||
261
+ names.has(path.toLowerCase()))
262
+ fail('Hook implementation has aliased paths');
263
+ names.add(path.toLowerCase());
264
+ const absolute = resolve(directory, name), stat = lstatSync(absolute);
265
+ if (stat.isSymbolicLink())
266
+ fail('Hook implementation aliases are unsupported');
267
+ if (stat.isDirectory())
268
+ visit(absolute, path + '/', depth + 1);
269
+ else if (!stat.isFile())
270
+ fail('Hook implementation has a nonregular file');
271
+ // A Finder or AppleDouble file is never code: the launcher skips it, so the identity must too (#323).
272
+ else if (/\.(?:[cm]?[jt]s|json|node|wasm)$/.test(name) && !/\.d\.[cm]?ts$/.test(name) && !platformDebris(name)) {
273
+ if (stat.size > 8 * 1024 * 1024 || (total += stat.size) > 32 * 1024 * 1024)
274
+ fail('Hook implementation bytes exceed their bound');
275
+ files.push({ path, digest: hash(readFileSync(absolute)) });
276
+ }
277
+ }
278
+ };
279
+ visit(root);
280
+ files.sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
281
+ const paths = new Set(files.map((f) => f.path)), source = ['main.ts', 'context.ts'].every((p) => paths.has(p)), emitted = ['main.js', 'context.js'].every((p) => paths.has(p));
282
+ if (source === emitted)
283
+ fail('Hook implementation is partial or mixed');
284
+ return hash(canonicalDistributionJson({
285
+ format: 'ia.context-hook-implementation.v1',
286
+ native: installedImplementationDigest(),
287
+ kind: source ? 'source' : 'emitted',
288
+ files,
289
+ }));
290
+ }
291
+ /** Deterministic consumer. A successful stdout packet remains delivery-unconfirmed. */
292
+ export async function evaluateContextHook(input, text, host, signal) {
293
+ return evaluate(input, text, host, undefined, signal);
294
+ }
295
+ export async function evaluateContextHookPart(input, text, part, host, signal) {
296
+ return evaluate(input, text, host, part, signal);
297
+ }
298
+ async function evaluate(input, text, host, part, signal) {
299
+ try {
300
+ if (part !== undefined && (!Number.isSafeInteger(part) || part < 0 || part >= 12))
301
+ fail('Invalid bounded context slot');
302
+ const binding = verifyBinding(input), event = decodeLifecycleEvent(binding.profile, text), current = host.implementation.bind(host);
303
+ const open = host.openCurrentView.bind(host), check = host.assertCurrent.bind(host), accept = host.acceptInput?.bind(host);
304
+ const cwd = physicalDirectory(event.cwd);
305
+ if (!within(binding.root, cwd))
306
+ fail('Hook cwd is outside the fixed project root');
307
+ if (current() !== binding.implementation)
308
+ fail('Installed hook implementation changed');
309
+ const prepare = part === undefined ? prepareLifecycleContext : prepareLifecycleContextSegments;
310
+ const prepared = await prepare({
311
+ profile: binding.profile,
312
+ coordinate: binding.coordinate,
313
+ bootstrap: binding.bootstrap,
314
+ budgets: binding.budgets,
315
+ binding: binding.digest,
316
+ policy: binding.policy,
317
+ implementation: binding.implementation,
318
+ }, event, {
319
+ openCurrentView: (_config, event, signal) => open(binding, event, signal),
320
+ assertCurrent: async (view, _config, signal) => {
321
+ if (current() !== binding.implementation || physicalDirectory(binding.root) !== binding.root)
322
+ fail('Installed hook binding changed');
323
+ const snapshot = view.reader.snapshot({ within: view.within });
324
+ if (snapshot.root !== binding.scope.root ||
325
+ (binding.scope.identities !== null &&
326
+ snapshot.records.some((node) => !binding.scope.identities.includes(node.identity))))
327
+ fail('Opened native context scope differs from binding');
328
+ await check(view, binding, signal);
329
+ },
330
+ ...(accept
331
+ ? {
332
+ acceptInput: (identity, signal) => accept(identity, binding, signal),
333
+ }
334
+ : {}),
335
+ }, signal);
336
+ return {
337
+ status: 'generated',
338
+ delivery: 'unconfirmed',
339
+ prepared,
340
+ output: 'outputs' in prepared ? prepared.outputs[part] : prepared.output,
341
+ };
342
+ }
343
+ catch (error) {
344
+ const codes = new Set([
345
+ 'INPUT',
346
+ 'UNAVAILABLE',
347
+ 'STALE',
348
+ 'REQUIRED',
349
+ 'BUDGET',
350
+ 'COORDINATE',
351
+ 'CONTEXT',
352
+ 'CANCELLED',
353
+ 'DEADLINE',
354
+ 'BINDING',
355
+ ].map((code) => `IA-LIFECYCLE-${code}`));
356
+ const code = error instanceof LifecycleError && codes.has(error.code) ? error.code : 'IA-LIFECYCLE-UNAVAILABLE';
357
+ return {
358
+ status: 'unavailable',
359
+ delivery: 'not-generated',
360
+ code,
361
+ output: { systemMessage: `IA lifecycle context unavailable (${code}). No context was generated.` },
362
+ };
363
+ }
364
+ }
365
+ /** A target outside the binding's own native scope is unavailable required material, never a generic failure. */
366
+ function scopedTarget(run) {
367
+ try {
368
+ return run();
369
+ }
370
+ catch (error) {
371
+ if (error instanceof AuthoringError && error.code === 'IA-AUTHORING-SCOPE')
372
+ throw new LifecycleError('IA-LIFECYCLE-REQUIRED', 'Required authoring context is unavailable');
373
+ throw error;
374
+ }
375
+ }
376
+ /** The owners' refusals when current bytes differ from those the open view captured or pinned: a fresh capture that differs
377
+ * (`authoring-manifest.ts:94`), the manifest, a selected resource or the native source changing under the re-capture
378
+ * (`authoring-manifest.ts:121`, `resource-files.ts:34,36,50`), and @inventarch/db's closed IA-DB-SOURCE-CHANGED code. */
379
+ const VIEW_CHANGES = new Set([
380
+ 'Local authoring source or selected resource view changed',
381
+ 'Authoring manifest changed while loading',
382
+ 'Resource changed while capturing',
383
+ 'Resource differs from its pinned size/hash',
384
+ 'Physical native source differs from its captured revision',
385
+ ]);
386
+ const viewChanged = (error) => error instanceof ResourceError
387
+ ? VIEW_CHANGES.has(error.message)
388
+ : error instanceof Error && error.code === 'IA-DB-SOURCE-CHANGED';
389
+ /** Only a changed source or resource selection is stale; a closed view or any other failed re-capture keeps its own error for the generic handling. */
390
+ function freshView(check) {
391
+ try {
392
+ check();
393
+ }
394
+ catch (error) {
395
+ if (viewChanged(error))
396
+ throw new LifecycleError('IA-LIFECYCLE-STALE', 'Local authoring source or resource selection changed');
397
+ throw error;
398
+ }
399
+ }
400
+ /** Static local adapter: explicitly selected source packages and manifests are the only resource inputs. */
401
+ export function localContextHookHost() {
402
+ const checks = new WeakMap();
403
+ return {
404
+ implementation: () => contextHookImplementationDigest(),
405
+ openCurrentView: async (binding) => {
406
+ const local = openLocalAuthoringView({ root: binding.root, ...binding.view, scope: binding.scope });
407
+ try {
408
+ const occurrences = resourceOccurrences(local.capture).occurrences.filter((item) => item.identity === binding.selection.target);
409
+ if (occurrences.length !== 1)
410
+ fail('Configured authoring target is unavailable or ambiguous');
411
+ const target = occurrences[0];
412
+ const authoring = resolveAuthoring(local.capture, local.resources, local.index, {
413
+ reader: local.reader,
414
+ within: local.within,
415
+ allowedResources: local.resources.files.map((file) => file.key),
416
+ allowedSystems: local.systems,
417
+ allowedRegistrations: local.registrations,
418
+ allowedArtifacts: local.index.artifacts.map((artifact) => artifact.id),
419
+ allowedDocuments: local.index.documents.map((document) => document.id),
420
+ });
421
+ const pins = {
422
+ binding: binding.digest,
423
+ source: local.capture.revision,
424
+ view: local.reader.snapshot({ within: local.within }).revision,
425
+ resources: local.resources.digest,
426
+ installation: local.capture.activation?.generation ?? null,
427
+ profile: binding.profile.digest,
428
+ policy: binding.policy,
429
+ implementation: binding.implementation,
430
+ };
431
+ const view = {
432
+ reader: local.reader,
433
+ within: local.within,
434
+ pins,
435
+ requiredParts: (input) => {
436
+ const result = scopedTarget(() => prepareAuthoringTarget(authoring, { ...binding.selection, target }));
437
+ return { pins: input.pins, parts: result.parts, missing: result.missing, proof: result.proof };
438
+ },
439
+ close: () => local.close(),
440
+ };
441
+ checks.set(view, () => local.assertCurrent());
442
+ return view;
443
+ }
444
+ catch (error) {
445
+ local.close();
446
+ throw error;
447
+ }
448
+ },
449
+ assertCurrent: (view) => {
450
+ const check = checks.get(view);
451
+ if (!check)
452
+ fail('Unrecognized local authoring view');
453
+ freshView(check);
454
+ },
455
+ };
456
+ }
457
+ /** Installed executable entry; identity probes perform no context or source discovery. */
458
+ export async function runContextHook(argv, input) {
459
+ if (argv.length === 1 && argv[0] === 'identity') {
460
+ const profile = lifecycleProfile('claude-code', SELECTED_CLAUDE_CODE_VERSION);
461
+ return {
462
+ format: 'ia.context-hook-identity.v2',
463
+ implementation: contextHookImplementationDigest(),
464
+ profile: profile.digest,
465
+ slots: profile.maxContextParts,
466
+ characters: profile.maxContextCharacters,
467
+ };
468
+ }
469
+ if (![4, 6].includes(argv.length) ||
470
+ argv[0] !== '--root' ||
471
+ argv[2] !== '--binding' ||
472
+ (argv.length === 6 && (argv[4] !== '--part' || !/^(?:[0-9]|1[01])$/.test(argv[5]))))
473
+ fail('Expected explicit --root, --binding and optional bounded --part');
474
+ const binding = readContextHookBinding(argv[1], argv[3]);
475
+ return (await (argv.length === 6
476
+ ? evaluateContextHookPart(binding, input, Number(argv[5]), localContextHookHost())
477
+ : evaluateContextHook(binding, input, localContextHookHost()))).output;
478
+ }
479
+ if (isEntry(process.argv[1], import.meta.url)) {
480
+ const chunks = [];
481
+ let size = 0;
482
+ try {
483
+ if (process.argv[2] !== 'identity')
484
+ for await (const chunk of process.stdin) {
485
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
486
+ if ((size += bytes.length) > 1024 * 1024)
487
+ fail('Hook stdin exceeds 1 MiB');
488
+ chunks.push(bytes);
489
+ }
490
+ const input = new TextDecoder('utf-8', { fatal: true }).decode(Buffer.concat(chunks));
491
+ process.stdout.write(JSON.stringify(await runContextHook(process.argv.slice(2), input)));
492
+ }
493
+ catch {
494
+ process.stdout.write(JSON.stringify({
495
+ systemMessage: 'IA lifecycle context unavailable (IA-LIFECYCLE-UNAVAILABLE). No context was generated.',
496
+ }));
497
+ if (process.argv[2] === 'identity')
498
+ process.exitCode = 1;
499
+ }
500
+ }
501
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { HookCode } from '@inventarch/runtime';
2
+ export interface HookOutput {
3
+ readonly hookSpecificOutput?: {
4
+ readonly hookEventName: 'PreToolUse';
5
+ readonly permissionDecision: 'deny';
6
+ readonly permissionDecisionReason: string;
7
+ };
8
+ }
9
+ export declare function deny(code: HookCode, message: string): HookOutput;
10
+ export declare function evaluateHook(root: string, event: unknown, actorsPath?: string): HookOutput;
11
+ export declare function runHook(args: readonly string[], input: string): HookOutput;
12
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC5B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;QACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;KAC3C,CAAC;CACH;AACD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAQhE;AAyYD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAoH1F;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAgB1E"}