@a5c-ai/hooks-mux-cli 5.0.1-staging.e4c68b9b → 5.0.1-staging.eaefc7aec

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/README.md ADDED
@@ -0,0 +1,27 @@
1
+ # @a5c-ai/hooks-mux-cli
2
+
3
+ CLI entrypoint for hooks-mux.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g @a5c-ai/hooks-mux-cli
9
+ ```
10
+
11
+ This package ships the built CLI in `dist/` and this package README for npm publish-surface auditing.
12
+
13
+ ## CLI Surface
14
+
15
+ ```bash
16
+ a5c-hooks-mux --help
17
+ a5c-hooks-mux doctor
18
+ a5c-hooks-mux invoke --adapter claude --native-event SessionStart
19
+ ```
20
+
21
+ Use this package when you want the `a5c-hooks-mux` binary without depending on the full monorepo source tree.
22
+
23
+ See the workspace overview in [`packages/hooks-mux/README.md`](../README.md) and the operational guides in `packages/hooks-mux/docs/`.
24
+
25
+ ## License
26
+
27
+ MIT © a5c-ai
@@ -7,14 +7,22 @@
7
7
  * Each adapter package is expected to export:
8
8
  * - createAdapter(): AdapterCapabilities
9
9
  * - phase mappings (e.g. CLAUDE_PHASE_MAPPINGS / equivalent)
10
- * - normalizer function
11
- * - renderer function
10
+ * - optional normalizeForInvoke() hook for CLI-native normalization
11
+ * - optional renderForInvoke() hook for CLI-native output rendering
12
12
  * - session resolver
13
13
  */
14
- import type { AdapterCapabilities, PhaseMapping } from '@a5c-ai/hooks-mux-core';
14
+ import type { AdapterCapabilities, MergedExecutionResult, PhaseMapping, UnifiedHookEvent } from '@a5c-ai/hooks-mux-core';
15
+ export type AdapterNormalizer = (nativeEventName: string, stdinPayload: unknown, env?: Record<string, string>) => UnifiedHookEvent;
16
+ export type AdapterRenderer = (mergedResult: MergedExecutionResult, nativeEventName: string, event?: UnifiedHookEvent) => unknown;
17
+ export type AdapterSessionResolver = (stdinData: Record<string, unknown>, env?: Record<string, string>, explicitSessionId?: string) => string | null | {
18
+ sessionId: string | null;
19
+ };
15
20
  export interface LoadedAdapter {
16
21
  capabilities: AdapterCapabilities;
17
22
  phaseMappings: PhaseMapping[];
23
+ normalizer?: AdapterNormalizer;
24
+ renderer?: AdapterRenderer;
25
+ sessionResolver?: AdapterSessionResolver;
18
26
  /** Raw module exports for adapter-specific functions. */
19
27
  module: Record<string, unknown>;
20
28
  }
@@ -26,8 +34,5 @@ export interface LoadedAdapter {
26
34
  * @throws If the adapter package cannot be found or loaded.
27
35
  */
28
36
  export declare function loadAdapter(adapterName: string): LoadedAdapter;
29
- /**
30
- * List of known adapter names for discovery/doctor purposes.
31
- */
32
- export declare const KNOWN_ADAPTERS: readonly ["claude", "codex", "copilot", "cursor", "gemini", "oh-my-pi", "openclaw", "opencode", "pi"];
37
+ export declare const KNOWN_ADAPTERS: readonly string[];
33
38
  //# sourceMappingURL=adapter-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-loader.d.ts","sourceRoot":"","sources":["../../src/cli/adapter-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGhF,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAsD9D;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,uGAUjB,CAAC"}
1
+ {"version":3,"file":"adapter-loader.d.ts","sourceRoot":"","sources":["../../src/cli/adapter-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,iBAAiB,GAAG,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,OAAO,EACrB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,gBAAgB,CAAC;AAEtB,MAAM,MAAM,eAAe,GAAG,CAC5B,YAAY,EAAE,qBAAqB,EACnC,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,gBAAgB,KACrB,OAAO,CAAC;AAEb,MAAM,MAAM,sBAAsB,GAAG,CACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,iBAAiB,CAAC,EAAE,MAAM,KACvB,MAAM,GAAG,IAAI,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAkCD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAuE9D;AA2BD,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAyB,CAAC"}
@@ -8,14 +8,74 @@
8
8
  * Each adapter package is expected to export:
9
9
  * - createAdapter(): AdapterCapabilities
10
10
  * - phase mappings (e.g. CLAUDE_PHASE_MAPPINGS / equivalent)
11
- * - normalizer function
12
- * - renderer function
11
+ * - optional normalizeForInvoke() hook for CLI-native normalization
12
+ * - optional renderForInvoke() hook for CLI-native output rendering
13
13
  * - session resolver
14
14
  */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
15
48
  Object.defineProperty(exports, "__esModule", { value: true });
16
49
  exports.KNOWN_ADAPTERS = void 0;
17
50
  exports.loadAdapter = loadAdapter;
51
+ const fs = __importStar(require("fs"));
52
+ const path = __importStar(require("path"));
18
53
  const hooks_mux_core_1 = require("@a5c-ai/hooks-mux-core");
54
+ function isFunction(value) {
55
+ return typeof value === 'function';
56
+ }
57
+ function resolveNormalizer(mod) {
58
+ const candidate = mod['normalizeForInvoke'];
59
+ return isFunction(candidate) ? candidate : undefined;
60
+ }
61
+ function resolveRenderer(mod) {
62
+ const candidate = mod['renderForInvoke'];
63
+ return isFunction(candidate) ? candidate : undefined;
64
+ }
65
+ function resolveSessionResolver(mod) {
66
+ const candidate = mod['resolveSessionId'];
67
+ return isFunction(candidate) ? candidate : undefined;
68
+ }
69
+ function loadWorkspaceAdapter(adapterName) {
70
+ const packageDir = path.resolve(__dirname, '..', '..');
71
+ const workspacePackageDir = path.resolve(packageDir, '..', `adapter-${adapterName}`);
72
+ const distEntry = path.join(workspacePackageDir, 'dist', 'index.js');
73
+ if (!fs.existsSync(distEntry)) {
74
+ return null;
75
+ }
76
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
77
+ return require(workspacePackageDir);
78
+ }
19
79
  /**
20
80
  * Attempt to load an adapter package by name.
21
81
  *
@@ -42,14 +102,23 @@ function loadAdapter(adapterName) {
42
102
  mod = require(packageName);
43
103
  }
44
104
  catch (err) {
45
- throw new Error(`Failed to load adapter "${adapterName}" (package: ${packageName}): ${err instanceof Error ? err.message : String(err)}`);
105
+ const workspaceAdapter = loadWorkspaceAdapter(adapterName);
106
+ if (!workspaceAdapter) {
107
+ throw new Error(`Failed to load adapter "${adapterName}" (package: ${packageName}): ${err instanceof Error ? err.message : String(err)}`);
108
+ }
109
+ mod = workspaceAdapter;
46
110
  }
47
111
  // Extract createAdapter function
48
112
  const createAdapterFn = mod['createAdapter'];
49
113
  if (typeof createAdapterFn !== 'function') {
50
114
  throw new Error(`Adapter package "${packageName}" does not export a createAdapter function`);
51
115
  }
52
- const capabilities = createAdapterFn();
116
+ const capabilities = createAdapterFn(adapterName);
117
+ // Initialize adapter name for normalizer if the module exports setAdapterName
118
+ const setNameFn = mod['setAdapterName'];
119
+ if (typeof setNameFn === 'function') {
120
+ setNameFn(adapterName);
121
+ }
53
122
  // Extract phase mappings -- convention: <ADAPTER>_PHASE_MAPPINGS or phaseMappings
54
123
  let phaseMappings = [];
55
124
  for (const key of Object.keys(mod)) {
@@ -61,20 +130,35 @@ function loadAdapter(adapterName) {
61
130
  }
62
131
  }
63
132
  }
64
- return { capabilities, phaseMappings, module: mod };
133
+ return {
134
+ capabilities,
135
+ phaseMappings,
136
+ normalizer: resolveNormalizer(mod),
137
+ renderer: resolveRenderer(mod),
138
+ sessionResolver: resolveSessionResolver(mod),
139
+ module: mod,
140
+ };
65
141
  }
66
142
  /**
67
143
  * List of known adapter names for discovery/doctor purposes.
144
+ * Derived from the Atlas catalog when available.
68
145
  */
69
- exports.KNOWN_ADAPTERS = [
70
- 'claude',
71
- 'codex',
72
- 'copilot',
73
- 'cursor',
74
- 'gemini',
75
- 'oh-my-pi',
76
- 'openclaw',
77
- 'opencode',
78
- 'pi',
79
- ];
146
+ function normalizeAdapterName(adapterName) {
147
+ return adapterName === 'omp' ? 'oh-my-pi' : adapterName;
148
+ }
149
+ function buildKnownAdapters() {
150
+ try {
151
+ const { listPluginTargetDescriptors } = require('@a5c-ai/agent-catalog');
152
+ const adapters = new Set(listPluginTargetDescriptors()
153
+ .map(t => normalizeAdapterName(t.adapterName))
154
+ .filter(Boolean));
155
+ if (adapters.size > 0)
156
+ return [...adapters].sort();
157
+ }
158
+ catch {
159
+ // Catalog unavailable
160
+ }
161
+ return [];
162
+ }
163
+ exports.KNOWN_ADAPTERS = buildKnownAdapters();
80
164
  //# sourceMappingURL=adapter-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-loader.js","sourceRoot":"","sources":["../../src/cli/adapter-loader.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAmBH,kCAsDC;AAtED,2DAAuD;AASvD;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,WAAmB;IAC7C,0DAA0D;IAC1D,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAA,8BAAa,GAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E,CAC/E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,QAAQ,CAAC,OAAO,IAAI;YAC1D,cAAc,QAAQ,CAAC,UAAU,cAAc,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CACjF,CAAC;QACF,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,MAAM,WAAW,GAAG,6BAA6B,WAAW,EAAE,CAAC;IAE/D,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,8DAA8D;QAC9D,GAAG,GAAG,OAAO,CAAC,WAAW,CAA4B,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,eAAe,WAAW,MAC9D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,oBAAoB,WAAW,4CAA4C,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,EAAyB,CAAC;IAE9D,kFAAkF;IAClF,IAAI,aAAa,GAAmB,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,aAAa,GAAG,SAA2B,CAAC;gBAC5C,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,IAAI;CACI,CAAC"}
1
+ {"version":3,"file":"adapter-loader.js","sourceRoot":"","sources":["../../src/cli/adapter-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type PropagationBackend, type SessionState, type UnifiedHookEvent } from '@a5c-ai/hooks-mux-core';
2
+ import type { loadAdapter } from './adapter-loader';
3
+ export declare function tryParseJson(raw: string): unknown | undefined;
4
+ export declare function resolveSessionId(adapterSessionResolver: ReturnType<typeof loadAdapter>['sessionResolver'], explicitSessionId: string | undefined, normalizedSessionId: string | null | undefined, stdinData: Record<string, unknown> | undefined, env: Record<string, string>): string | null;
5
+ export declare function resolveNativeEnvFilePath(env: Record<string, string>): string | undefined;
6
+ export declare function buildBootstrapPersistEnv(event: UnifiedHookEvent, sessionId: string | null): Record<string, string>;
7
+ export declare function prepareBootstrapSession(args: {
8
+ existingSession: SessionState | null;
9
+ adapter: string;
10
+ event: UnifiedHookEvent;
11
+ sessionId: string | null;
12
+ now?: Date;
13
+ }): {
14
+ session: SessionState | null;
15
+ persistEnv: Record<string, string>;
16
+ };
17
+ export declare function propagateBootstrapEnv(backend: PropagationBackend, persistEnv: Record<string, string>, env: Record<string, string>): Promise<boolean>;
18
+ //# sourceMappingURL=bootstrap-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-runtime.d.ts","sourceRoot":"","sources":["../../src/cli/bootstrap-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAQ7D;AAED,wBAAgB,gBAAgB,CAC9B,sBAAsB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,iBAAiB,CAAC,EACzE,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC9C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,GAAG,IAAI,CAkBf;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAExF;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,eAAe,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG;IACF,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAyCA;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryParseJson = tryParseJson;
4
+ exports.resolveSessionId = resolveSessionId;
5
+ exports.resolveNativeEnvFilePath = resolveNativeEnvFilePath;
6
+ exports.buildBootstrapPersistEnv = buildBootstrapPersistEnv;
7
+ exports.prepareBootstrapSession = prepareBootstrapSession;
8
+ exports.propagateBootstrapEnv = propagateBootstrapEnv;
9
+ const hooks_mux_core_1 = require("@a5c-ai/hooks-mux-core");
10
+ function tryParseJson(raw) {
11
+ const trimmed = raw.trim();
12
+ if (!trimmed)
13
+ return undefined;
14
+ try {
15
+ return JSON.parse(trimmed);
16
+ }
17
+ catch {
18
+ return undefined;
19
+ }
20
+ }
21
+ function resolveSessionId(adapterSessionResolver, explicitSessionId, normalizedSessionId, stdinData, env) {
22
+ if (adapterSessionResolver) {
23
+ const resolved = adapterSessionResolver(stdinData ?? {}, env, explicitSessionId);
24
+ const adapterSessionId = typeof resolved === 'string'
25
+ ? resolved
26
+ : resolved?.sessionId;
27
+ if (adapterSessionId) {
28
+ return adapterSessionId;
29
+ }
30
+ }
31
+ if (explicitSessionId)
32
+ return explicitSessionId;
33
+ if (env['AGENT_SESSION_ID'])
34
+ return env['AGENT_SESSION_ID'];
35
+ if (normalizedSessionId)
36
+ return normalizedSessionId;
37
+ if (stdinData && typeof stdinData['session_id'] === 'string') {
38
+ return stdinData['session_id'];
39
+ }
40
+ return null;
41
+ }
42
+ function resolveNativeEnvFilePath(env) {
43
+ return env['CLAUDE_ENV_FILE'] ?? env['HOOKS_PROXY_ENV_FILE'];
44
+ }
45
+ function buildBootstrapPersistEnv(event, sessionId) {
46
+ const persistEnv = { ...event.env.persisted };
47
+ if (sessionId) {
48
+ persistEnv['AGENT_SESSION_ID'] = sessionId;
49
+ }
50
+ return persistEnv;
51
+ }
52
+ function prepareBootstrapSession(args) {
53
+ const nowIso = (args.now ?? new Date()).toISOString();
54
+ const persistEnv = buildBootstrapPersistEnv(args.event, args.sessionId);
55
+ if (!args.sessionId) {
56
+ return {
57
+ session: null,
58
+ persistEnv,
59
+ };
60
+ }
61
+ const existing = args.existingSession;
62
+ const session = existing
63
+ ? {
64
+ ...existing,
65
+ updatedAt: nowIso,
66
+ cwd: existing.cwd ?? args.event.execution.cwd ?? undefined,
67
+ transcriptPath: existing.transcriptPath ?? args.event.execution.transcriptPath ?? undefined,
68
+ persistedEnv: { ...existing.persistedEnv, ...persistEnv },
69
+ contextVars: existing.contextVars ?? {},
70
+ contextFragments: existing.contextFragments ?? [],
71
+ metadata: existing.metadata ?? {},
72
+ }
73
+ : {
74
+ version: 'a5c.hooks.session.v1',
75
+ sessionId: args.sessionId,
76
+ adapter: args.adapter,
77
+ createdAt: nowIso,
78
+ updatedAt: nowIso,
79
+ cwd: args.event.execution.cwd ?? undefined,
80
+ transcriptPath: args.event.execution.transcriptPath ?? undefined,
81
+ persistedEnv: persistEnv,
82
+ contextVars: {},
83
+ contextFragments: [],
84
+ metadata: {},
85
+ };
86
+ return {
87
+ session,
88
+ persistEnv,
89
+ };
90
+ }
91
+ async function propagateBootstrapEnv(backend, persistEnv, env) {
92
+ if (Object.keys(persistEnv).length === 0) {
93
+ return false;
94
+ }
95
+ if (backend === 'native_env_file') {
96
+ const nativeEnvFilePath = resolveNativeEnvFilePath(env);
97
+ if (!nativeEnvFilePath) {
98
+ return false;
99
+ }
100
+ await (0, hooks_mux_core_1.propagateEnv)(backend, persistEnv, { nativeEnvFilePath });
101
+ return true;
102
+ }
103
+ await (0, hooks_mux_core_1.propagateEnv)(backend, persistEnv, {
104
+ nativeEnvFilePath: resolveNativeEnvFilePath(env),
105
+ });
106
+ return true;
107
+ }
108
+ //# sourceMappingURL=bootstrap-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-runtime.js","sourceRoot":"","sources":["../../src/cli/bootstrap-runtime.ts"],"names":[],"mappings":";;AAQA,oCAQC;AAED,4CAwBC;AAED,4DAEC;AAED,4DASC;AAED,0DAkDC;AAED,sDAsBC;AArID,2DAKgC;AAGhC,SAAgB,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB,CAC9B,sBAAyE,EACzE,iBAAqC,EACrC,mBAA8C,EAC9C,SAA8C,EAC9C,GAA2B;IAE3B,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACjF,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ;YACnD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC;QACxB,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,gBAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAChD,IAAI,GAAG,CAAC,kBAAkB,CAAC;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC5D,IAAI,mBAAmB;QAAE,OAAO,mBAAmB,CAAC;IACpD,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC,YAAY,CAAW,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,wBAAwB,CAAC,GAA2B;IAClE,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,wBAAwB,CACtC,KAAuB,EACvB,SAAwB;IAExB,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,UAAU,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC7C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAMvC;IAIC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAExE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;IACtC,MAAM,OAAO,GAAiB,QAAQ;QACpC,CAAC,CAAC;YACA,GAAG,QAAQ;YACX,SAAS,EAAE,MAAM;YACjB,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;YAC1D,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,SAAS;YAC3F,YAAY,EAAE,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,UAAU,EAAE;YACzD,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;YACvC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;SAClC;QACD,CAAC,CAAC;YACA,OAAO,EAAE,sBAAsB;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;YAC1C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,IAAI,SAAS;YAChE,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE;SACb,CAAC;IAEJ,OAAO;QACL,OAAO;QACP,UAAU;KACX,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,OAA2B,EAC3B,UAAkC,EAClC,GAA2B;IAE3B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAA,6BAAY,EAAC,OAAO,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAA,6BAAY,EAAC,OAAO,EAAE,UAAU,EAAE;QACtC,iBAAiB,EAAE,wBAAwB,CAAC,GAAG,CAAC;KACjD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,8 +3,9 @@
3
3
  *
4
4
  * Spec section 18.3.
5
5
  *
6
- * Delegates to invoke with --bootstrap-only flag internally.
7
- * Reads stdin for session discovery, creates/loads session, and persists it.
6
+ * Reads stdin for session discovery, resolves adapter-native session IDs,
7
+ * creates/loads session state, persists baseline env, and applies any
8
+ * supported propagation backend.
8
9
  */
9
10
  import type { CommandModule } from 'yargs';
10
11
  interface BootstrapArgs {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CA0EjE,CAAC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAgB3C,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAuFjE,CAAC"}
@@ -4,14 +4,17 @@
4
4
  *
5
5
  * Spec section 18.3.
6
6
  *
7
- * Delegates to invoke with --bootstrap-only flag internally.
8
- * Reads stdin for session discovery, creates/loads session, and persists it.
7
+ * Reads stdin for session discovery, resolves adapter-native session IDs,
8
+ * creates/loads session state, persists baseline env, and applies any
9
+ * supported propagation backend.
9
10
  */
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
11
12
  exports.bootstrapCommand = void 0;
12
13
  const hooks_mux_core_1 = require("@a5c-ai/hooks-mux-core");
13
14
  const adapter_loader_1 = require("../adapter-loader");
15
+ const bootstrap_runtime_1 = require("../bootstrap-runtime");
14
16
  const hooks_logger_1 = require("../hooks-logger");
17
+ const stdin_1 = require("../stdin");
15
18
  exports.bootstrapCommand = {
16
19
  command: 'bootstrap',
17
20
  describe: 'No-op context bootstrap — initialize session without running handlers',
@@ -34,50 +37,52 @@ exports.bootstrapCommand = {
34
37
  const logger = (0, hooks_logger_1.createHooksLogger)('bootstrap');
35
38
  const loaded = (0, adapter_loader_1.loadAdapter)(args.adapter);
36
39
  const env = process.env;
37
- // Determine session ID
38
- const sessionId = args['session-id']
39
- ?? env['AGENT_SESSION_ID']
40
- ?? `bootstrap-${Date.now()}`;
41
- // Normalize a synthetic session.start event for context extraction
42
- const event = (0, hooks_mux_core_1.normalizeEvent)({
40
+ const rawStdin = await (0, stdin_1.readStdin)();
41
+ const stdinPayload = (0, bootstrap_runtime_1.tryParseJson)(rawStdin);
42
+ const stdinData = (typeof stdinPayload === 'object' && stdinPayload !== null && !Array.isArray(stdinPayload))
43
+ ? stdinPayload
44
+ : undefined;
45
+ const rawEventName = loaded.capabilities.name === 'claude'
46
+ ? 'SessionStart'
47
+ : 'bootstrap';
48
+ const event = loaded.normalizer
49
+ ? loaded.normalizer(rawEventName, rawStdin, env)
50
+ : (0, hooks_mux_core_1.normalizeEvent)({
51
+ adapter: args.adapter,
52
+ rawEventName,
53
+ stdinPayload,
54
+ env,
55
+ adapterMappings: loaded.phaseMappings,
56
+ });
57
+ const sessionId = (0, bootstrap_runtime_1.resolveSessionId)(loaded.sessionResolver, args['session-id'], event.execution.sessionId, stdinData, env) ?? `bootstrap-${Date.now()}`;
58
+ const prepared = (0, bootstrap_runtime_1.prepareBootstrapSession)({
59
+ existingSession: await (0, hooks_mux_core_1.loadSession)(sessionId),
43
60
  adapter: args.adapter,
44
- rawEventName: 'bootstrap',
45
- env,
46
- adapterMappings: loaded.phaseMappings,
61
+ event,
62
+ sessionId,
47
63
  });
48
- // Load or create session
49
- let session = await (0, hooks_mux_core_1.loadSession)(sessionId);
50
- if (!session) {
51
- session = {
52
- version: 'a5c.hooks.session.v1',
53
- sessionId,
54
- adapter: args.adapter,
55
- createdAt: new Date().toISOString(),
56
- updatedAt: new Date().toISOString(),
57
- cwd: event.execution.cwd ?? undefined,
58
- persistedEnv: { ...event.env.persisted },
59
- contextVars: {},
60
- contextFragments: [],
61
- metadata: {},
62
- };
64
+ const session = prepared.session;
65
+ if (session) {
66
+ await (0, hooks_mux_core_1.saveSession)(session);
63
67
  }
64
- await (0, hooks_mux_core_1.saveSession)(session);
68
+ const propagated = await (0, bootstrap_runtime_1.propagateBootstrapEnv)(loaded.capabilities.envPersistenceMode, prepared.persistEnv, env);
65
69
  await logger.info('bootstrap completed', {
66
70
  adapter: args.adapter,
67
71
  sessionId,
68
- createdAt: session.createdAt,
72
+ createdAt: session?.createdAt ?? null,
73
+ propagated,
69
74
  });
70
75
  const output = {
71
76
  status: 'bootstrapped',
72
77
  sessionId,
73
78
  adapter: args.adapter,
74
- createdAt: session.createdAt,
79
+ createdAt: session?.createdAt ?? null,
75
80
  };
76
81
  if (args.json) {
77
82
  process.stdout.write(JSON.stringify(output, null, 2) + '\n');
78
83
  }
79
84
  else {
80
- console.log(`Session bootstrapped: ${sessionId} (adapter: ${args.adapter})`);
85
+ process.stderr.write(`Session bootstrapped: ${sessionId} (adapter: ${args.adapter})\n`);
81
86
  }
82
87
  },
83
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,2DAIgC;AAChC,sDAAgD;AAChD,kDAAoD;AAQvC,QAAA,gBAAgB,GAAyC;IACpE,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,uEAAuE;IACjF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,iFAAiF;KAC5F,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,8BAA8B;KACzC,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAA,4BAAW,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAA6B,CAAC;QAElD,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;eAC/B,GAAG,CAAC,kBAAkB,CAAC;eACvB,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAE/B,mEAAmE;QACnE,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,WAAW;YACzB,GAAG;YACH,eAAe,EAAE,MAAM,CAAC,aAAa;SACtC,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,OAAO,GAAG,MAAM,IAAA,4BAAW,EAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG;gBACR,OAAO,EAAE,sBAAsB;gBAC/B,SAAS;gBACT,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,SAAS;gBACrC,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;gBACxC,WAAW,EAAE,EAAE;gBACf,gBAAgB,EAAE,EAAE;gBACpB,QAAQ,EAAE,EAAE;aACb,CAAC;QACJ,CAAC;QAED,MAAM,IAAA,4BAAW,EAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACvC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,cAAc;YACtB,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,cAAc,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,20 @@
5
5
  *
6
6
  * Pipeline:
7
7
  * 1. Read stdin when adapter expects it
8
- * 2. Normalize event via core normalizeEvent
8
+ * 2. Normalize event via adapter normalizer when available, else core normalizeEvent
9
9
  * 3. Resolve/load session context via core session store
10
10
  * 4. Run handler or fan-out plan via core runPlan
11
11
  * 5. Merge results via core mergeResults
12
12
  * 6. Persist session store
13
13
  * 7. Apply propagation backend
14
- * 8. Emit adapter-native output
14
+ * 8. Emit adapter-native output via adapter renderer when available
15
15
  */
16
16
  import type { CommandModule } from 'yargs';
17
17
  interface InvokeArgs {
18
18
  adapter: string;
19
19
  handler?: string[];
20
20
  'bootstrap-only'?: boolean;
21
+ 'native-event'?: string;
21
22
  'session-id'?: string;
22
23
  json?: boolean;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAiB3C,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA6CD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,CAkL3D,CAAC"}
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAyB3C,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkKD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,UAAU,CA4M3D,CAAC"}
@@ -6,54 +6,118 @@
6
6
  *
7
7
  * Pipeline:
8
8
  * 1. Read stdin when adapter expects it
9
- * 2. Normalize event via core normalizeEvent
9
+ * 2. Normalize event via adapter normalizer when available, else core normalizeEvent
10
10
  * 3. Resolve/load session context via core session store
11
11
  * 4. Run handler or fan-out plan via core runPlan
12
12
  * 5. Merge results via core mergeResults
13
13
  * 6. Persist session store
14
14
  * 7. Apply propagation backend
15
- * 8. Emit adapter-native output
15
+ * 8. Emit adapter-native output via adapter renderer when available
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.invokeCommand = void 0;
19
19
  const hooks_mux_core_1 = require("@a5c-ai/hooks-mux-core");
20
20
  const adapter_loader_1 = require("../adapter-loader");
21
+ const bootstrap_runtime_1 = require("../bootstrap-runtime");
21
22
  const hooks_logger_1 = require("../hooks-logger");
22
23
  const stdin_1 = require("../stdin");
23
- /**
24
- * Try to parse a string as JSON, returning undefined on failure.
25
- */
26
- function tryParseJson(raw) {
27
- const trimmed = raw.trim();
28
- if (!trimmed)
24
+ function inferClaudeNativeEventName(stdinData) {
25
+ if (!stdinData) {
29
26
  return undefined;
30
- try {
31
- return JSON.parse(trimmed);
32
27
  }
33
- catch {
34
- return undefined;
28
+ if (typeof stdinData['tool_name'] === 'string'
29
+ || typeof stdinData['tool_call_id'] === 'string'
30
+ || stdinData['tool_input'] !== undefined) {
31
+ return stdinData['tool_response'] !== undefined ? 'PostToolUse' : 'PreToolUse';
32
+ }
33
+ if (stdinData['stop_hook_active'] !== undefined
34
+ || typeof stdinData['last_assistant_message'] === 'string'
35
+ || typeof stdinData['reason'] === 'string') {
36
+ return 'Stop';
37
+ }
38
+ if (typeof stdinData['source'] === 'string'
39
+ || stdinData['initial_prompt'] !== undefined) {
40
+ return 'SessionStart';
41
+ }
42
+ if (stdinData['prompt'] !== undefined) {
43
+ return 'UserPromptSubmit';
35
44
  }
45
+ if (stdinData['agent_type'] !== undefined) {
46
+ return 'SubagentStop';
47
+ }
48
+ if (stdinData['title'] !== undefined || stdinData['message'] !== undefined) {
49
+ return 'Notification';
50
+ }
51
+ return undefined;
36
52
  }
37
- /**
38
- * Resolve the session ID from explicit flag, env, or stdin payload.
39
- */
40
- function resolveSessionId(explicitSessionId, stdinData, env) {
41
- if (explicitSessionId)
42
- return explicitSessionId;
43
- if (env['AGENT_SESSION_ID'])
44
- return env['AGENT_SESSION_ID'];
45
- if (stdinData && typeof stdinData['session_id'] === 'string') {
46
- return stdinData['session_id'];
53
+ function resolveRawEventName(explicitNativeEvent, adapterName, stdinData, env) {
54
+ if (explicitNativeEvent) {
55
+ return { rawEventName: explicitNativeEvent, source: 'cli' };
56
+ }
57
+ if (env['HOOKS_PROXY_EVENT_NAME']) {
58
+ return { rawEventName: env['HOOKS_PROXY_EVENT_NAME'], source: 'env' };
59
+ }
60
+ if (typeof stdinData?.['event_name'] === 'string') {
61
+ return { rawEventName: stdinData['event_name'], source: 'stdin' };
47
62
  }
48
- return null;
63
+ if (adapterName === 'claude') {
64
+ const inferred = inferClaudeNativeEventName(stdinData);
65
+ if (inferred) {
66
+ return { rawEventName: inferred, source: 'claude-heuristic' };
67
+ }
68
+ }
69
+ return { rawEventName: 'unknown', source: 'default' };
70
+ }
71
+ function renderOutput(args, loaded, merged, rawEventName, stdinPayload, event) {
72
+ if (!loaded.renderer) {
73
+ return (0, hooks_mux_core_1.adaptOutput)({
74
+ adapter: args.adapter,
75
+ mergedResult: merged,
76
+ nativeInput: stdinPayload,
77
+ capabilities: loaded.capabilities,
78
+ });
79
+ }
80
+ const rendered = loaded.renderer(merged, rawEventName, event);
81
+ if (rendered && typeof rendered === 'object' && !Array.isArray(rendered) && 'output' in rendered) {
82
+ const adapterRendered = rendered;
83
+ return {
84
+ output: (adapterRendered.output
85
+ && typeof adapterRendered.output === 'object'
86
+ && !Array.isArray(adapterRendered.output))
87
+ ? adapterRendered.output
88
+ : {},
89
+ degradedFields: [
90
+ ...(Array.isArray(adapterRendered.degradedFields) ? adapterRendered.degradedFields : []),
91
+ ...(Array.isArray(adapterRendered.droppedFields) ? adapterRendered.droppedFields : []),
92
+ ].filter((value) => typeof value === 'string'),
93
+ };
94
+ }
95
+ return {
96
+ output: (rendered && typeof rendered === 'object' && !Array.isArray(rendered))
97
+ ? rendered
98
+ : {},
99
+ degradedFields: [],
100
+ };
49
101
  }
50
102
  /**
51
103
  * Parse --handler values into HandlerRef objects.
52
104
  * Format: "source:handler" or just "source" (handler defaults to "handler").
53
105
  */
106
+ function findWindowsPathPrefixLength(value) {
107
+ if (/^[A-Za-z]:[\\/]/.test(value)) {
108
+ return 2;
109
+ }
110
+ if (/^[\\/]{2}\?[\\/][A-Za-z]:[\\/]/.test(value)) {
111
+ return 6;
112
+ }
113
+ return 0;
114
+ }
54
115
  function parseHandlerArgs(handlers) {
55
116
  return handlers.map((h) => {
56
- const colonIdx = h.indexOf(':');
117
+ const windowsPrefixLength = findWindowsPathPrefixLength(h);
118
+ const colonIdx = windowsPrefixLength > 0
119
+ ? h.indexOf(':', windowsPrefixLength)
120
+ : h.indexOf(':');
57
121
  if (colonIdx >= 0) {
58
122
  return { source: h.slice(0, colonIdx), handler: h.slice(colonIdx + 1) };
59
123
  }
@@ -78,6 +142,10 @@ exports.invokeCommand = {
78
142
  type: 'boolean',
79
143
  default: false,
80
144
  describe: 'Only bootstrap session context, skip handler execution',
145
+ })
146
+ .option('native-event', {
147
+ type: 'string',
148
+ describe: 'Explicit native hook event name (for Claude: SessionStart, PreToolUse, PostToolUse, Stop, etc.)',
81
149
  })
82
150
  .option('session-id', {
83
151
  type: 'string',
@@ -99,67 +167,68 @@ exports.invokeCommand = {
99
167
  });
100
168
  // 2. Read stdin
101
169
  const rawStdin = await (0, stdin_1.readStdin)();
102
- const stdinPayload = tryParseJson(rawStdin);
170
+ const stdinPayload = (0, bootstrap_runtime_1.tryParseJson)(rawStdin);
103
171
  const stdinData = (typeof stdinPayload === 'object' && stdinPayload !== null && !Array.isArray(stdinPayload))
104
172
  ? stdinPayload
105
173
  : undefined;
106
174
  // Determine raw event name from env or stdin
107
175
  const env = process.env;
108
- const rawEventName = env['HOOKS_PROXY_EVENT_NAME']
109
- ?? stdinData?.['event_name']
110
- ?? 'unknown';
176
+ const rawEvent = resolveRawEventName(args['native-event'], loaded.capabilities.name, stdinData, env);
177
+ const { rawEventName } = rawEvent;
111
178
  await logger.debug('stdin parsed', {
112
179
  rawEventName,
180
+ rawEventNameSource: rawEvent.source,
113
181
  stdinBytes: rawStdin.length,
114
182
  stdinJson: Boolean(stdinData),
115
183
  });
116
184
  // 3. Normalize event
117
- const event = (0, hooks_mux_core_1.normalizeEvent)({
118
- adapter: args.adapter,
119
- rawEventName,
120
- stdinPayload,
121
- env,
122
- adapterMappings: loaded.phaseMappings,
123
- });
185
+ const event = loaded.normalizer
186
+ ? loaded.normalizer(rawEventName, rawStdin, env)
187
+ : (0, hooks_mux_core_1.normalizeEvent)({
188
+ adapter: args.adapter,
189
+ rawEventName,
190
+ stdinPayload,
191
+ env,
192
+ adapterMappings: loaded.phaseMappings,
193
+ });
124
194
  // 4. Resolve session
125
- const sessionId = resolveSessionId(args['session-id'], stdinData, env);
195
+ const sessionId = (0, bootstrap_runtime_1.resolveSessionId)(loaded.sessionResolver, args['session-id'], event.execution.sessionId, stdinData, env);
126
196
  await logger.debug('session resolved', {
127
197
  sessionId,
128
198
  explicitSessionId: args['session-id'] ?? null,
129
199
  });
130
200
  let session = null;
131
201
  if (sessionId) {
132
- session = await (0, hooks_mux_core_1.loadSession)(sessionId);
133
- if (!session) {
134
- // Create a new session
135
- session = {
136
- version: 'a5c.hooks.session.v1',
137
- sessionId,
138
- adapter: args.adapter,
139
- createdAt: new Date().toISOString(),
140
- updatedAt: new Date().toISOString(),
141
- cwd: event.execution.cwd ?? undefined,
142
- transcriptPath: event.execution.transcriptPath ?? undefined,
143
- persistedEnv: { ...event.env.persisted },
144
- contextVars: {},
145
- contextFragments: [],
146
- metadata: {},
147
- };
148
- }
202
+ const prepared = (0, bootstrap_runtime_1.prepareBootstrapSession)({
203
+ existingSession: await (0, hooks_mux_core_1.loadSession)(sessionId),
204
+ adapter: args.adapter,
205
+ event,
206
+ sessionId,
207
+ });
208
+ session = prepared.session;
149
209
  // Inject session context into event execution
150
210
  event.execution.sessionId = sessionId;
151
- if (session.persistedEnv) {
211
+ if (session?.persistedEnv) {
152
212
  Object.assign(event.execution.persistedEnv, session.persistedEnv);
153
213
  }
154
214
  }
155
215
  // 5. Bootstrap-only mode: persist session and exit
156
216
  if (args['bootstrap-only']) {
217
+ const prepared = (0, bootstrap_runtime_1.prepareBootstrapSession)({
218
+ existingSession: session,
219
+ adapter: args.adapter,
220
+ event,
221
+ sessionId,
222
+ });
223
+ session = prepared.session;
157
224
  if (session) {
158
225
  await (0, hooks_mux_core_1.saveSession)(session);
159
226
  }
227
+ const propagated = await (0, bootstrap_runtime_1.propagateBootstrapEnv)(loaded.capabilities.envPersistenceMode, prepared.persistEnv, env);
160
228
  await logger.info('bootstrap-only invoke completed', {
161
229
  adapter: args.adapter,
162
230
  sessionId,
231
+ propagated,
163
232
  });
164
233
  if (args.json) {
165
234
  process.stdout.write(JSON.stringify({ status: 'bootstrapped', sessionId }, null, 2) + '\n');
@@ -206,16 +275,11 @@ exports.invokeCommand = {
206
275
  if (Object.keys(merged.persistEnv).length > 0) {
207
276
  const backend = loaded.capabilities.envPersistenceMode;
208
277
  await (0, hooks_mux_core_1.propagateEnv)(backend, merged.persistEnv, {
209
- nativeEnvFilePath: env['CLAUDE_ENV_FILE'] ?? env['HOOKS_PROXY_ENV_FILE'],
278
+ nativeEnvFilePath: (0, bootstrap_runtime_1.resolveNativeEnvFilePath)(env),
210
279
  });
211
280
  }
212
281
  // 10. Emit adapter-native output
213
- const adapted = (0, hooks_mux_core_1.adaptOutput)({
214
- adapter: args.adapter,
215
- mergedResult: merged,
216
- nativeInput: stdinPayload,
217
- capabilities: loaded.capabilities,
218
- });
282
+ const adapted = renderOutput(args, loaded, merged, rawEventName, stdinPayload, event);
219
283
  await logger.info('invoke completed', {
220
284
  adapter: args.adapter,
221
285
  phase: event.phase,
@@ -223,7 +287,18 @@ exports.invokeCommand = {
223
287
  decision: merged.decision,
224
288
  degradedFields: adapted.degradedFields,
225
289
  });
226
- process.stdout.write(JSON.stringify(adapted.output, null, args.json ? 2 : 0) + '\n');
290
+ const finalOutput = { ...adapted.output };
291
+ if (Object.keys(adapted.output).length === 0) {
292
+ finalOutput.decision = merged.decision;
293
+ }
294
+ if (Object.keys(merged.persistEnv).length > 0) {
295
+ finalOutput.persistEnv = merged.persistEnv;
296
+ }
297
+ finalOutput.metadata = {
298
+ ...(sessionId ? { AGENT_SESSION_ID: sessionId } : {}),
299
+ AGENT_ADAPTER: args.adapter,
300
+ };
301
+ process.stdout.write(JSON.stringify(finalOutput, null, args.json ? 2 : 0) + '\n');
227
302
  },
228
303
  };
229
304
  //# sourceMappingURL=invoke.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-logger.d.ts","sourceRoot":"","sources":["../../src/cli/hooks-logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAiChE,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAGvD;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM;qBAE5B,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAE1C,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAEzC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAExC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EAG7D"}
1
+ {"version":3,"file":"hooks-logger.d.ts","sourceRoot":"","sources":["../../src/cli/hooks-logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AA+ChE,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAGvD;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM;qBAE5B,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAE1C,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAEzC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBAExC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EAG7D"}
@@ -49,6 +49,17 @@ const LOG_LEVELS = {
49
49
  };
50
50
  const LOG_LEVEL_ENV = 'A5C_LOGGING_HOOKS_LEVEL';
51
51
  const LOG_FILE_NAME = 'hooks-mux.log';
52
+ function resolveHomeDir() {
53
+ const envHome = process.env.HOME?.trim();
54
+ if (envHome) {
55
+ return envHome;
56
+ }
57
+ const userProfile = process.env.USERPROFILE?.trim();
58
+ if (userProfile) {
59
+ return userProfile;
60
+ }
61
+ return os.homedir();
62
+ }
52
63
  function parseLogLevel(value) {
53
64
  switch ((value ?? '').trim().toLowerCase()) {
54
65
  case 'debug':
@@ -62,7 +73,7 @@ function parseLogLevel(value) {
62
73
  }
63
74
  }
64
75
  function getHooksLogDir() {
65
- return path.join(os.homedir(), '.a5c', 'logs', 'hooks');
76
+ return path.join(resolveHomeDir(), '.a5c', 'logs', 'hooks');
66
77
  }
67
78
  function getHooksLogPath() {
68
79
  return path.join(getHooksLogDir(), LOG_FILE_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-logger.js","sourceRoot":"","sources":["../../src/cli/hooks-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-logger.js","sourceRoot":"","sources":["../../src/cli/hooks-logger.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.main = main;
8
- const yargs_1 = __importDefault(require("yargs"));
8
+ const yargs_1 = __importDefault(require("yargs/yargs"));
9
9
  const helpers_1 = require("yargs/helpers");
10
10
  const hooks_logger_1 = require("./hooks-logger");
11
11
  const invoke_1 = require("./commands/invoke");
@@ -27,7 +27,7 @@ async function main(argv = process.argv) {
27
27
  .demandCommand(1, 'You must provide a command')
28
28
  .strict()
29
29
  .help()
30
- .parseAsync();
30
+ .parse();
31
31
  }
32
32
  if (require.main === module) {
33
33
  const logger = (0, hooks_logger_1.createHooksLogger)('main');
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";;;;;;AAYA,oBAcC;AAxBD,kDAA0B;AAC1B,2CAAwC;AACxC,iDAAmD;AACnD,8CAAkD;AAClD,0CAA8C;AAC9C,oDAAwD;AACxD,0DAA6D;AAC7D,4DAA+D;AAC/D,8CAAkD;AAE3C,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI;IACtD,MAAM,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAC;SACvB,UAAU,CAAC,eAAe,CAAC;SAC3B,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,kBAAW,CAAC;SACpB,OAAO,CAAC,4BAAgB,CAAC;SACzB,OAAO,CAAC,iCAAkB,CAAC;SAC3B,OAAO,CAAC,mCAAmB,CAAC;SAC5B,OAAO,CAAC,sBAAa,CAAC;SACtB,aAAa,CAAC,CAAC,EAAE,4BAA4B,CAAC;SAC9C,MAAM,EAAE;SACR,IAAI,EAAE;SACN,UAAU,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC5B,KAAK,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACnC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";;;;;;AAYA,oBAcC;AAxBD,wDAAgC;AAChC,2CAAwC;AACxC,iDAAmD;AACnD,8CAAkD;AAClD,0CAA8C;AAC9C,oDAAwD;AACxD,0DAA6D;AAC7D,4DAA+D;AAC/D,8CAAkD;AAE3C,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI;IACtD,MAAM,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,CAAC;SACvB,UAAU,CAAC,eAAe,CAAC;SAC3B,KAAK,CAAC,wBAAwB,CAAC;SAC/B,OAAO,CAAC,sBAAa,CAAC;SACtB,OAAO,CAAC,kBAAW,CAAC;SACpB,OAAO,CAAC,4BAAgB,CAAC;SACzB,OAAO,CAAC,iCAAkB,CAAC;SAC3B,OAAO,CAAC,mCAAmB,CAAC;SAC5B,OAAO,CAAC,sBAAa,CAAC;SACtB,aAAa,CAAC,CAAC,EAAE,4BAA4B,CAAC;SAC9C,MAAM,EAAE;SACR,IAAI,EAAE;SACN,KAAK,EAAE,CAAC;AACb,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC5B,KAAK,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACnC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@a5c-ai/hooks-mux-cli",
3
- "version": "5.0.1-staging.e4c68b9b",
3
+ "version": "5.0.1-staging.eaefc7aec",
4
4
  "description": "CLI entrypoint for the hooks-mux system",
5
- "license": "UNLICENSED",
5
+ "license": "MIT",
6
6
  "type": "commonjs",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
@@ -14,11 +14,16 @@
14
14
  },
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/a5c-ai/babysitter.git",
17
+ "url": "git+https://github.com/a5c-ai/babysitter.git",
18
18
  "directory": "packages/hooks-mux/cli"
19
19
  },
20
+ "homepage": "https://github.com/a5c-ai/babysitter/tree/main/packages/hooks-mux/cli#readme",
21
+ "bugs": {
22
+ "url": "https://github.com/a5c-ai/babysitter/issues"
23
+ },
20
24
  "files": [
21
- "dist"
25
+ "dist",
26
+ "README.md"
22
27
  ],
23
28
  "scripts": {
24
29
  "build": "tsc -p tsconfig.json",
@@ -28,7 +33,17 @@
28
33
  "test:watch": "vitest"
29
34
  },
30
35
  "dependencies": {
31
- "@a5c-ai/hooks-mux-core": "5.0.1-staging.e4c68b9b",
36
+ "@a5c-ai/hooks-mux-adapter-claude": "5.0.1-staging.eaefc7aec",
37
+ "@a5c-ai/hooks-mux-adapter-codex": "5.0.1-staging.eaefc7aec",
38
+ "@a5c-ai/hooks-mux-adapter-copilot": "5.0.1-staging.eaefc7aec",
39
+ "@a5c-ai/hooks-mux-adapter-cursor": "5.0.1-staging.eaefc7aec",
40
+ "@a5c-ai/hooks-mux-adapter-gemini": "5.0.1-staging.eaefc7aec",
41
+ "@a5c-ai/hooks-mux-adapter-hermes": "5.0.1-staging.eaefc7aec",
42
+ "@a5c-ai/hooks-mux-adapter-oh-my-pi": "5.0.1-staging.eaefc7aec",
43
+ "@a5c-ai/hooks-mux-adapter-openclaw": "5.0.1-staging.eaefc7aec",
44
+ "@a5c-ai/hooks-mux-adapter-opencode": "5.0.1-staging.eaefc7aec",
45
+ "@a5c-ai/hooks-mux-adapter-pi": "5.0.1-staging.eaefc7aec",
46
+ "@a5c-ai/hooks-mux-core": "5.0.1-staging.eaefc7aec",
32
47
  "yargs": "^17.0.0"
33
48
  },
34
49
  "devDependencies": {