@a5c-ai/hooks-mux-core 5.0.1-staging.fcac7259 → 5.0.1-staging.ff407b73

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,37 @@
1
+ # @a5c-ai/hooks-mux-core
2
+
3
+ Canonical schemas, types, session store, merge engine, and programmatic runtime for hooks-mux.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @a5c-ai/hooks-mux-core
9
+ ```
10
+
11
+ This package ships the built runtime in `dist/` and this package README for npm publish-surface auditing.
12
+
13
+ ## Usage
14
+
15
+ ```ts
16
+ import {
17
+ createHooksEngine,
18
+ createAdapter,
19
+ registerHandler,
20
+ runNormalized,
21
+ type UnifiedHookEvent,
22
+ type UnifiedHookResult,
23
+ } from "@a5c-ai/hooks-mux-core";
24
+ ```
25
+
26
+ The public surface includes:
27
+
28
+ - canonical event, result, adapter, plan, and session types
29
+ - normalization, merge, propagation, and diagnostics helpers
30
+ - session-store utilities and harness discovery
31
+ - the programmatic hooks engine for in-process integrations
32
+
33
+ See the workspace overview in [`packages/hooks-mux/README.md`](../README.md) and the adapter guide in `packages/hooks-mux/docs/`.
34
+
35
+ ## License
36
+
37
+ MIT © a5c-ai
@@ -1 +1 @@
1
- {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/discovery/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAuFD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,eAAe,GAAG,IAAI,CAuCxB"}
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/discovery/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,eAAe,GAAG,IAAI,CAuCxB"}
@@ -9,73 +9,12 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.detectHarness = detectHarness;
12
+ const agent_catalog_1 = require("@a5c-ai/agent-catalog");
12
13
  /**
13
14
  * Ordered list of detection rules.
14
15
  * First high-confidence match wins; checked sequentially.
15
16
  */
16
- const DETECTION_RULES = [
17
- // 1. Claude Code
18
- {
19
- adapter: 'claude',
20
- confidence: 'high',
21
- signals: ['CLAUDE_PLUGIN_ROOT', 'CLAUDE_ENV_FILE'],
22
- },
23
- // 2. Codex — high if CODEX_PLUGIN_ROOT or CODEX_THREAD_ID is set
24
- {
25
- adapter: 'codex',
26
- confidence: 'high',
27
- signals: ['CODEX_PLUGIN_ROOT', 'CODEX_THREAD_ID'],
28
- },
29
- // 2b. Codex — medium if OPENAI_API_KEY is set but no Claude signals
30
- {
31
- adapter: 'codex',
32
- confidence: 'medium',
33
- signals: ['OPENAI_API_KEY'],
34
- condition: (env) => !env['CLAUDE_PLUGIN_ROOT'] && !env['CLAUDE_ENV_FILE'],
35
- },
36
- // 3. Gemini CLI
37
- {
38
- adapter: 'gemini',
39
- confidence: 'high',
40
- signals: ['GEMINI_EXTENSION_PATH', 'BABYSITTER_EXTENSION_PATH'],
41
- },
42
- // 4. GitHub Copilot
43
- {
44
- adapter: 'copilot',
45
- confidence: 'high',
46
- signals: ['COPILOT_HOME', 'COPILOT_GITHUB_TOKEN'],
47
- },
48
- // 5. Cursor
49
- {
50
- adapter: 'cursor',
51
- confidence: 'medium',
52
- signals: ['CURSOR_PROJECT_DIR', 'CURSOR_VERSION'],
53
- },
54
- // 6. Pi
55
- {
56
- adapter: 'pi',
57
- confidence: 'high',
58
- signals: ['PI_PLUGIN_ROOT', 'PI_SESSION_ID'],
59
- },
60
- // 7. Oh-My-Pi
61
- {
62
- adapter: 'oh-my-pi',
63
- confidence: 'high',
64
- signals: ['OMP_PLUGIN_ROOT', 'OMP_SESSION_ID'],
65
- },
66
- // 8. OpenCode
67
- {
68
- adapter: 'opencode',
69
- confidence: 'high',
70
- signals: ['OPENCODE_CONFIG', 'ACCOMPLISH_TASK_ID'],
71
- },
72
- // 9. OpenClaw
73
- {
74
- adapter: 'openclaw',
75
- confidence: 'medium',
76
- signals: ['OPENCLAW_SHELL', 'OPENCLAW_HOME'],
77
- },
78
- ];
17
+ const DETECTION_RULES = (0, agent_catalog_1.getHooksMuxDetectionRules)();
79
18
  /**
80
19
  * Detect which harness the current process is running inside.
81
20
  *
@@ -91,7 +30,7 @@ function detectHarness(env = process.env) {
91
30
  let bestMatch = null;
92
31
  for (const rule of DETECTION_RULES) {
93
32
  // Check optional condition (e.g. absence of other signals)
94
- if (rule.condition && !rule.condition(env)) {
33
+ if (rule.absentSignals?.some((signal) => env[signal])) {
95
34
  continue;
96
35
  }
97
36
  // Collect evidence — which of the rule's signals are actually present
@@ -1 +1 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/discovery/detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/discovery/detector.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA+BH,sCAyCC;AAtED,yDAAkE;AAYlE;;;GAGG;AACH,MAAM,eAAe,GAA4B,IAAA,yCAAyB,GAAE,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,SAAgB,aAAa,CAC3B,MAA0C,OAAO,CAAC,GAAG;IAErD,IAAI,SAAS,GAA2B,IAAI,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,2DAA2D;QAC3D,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ;SACT,CAAC;QAEF,yDAAyD;QACzD,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { normalizeEvent, resolvePhaseMapping, splitEnv, resolveHookPlan, sortHan
8
8
  export type { NormalizeOptions, PlanResolverOptions, ErrorPolicy, RunPlanOptions } from './normalizer';
9
9
  export { SESSION_SCHEMA_VERSION, getSessionDir, loadSession, saveSession, deleteSession, updateSession, addContextFragment, acquireLock, releaseLock, getDefaultSessionDir, getSessionFilePath, SESSION_PID_MARKER_ENV_VAR, isSessionPidMarkerEnabled, findHarnessAncestorPid, writeSessionMarker, readSessionMarker, cleanupSessionMarker, getSessionMarkerPath, } from './session-store';
10
10
  export { mergeResults, MergeConflictError, type MergeOptions, type MergedExecutionResult, type DecisionVerb, type MergeDiagnostics, type MergeConflict, type DegradedField, createDiagnostics, recordConflict, recordDegradedField, } from './merge-engine';
11
- export { materializeExecContext, generateTempEnvFile, escapeShellValue, getTrackedTempFiles, cleanupTempFiles, adaptOutput, propagateEnv, } from './propagation';
11
+ export { buildExportEnvFileLines, materializeExecContext, generateTempEnvFile, escapeShellValue, getTrackedTempFiles, cleanupTempFiles, adaptOutput, propagateEnv, } from './propagation';
12
12
  export type { MaterializeOptions, ExecMaterialization, AdaptOutputOptions, AdaptedOutput, PropagationBackend, PropagationOptions, SessionStore, } from './propagation';
13
13
  export { DiagnosticLogger, createDiagnosticLogger, TraceWriter, createTraceWriter, generateTraceId, buildTraceRecord, } from './diagnostics';
14
14
  export type { DiagnosticEntry, DiagnosticLoggerOptions, MergeDecisionSummary, SessionIdQuality, TraceWriterOptions, TraceRecord, TraceHandlerRecord, } from './diagnostics';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerHandler = exports.createAdapter = exports.buildTraceRecord = exports.generateTraceId = exports.createTraceWriter = exports.TraceWriter = exports.createDiagnosticLogger = exports.DiagnosticLogger = exports.propagateEnv = exports.adaptOutput = exports.cleanupTempFiles = exports.getTrackedTempFiles = exports.escapeShellValue = exports.generateTempEnvFile = exports.materializeExecContext = exports.recordDegradedField = exports.recordConflict = exports.createDiagnostics = exports.MergeConflictError = exports.mergeResults = exports.getSessionMarkerPath = exports.cleanupSessionMarker = exports.readSessionMarker = exports.writeSessionMarker = exports.findHarnessAncestorPid = exports.isSessionPidMarkerEnabled = exports.SESSION_PID_MARKER_ENV_VAR = exports.getSessionFilePath = exports.getDefaultSessionDir = exports.releaseLock = exports.acquireLock = exports.addContextFragment = exports.updateSession = exports.deleteSession = exports.saveSession = exports.loadSession = exports.getSessionDir = exports.SESSION_SCHEMA_VERSION = exports.NormalizationError = exports.HandlerTimeoutError = exports.HandlerError = exports.runPlan = exports.runHandler = exports.getNestedValue = exports.evaluateWhen = exports.sortHandlers = exports.resolveHookPlan = exports.splitEnv = exports.resolvePhaseMapping = exports.normalizeEvent = void 0;
4
- exports.HookOutputParseError = exports.serializeResult = exports.serializeEvent = exports.isInHooksProxyContext = exports.readExecutionContext = exports.HookResultBuilder = exports.HookEventBuilder = exports.validateHookEvent = exports.validateHookResult = exports.parseHookEvent = exports.parseHookResult = exports.createHooksEngine = exports.detectHarness = exports.runNormalized = void 0;
3
+ exports.createAdapter = exports.buildTraceRecord = exports.generateTraceId = exports.createTraceWriter = exports.TraceWriter = exports.createDiagnosticLogger = exports.DiagnosticLogger = exports.propagateEnv = exports.adaptOutput = exports.cleanupTempFiles = exports.getTrackedTempFiles = exports.escapeShellValue = exports.generateTempEnvFile = exports.materializeExecContext = exports.buildExportEnvFileLines = exports.recordDegradedField = exports.recordConflict = exports.createDiagnostics = exports.MergeConflictError = exports.mergeResults = exports.getSessionMarkerPath = exports.cleanupSessionMarker = exports.readSessionMarker = exports.writeSessionMarker = exports.findHarnessAncestorPid = exports.isSessionPidMarkerEnabled = exports.SESSION_PID_MARKER_ENV_VAR = exports.getSessionFilePath = exports.getDefaultSessionDir = exports.releaseLock = exports.acquireLock = exports.addContextFragment = exports.updateSession = exports.deleteSession = exports.saveSession = exports.loadSession = exports.getSessionDir = exports.SESSION_SCHEMA_VERSION = exports.NormalizationError = exports.HandlerTimeoutError = exports.HandlerError = exports.runPlan = exports.runHandler = exports.getNestedValue = exports.evaluateWhen = exports.sortHandlers = exports.resolveHookPlan = exports.splitEnv = exports.resolvePhaseMapping = exports.normalizeEvent = void 0;
4
+ exports.HookOutputParseError = exports.serializeResult = exports.serializeEvent = exports.isInHooksProxyContext = exports.readExecutionContext = exports.HookResultBuilder = exports.HookEventBuilder = exports.validateHookEvent = exports.validateHookResult = exports.parseHookEvent = exports.parseHookResult = exports.createHooksEngine = exports.detectHarness = exports.runNormalized = exports.registerHandler = void 0;
5
5
  // Normalizer
6
6
  var normalizer_1 = require("./normalizer");
7
7
  Object.defineProperty(exports, "normalizeEvent", { enumerable: true, get: function () { return normalizer_1.normalizeEvent; } });
@@ -45,6 +45,7 @@ Object.defineProperty(exports, "recordConflict", { enumerable: true, get: functi
45
45
  Object.defineProperty(exports, "recordDegradedField", { enumerable: true, get: function () { return merge_engine_1.recordDegradedField; } });
46
46
  // Propagation
47
47
  var propagation_1 = require("./propagation");
48
+ Object.defineProperty(exports, "buildExportEnvFileLines", { enumerable: true, get: function () { return propagation_1.buildExportEnvFileLines; } });
48
49
  Object.defineProperty(exports, "materializeExecContext", { enumerable: true, get: function () { return propagation_1.materializeExecContext; } });
49
50
  Object.defineProperty(exports, "generateTempEnvFile", { enumerable: true, get: function () { return propagation_1.generateTempEnvFile; } });
50
51
  Object.defineProperty(exports, "escapeShellValue", { enumerable: true, get: function () { return propagation_1.escapeShellValue; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAQA,aAAa;AACb,2CAasB;AAZpB,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA;AACnB,sGAAA,QAAQ,OAAA;AACR,6GAAA,eAAe,OAAA;AACf,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,qGAAA,OAAO,OAAA;AACP,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,gHAAA,kBAAkB,OAAA;AAIpB,gBAAgB;AAChB,iDAmByB;AAlBvB,uHAAA,sBAAsB,OAAA;AACtB,8GAAA,aAAa,OAAA;AACb,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AACX,8GAAA,aAAa,OAAA;AACb,8GAAA,aAAa,OAAA;AACb,mHAAA,kBAAkB,OAAA;AAClB,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AACX,qHAAA,oBAAoB,OAAA;AACpB,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,0HAAA,yBAAyB,OAAA;AACzB,uHAAA,sBAAsB,OAAA;AACtB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,qHAAA,oBAAoB,OAAA;AACpB,qHAAA,oBAAoB,OAAA;AAGtB,eAAe;AACf,+CAYwB;AAXtB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAOlB,iHAAA,iBAAiB,OAAA;AACjB,8GAAA,cAAc,OAAA;AACd,mHAAA,mBAAmB,OAAA;AAGrB,cAAc;AACd,6CAQuB;AAPrB,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,0GAAA,WAAW,OAAA;AACX,2GAAA,YAAY,OAAA;AAYd,cAAc;AACd,6CAOuB;AANrB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAYlB,MAAM;AACN,6BAIe;AAHb,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,oGAAA,aAAa,OAAA;AAIf,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAGtB,sBAAsB;AACtB,+CAEwB;AADtB,iHAAA,iBAAiB,OAAA;AAYnB,gBAAgB;AAChB,iDAYyB;AAXvB,gHAAA,eAAe,OAAA;AACf,+GAAA,cAAc,OAAA;AACd,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,kHAAA,iBAAiB,OAAA;AACjB,qHAAA,oBAAoB,OAAA;AACpB,sHAAA,qBAAqB,OAAA;AACrB,+GAAA,cAAc,OAAA;AACd,gHAAA,eAAe,OAAA;AACf,qHAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAQA,aAAa;AACb,2CAasB;AAZpB,4GAAA,cAAc,OAAA;AACd,iHAAA,mBAAmB,OAAA;AACnB,sGAAA,QAAQ,OAAA;AACR,6GAAA,eAAe,OAAA;AACf,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,qGAAA,OAAO,OAAA;AACP,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,gHAAA,kBAAkB,OAAA;AAIpB,gBAAgB;AAChB,iDAmByB;AAlBvB,uHAAA,sBAAsB,OAAA;AACtB,8GAAA,aAAa,OAAA;AACb,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AACX,8GAAA,aAAa,OAAA;AACb,8GAAA,aAAa,OAAA;AACb,mHAAA,kBAAkB,OAAA;AAClB,4GAAA,WAAW,OAAA;AACX,4GAAA,WAAW,OAAA;AACX,qHAAA,oBAAoB,OAAA;AACpB,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,0HAAA,yBAAyB,OAAA;AACzB,uHAAA,sBAAsB,OAAA;AACtB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,qHAAA,oBAAoB,OAAA;AACpB,qHAAA,oBAAoB,OAAA;AAGtB,eAAe;AACf,+CAYwB;AAXtB,4GAAA,YAAY,OAAA;AACZ,kHAAA,kBAAkB,OAAA;AAOlB,iHAAA,iBAAiB,OAAA;AACjB,8GAAA,cAAc,OAAA;AACd,mHAAA,mBAAmB,OAAA;AAGrB,cAAc;AACd,6CASuB;AARrB,sHAAA,uBAAuB,OAAA;AACvB,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,0GAAA,WAAW,OAAA;AACX,2GAAA,YAAY,OAAA;AAYd,cAAc;AACd,6CAOuB;AANrB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,0GAAA,WAAW,OAAA;AACX,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAYlB,MAAM;AACN,6BAIe;AAHb,oGAAA,aAAa,OAAA;AACb,sGAAA,eAAe,OAAA;AACf,oGAAA,aAAa,OAAA;AAIf,YAAY;AACZ,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AAGtB,sBAAsB;AACtB,+CAEwB;AADtB,iHAAA,iBAAiB,OAAA;AAYnB,gBAAgB;AAChB,iDAYyB;AAXvB,gHAAA,eAAe,OAAA;AACf,+GAAA,cAAc,OAAA;AACd,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,kHAAA,iBAAiB,OAAA;AACjB,qHAAA,oBAAoB,OAAA;AACpB,sHAAA,qBAAqB,OAAA;AACrB,+GAAA,cAAc,OAAA;AACd,gHAAA,eAAe,OAAA;AACf,qHAAA,oBAAoB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapt-output.d.ts","sourceRoot":"","sources":["../../src/propagation/adapt-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAWjE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CA0EtE"}
1
+ {"version":3,"file":"adapt-output.d.ts","sourceRoot":"","sources":["../../src/propagation/adapt-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAWjE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CA2EtE"}
@@ -18,8 +18,10 @@ function adaptOutput(options) {
18
18
  const { mergedResult, capabilities } = options;
19
19
  const output = {};
20
20
  const degradedFields = [];
21
- // Always include base fields
22
- output['decision'] = mergedResult.decision;
21
+ // Only include decision when it carries a meaningful value
22
+ if (mergedResult.decision !== 'noop' && mergedResult.decision !== 'continue') {
23
+ output['decision'] = mergedResult.decision;
24
+ }
23
25
  if (mergedResult.reason) {
24
26
  output['reason'] = mergedResult.reason;
25
27
  }
@@ -43,7 +45,9 @@ function adaptOutput(options) {
43
45
  if (mergedResult.systemMessage) {
44
46
  output['systemMessage'] = mergedResult.systemMessage;
45
47
  }
46
- output['continueSession'] = mergedResult.continueSession;
48
+ if (mergedResult.continueSession) {
49
+ output['continue'] = mergedResult.continueSession;
50
+ }
47
51
  if (mergedResult.stopReason) {
48
52
  output['stopReason'] = mergedResult.stopReason;
49
53
  }
@@ -66,12 +70,9 @@ function adaptOutput(options) {
66
70
  }
67
71
  }
68
72
  // Decision/blocking support check
69
- if (mergedResult.decision !== 'noop') {
70
- if (!CAPABILITY_FIELD_MAP['decision'](capabilities)) {
71
- degradedFields.push('decision');
72
- // Downgrade to noop when adapter doesn't support blocking
73
- output['decision'] = 'noop';
74
- }
73
+ if (output['decision'] && !CAPABILITY_FIELD_MAP['decision'](capabilities)) {
74
+ degradedFields.push('decision');
75
+ delete output['decision'];
75
76
  }
76
77
  return { output, degradedFields };
77
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adapt-output.js","sourceRoot":"","sources":["../../src/propagation/adapt-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapt-output.js","sourceRoot":"","sources":["../../src/propagation/adapt-output.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,14 @@ export declare function getTrackedTempFiles(): readonly string[];
8
8
  */
9
9
  export declare function cleanupTempFiles(): void;
10
10
  /**
11
- * Generate a temporary env file containing KEY=VALUE export lines.
11
+ * Build shell-safe export lines for an env file consumed via `source`.
12
+ *
13
+ * Exporting is required when the sourcing shell may spawn downstream child
14
+ * processes that need to inherit the persisted values.
15
+ */
16
+ export declare function buildExportEnvFileLines(env: Record<string, string>): string[];
17
+ /**
18
+ * Generate a temporary env file containing exported KEY=VALUE lines.
12
19
  *
13
20
  * @param env - Environment variables to write.
14
21
  * @param dir - Directory for the temp file; defaults to os.tmpdir().
@@ -1 +1 @@
1
- {"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/propagation/env-file.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAaD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQtD"}
1
+ {"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/propagation/env-file.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAaD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,EAAE,CAIV;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQtD"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.getTrackedTempFiles = getTrackedTempFiles;
37
37
  exports.cleanupTempFiles = cleanupTempFiles;
38
+ exports.buildExportEnvFileLines = buildExportEnvFileLines;
38
39
  exports.generateTempEnvFile = generateTempEnvFile;
39
40
  exports.escapeShellValue = escapeShellValue;
40
41
  const fs = __importStar(require("fs"));
@@ -77,7 +78,16 @@ function ensureCleanupRegistered() {
77
78
  // Public API
78
79
  // ---------------------------------------------------------------------------
79
80
  /**
80
- * Generate a temporary env file containing KEY=VALUE export lines.
81
+ * Build shell-safe export lines for an env file consumed via `source`.
82
+ *
83
+ * Exporting is required when the sourcing shell may spawn downstream child
84
+ * processes that need to inherit the persisted values.
85
+ */
86
+ function buildExportEnvFileLines(env) {
87
+ return Object.entries(env).map(([key, value]) => `export ${key}=${escapeShellValue(value)}`);
88
+ }
89
+ /**
90
+ * Generate a temporary env file containing exported KEY=VALUE lines.
81
91
  *
82
92
  * @param env - Environment variables to write.
83
93
  * @param dir - Directory for the temp file; defaults to os.tmpdir().
@@ -89,7 +99,7 @@ async function generateTempEnvFile(env, dir) {
89
99
  await fs.promises.mkdir(targetDir, { recursive: true });
90
100
  const filename = `a5c-env-${process.pid}-${Date.now()}.env`;
91
101
  const filePath = path.join(targetDir, filename);
92
- const lines = Object.entries(env).map(([key, value]) => `export ${key}=${escapeShellValue(value)}`);
102
+ const lines = buildExportEnvFileLines(env);
93
103
  const content = lines.join('\n') + '\n';
94
104
  const tmpPath = `${filePath}.tmp`;
95
105
  await fs.promises.writeFile(tmpPath, content, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/propagation/env-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kDAEC;AAMD,4CASC;AAoBD,kDAwBC;AAOD,4CAQC;AA3FD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,gBAAgB,GAAa,EAAE,CAAC;AACtC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC9B,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,GAA2B,EAC3B,GAAY;IAEZ,uBAAuB,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,WAAW,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CACnC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAExC,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/propagation/env-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kDAEC;AAMD,4CASC;AAmBD,0DAMC;AASD,kDAsBC;AAOD,4CAQC;AAvGD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,gBAAgB,GAAa,EAAE,CAAC;AACtC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC9B,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,GAA2B;IAE3B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAC5B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,GAA2B,EAC3B,GAAY;IAEZ,uBAAuB,EAAE,CAAC;IAE1B,MAAM,SAAS,GAAG,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,WAAW,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAExC,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE5C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { materializeExecContext } from './materialize';
2
- export { generateTempEnvFile, escapeShellValue, getTrackedTempFiles, cleanupTempFiles } from './env-file';
2
+ export { buildExportEnvFileLines, generateTempEnvFile, escapeShellValue, getTrackedTempFiles, cleanupTempFiles, } from './env-file';
3
3
  export { adaptOutput } from './adapt-output';
4
4
  export { propagateEnv } from './propagation-backends';
5
5
  export type { MaterializeOptions, ExecMaterialization, AdaptOutputOptions, AdaptedOutput, PropagationBackend, PropagationOptions, SessionStore, } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/propagation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/propagation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.propagateEnv = exports.adaptOutput = exports.cleanupTempFiles = exports.getTrackedTempFiles = exports.escapeShellValue = exports.generateTempEnvFile = exports.materializeExecContext = void 0;
3
+ exports.propagateEnv = exports.adaptOutput = exports.cleanupTempFiles = exports.getTrackedTempFiles = exports.escapeShellValue = exports.generateTempEnvFile = exports.buildExportEnvFileLines = exports.materializeExecContext = void 0;
4
4
  var materialize_1 = require("./materialize");
5
5
  Object.defineProperty(exports, "materializeExecContext", { enumerable: true, get: function () { return materialize_1.materializeExecContext; } });
6
6
  var env_file_1 = require("./env-file");
7
+ Object.defineProperty(exports, "buildExportEnvFileLines", { enumerable: true, get: function () { return env_file_1.buildExportEnvFileLines; } });
7
8
  Object.defineProperty(exports, "generateTempEnvFile", { enumerable: true, get: function () { return env_file_1.generateTempEnvFile; } });
8
9
  Object.defineProperty(exports, "escapeShellValue", { enumerable: true, get: function () { return env_file_1.escapeShellValue; } });
9
10
  Object.defineProperty(exports, "getTrackedTempFiles", { enumerable: true, get: function () { return env_file_1.getTrackedTempFiles; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/propagation/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAA9C,qHAAA,sBAAsB,OAAA;AAC/B,uCAA0G;AAAjG,+GAAA,mBAAmB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AACrF,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+DAAsD;AAA7C,oHAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/propagation/index.ts"],"names":[],"mappings":";;;AAAA,6CAAuD;AAA9C,qHAAA,sBAAsB,OAAA;AAC/B,uCAMoB;AALlB,mHAAA,uBAAuB,OAAA;AACvB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAElB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+DAAsD;AAA7C,oHAAA,YAAY,OAAA"}
@@ -3,7 +3,7 @@ import type { PropagationBackend, PropagationOptions } from './types';
3
3
  * Propagate environment variables via the specified backend mode.
4
4
  *
5
5
  * Four propagation modes per spec section 14.2:
6
- * - Mode A: native_env_file -- append KEY=VALUE to a harness-provided env file path
6
+ * - Mode A: native_env_file -- append exported KEY=VALUE lines to a harness-provided env file path
7
7
  * - Mode B: runtime_hook -- return env vars for the runtime to inject (no-op write; env passed back)
8
8
  * - Mode C: wrapper_only -- materialize env file for subprocess wrapping
9
9
  * - Mode D: none -- session-store only, no downstream injection
@@ -40,7 +40,7 @@ const env_file_1 = require("./env-file");
40
40
  * Propagate environment variables via the specified backend mode.
41
41
  *
42
42
  * Four propagation modes per spec section 14.2:
43
- * - Mode A: native_env_file -- append KEY=VALUE to a harness-provided env file path
43
+ * - Mode A: native_env_file -- append exported KEY=VALUE lines to a harness-provided env file path
44
44
  * - Mode B: runtime_hook -- return env vars for the runtime to inject (no-op write; env passed back)
45
45
  * - Mode C: wrapper_only -- materialize env file for subprocess wrapping
46
46
  * - Mode D: none -- session-store only, no downstream injection
@@ -67,13 +67,13 @@ async function propagateEnv(backend, env, options = {}) {
67
67
  }
68
68
  }
69
69
  /**
70
- * Mode A: Append KEY=VALUE lines to a harness-provided env file.
70
+ * Mode A: Append exported KEY=VALUE lines to a harness-provided env file.
71
71
  */
72
72
  async function propagateNativeEnvFile(env, options) {
73
73
  if (!options.nativeEnvFilePath) {
74
74
  throw new Error('native_env_file backend requires nativeEnvFilePath in options');
75
75
  }
76
- const lines = Object.entries(env).map(([key, value]) => `${key}=${(0, env_file_1.escapeShellValue)(value)}`);
76
+ const lines = (0, env_file_1.buildExportEnvFileLines)(env);
77
77
  const content = '\n' + lines.join('\n') + '\n';
78
78
  await fs.promises.appendFile(options.nativeEnvFilePath, content, 'utf-8');
79
79
  }
@@ -96,5 +96,4 @@ async function propagateNone(env, options) {
96
96
  }
97
97
  }
98
98
  }
99
- // escapeShellValue is now imported from ./env-file to avoid duplication.
100
99
  //# sourceMappingURL=propagation-backends.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"propagation-backends.js","sourceRoot":"","sources":["../../src/propagation/propagation-backends.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCAwBC;AArCD,uCAAyB;AAEzB,yCAAmE;AAEnE;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAChC,OAA2B,EAC3B,GAA2B,EAC3B,UAA8B,EAAE;IAEhC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAiB;YACpB,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,cAAc;YACjB,wEAAwE;YACxE,iEAAiE;YACjE,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,MAAM;YACT,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,OAAO,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,GAA2B,EAC3B,OAA2B;IAE3B,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CACnC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAA,2BAAgB,EAAC,KAAK,CAAC,EAAE,CACtD,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE/C,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAA2B,EAC3B,OAA2B;IAE3B,MAAM,IAAA,8BAAmB,EAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,GAA2B,EAC3B,OAA2B;IAE3B,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,EAAE,CAAC;YACnD,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;YAC9B,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED,yEAAyE"}
1
+ {"version":3,"file":"propagation-backends.js","sourceRoot":"","sources":["../../src/propagation/propagation-backends.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,oCAwBC;AArCD,uCAAyB;AAEzB,yCAA0E;AAE1E;;;;;;;;GAQG;AACI,KAAK,UAAU,YAAY,CAChC,OAA2B,EAC3B,GAA2B,EAC3B,UAA8B,EAAE;IAEhC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,iBAAiB;YACpB,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,cAAc;YACjB,wEAAwE;YACxE,iEAAiE;YACjE,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,MAAM;YACT,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,OAAO,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,GAA2B,EAC3B,OAA2B;IAE3B,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,kCAAuB,EAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE/C,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAA2B,EAC3B,OAA2B;IAE3B,MAAM,IAAA,8BAAmB,EAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,GAA2B,EAC3B,OAA2B;IAE3B,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,EAAE,CAAC;YACnD,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;YAC9B,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@a5c-ai/hooks-mux-core",
3
- "version": "5.0.1-staging.fcac7259",
3
+ "version": "5.0.1-staging.ff407b73",
4
4
  "description": "Canonical schemas, types, session store, and merge engine 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",
@@ -11,11 +11,16 @@
11
11
  },
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/a5c-ai/babysitter.git",
14
+ "url": "git+https://github.com/a5c-ai/babysitter.git",
15
15
  "directory": "packages/hooks-mux/core"
16
16
  },
17
+ "homepage": "https://github.com/a5c-ai/babysitter/tree/main/packages/hooks-mux/core#readme",
18
+ "bugs": {
19
+ "url": "https://github.com/a5c-ai/babysitter/issues"
20
+ },
17
21
  "files": [
18
- "dist"
22
+ "dist",
23
+ "README.md"
19
24
  ],
20
25
  "scripts": {
21
26
  "build": "tsc -p tsconfig.json",
@@ -24,7 +29,9 @@
24
29
  "test": "vitest run",
25
30
  "test:watch": "vitest"
26
31
  },
27
- "dependencies": {},
32
+ "dependencies": {
33
+ "@a5c-ai/agent-catalog": "5.0.1-staging.ff407b73"
34
+ },
28
35
  "devDependencies": {
29
36
  "typescript": "^5.7.0",
30
37
  "vitest": "^3.0.0",