@a5c-ai/hooks-mux-adapter-cursor 5.0.1-staging.ff2c19f9 → 5.0.1-staging.ffad3b46492e
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 +29 -0
- package/dist/adapter.d.ts +1 -11
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +18 -17
- package/dist/adapter.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mappings.d.ts +0 -9
- package/dist/mappings.d.ts.map +1 -1
- package/dist/mappings.js +40 -53
- package/dist/mappings.js.map +1 -1
- package/dist/normalizer.d.ts +3 -1
- package/dist/normalizer.d.ts.map +1 -1
- package/dist/normalizer.js +9 -2
- package/dist/normalizer.js.map +1 -1
- package/package.json +10 -5
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @a5c-ai/hooks-mux-adapter-cursor
|
|
2
|
+
|
|
3
|
+
Cursor harness adapter for hooks-mux.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @a5c-ai/hooks-mux-adapter-cursor @a5c-ai/hooks-mux-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This package ships the built adapter runtime in `dist/` and this package README for npm publish-surface auditing.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import {
|
|
17
|
+
createAdapter,
|
|
18
|
+
normalizeCursorEvent,
|
|
19
|
+
getActiveProfile,
|
|
20
|
+
} from "@a5c-ai/hooks-mux-adapter-cursor";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
The package exposes Cursor-specific normalization, capability profiles, phase mappings, rendering helpers, and session-resolution utilities for the hooks-mux execution pipeline.
|
|
24
|
+
|
|
25
|
+
See [`packages/hooks-mux/README.md`](../README.md) for the workspace overview and `packages/hooks-mux/docs/adapter-integration-guide.md` for end-to-end integration guidance.
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
MIT © a5c-ai
|
package/dist/adapter.d.ts
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
1
|
import type { AdapterCapabilities } from '@a5c-ai/hooks-mux-core';
|
|
2
|
-
|
|
3
|
-
* Creates the Cursor adapter capability descriptor.
|
|
4
|
-
*
|
|
5
|
-
* Cursor is a shell-hook harness with a now-stable hook surface.
|
|
6
|
-
* Session IDs are derived (not natively provided), blocking
|
|
7
|
-
* is supported on preToolUse and stop, and env propagation
|
|
8
|
-
* is wrapper-based only.
|
|
9
|
-
*
|
|
10
|
-
* Spec section 17.5.
|
|
11
|
-
*/
|
|
12
|
-
export declare function createAdapter(): AdapterCapabilities;
|
|
2
|
+
export declare function createAdapter(name?: string): AdapterCapabilities;
|
|
13
3
|
//# sourceMappingURL=adapter.d.ts.map
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAalE,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAA6B,GAAG,mBAAmB,CAoBtF"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createAdapter = createAdapter;
|
|
4
|
+
const agent_catalog_1 = require("@a5c-ai/agent-catalog");
|
|
4
5
|
/**
|
|
5
6
|
* Creates the Cursor adapter capability descriptor.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* is supported on preToolUse and stop, and env propagation
|
|
10
|
-
* is wrapper-based only.
|
|
8
|
+
* Reads capability data from the Atlas graph via the agent-catalog.
|
|
9
|
+
* Falls back to hardcoded defaults if the catalog is unavailable.
|
|
11
10
|
*
|
|
12
11
|
* Spec section 17.5.
|
|
13
12
|
*/
|
|
14
|
-
|
|
13
|
+
const DEFAULT_ADAPTER_NAME = 'cursor';
|
|
14
|
+
function createAdapter(name = DEFAULT_ADAPTER_NAME) {
|
|
15
|
+
const target = (0, agent_catalog_1.getPluginTargetDescriptor)(name);
|
|
15
16
|
return {
|
|
16
|
-
name
|
|
17
|
-
family: 'shell-hook',
|
|
18
|
-
sessionIdQuality: 'derived',
|
|
19
|
-
supportsOrderedFanout: true,
|
|
20
|
-
supportsNativeAdditionalContext: false,
|
|
21
|
-
supportsBlock: true,
|
|
22
|
-
supportsAsk: false,
|
|
23
|
-
supportsToolInputMutation: false,
|
|
24
|
-
supportsToolResultMutation: false,
|
|
25
|
-
supportsPersistedEnv: false,
|
|
26
|
-
envPersistenceMode: 'wrapper_only',
|
|
27
|
-
toolInterceptionScope: 'all',
|
|
17
|
+
name,
|
|
18
|
+
family: target?.hooksMuxFamily ?? 'shell-hook',
|
|
19
|
+
sessionIdQuality: target?.sessionIdQuality ?? 'derived',
|
|
20
|
+
supportsOrderedFanout: target?.supportsOrderedFanout ?? true,
|
|
21
|
+
supportsNativeAdditionalContext: target?.supportsNativeAdditionalContext ?? false,
|
|
22
|
+
supportsBlock: target?.supportsBlock ?? true,
|
|
23
|
+
supportsAsk: target?.supportsAsk ?? false,
|
|
24
|
+
supportsToolInputMutation: target?.supportsToolInputMutation ?? false,
|
|
25
|
+
supportsToolResultMutation: target?.supportsToolResultMutation ?? false,
|
|
26
|
+
supportsPersistedEnv: target?.supportsPersistedEnv ?? false,
|
|
27
|
+
envPersistenceMode: target?.envPersistenceMode ?? 'wrapper_only',
|
|
28
|
+
toolInterceptionScope: target?.toolInterceptionScope ?? 'all',
|
|
28
29
|
notes: [
|
|
29
30
|
'Hook surface is stable as of Cursor 3.0',
|
|
30
31
|
'IDE and CLI share the same hook surface',
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;AAaA,sCAoBC;AAhCD,yDAAkE;AAElE;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAEtC,SAAgB,aAAa,CAAC,OAAe,oBAAoB;IAC/D,MAAM,MAAM,GAAG,IAAA,yCAAyB,EAAC,IAAI,CAAC,CAAC;IAC/C,OAAO;QACL,IAAI;QACJ,MAAM,EAAG,MAAM,EAAE,cAAgD,IAAI,YAAY;QACjF,gBAAgB,EAAG,MAAM,EAAE,gBAA4D,IAAI,SAAS;QACpG,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,IAAI,IAAI;QAC5D,+BAA+B,EAAE,MAAM,EAAE,+BAA+B,IAAI,KAAK;QACjF,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,IAAI;QAC5C,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,KAAK;QACzC,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,IAAI,KAAK;QACrE,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,IAAI,KAAK;QACvE,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,KAAK;QAC3D,kBAAkB,EAAG,MAAM,EAAE,kBAAgE,IAAI,cAAc;QAC/G,qBAAqB,EAAG,MAAM,EAAE,qBAAsE,IAAI,KAAK;QAC/G,KAAK,EAAE;YACL,yCAAyC;YACzC,yCAAyC;SAC1C;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { createAdapter } from './adapter';
|
|
|
2
2
|
export { getActiveProfile, setActiveProfile, resetProfile, isEventReliable, isEventKnown, getEventDiagnostics, DEFAULT_PROFILE, CLI_PERMISSIVE_PROFILE, } from './capability-profile';
|
|
3
3
|
export type { CursorCapabilityProfile } from './capability-profile';
|
|
4
4
|
export { CURSOR_PHASE_MAPPINGS, findMapping, getSupportedPhases } from './mappings';
|
|
5
|
-
export { normalizeCursorEvent, parseStdin, ADAPTER_NAME, } from './normalizer';
|
|
5
|
+
export { normalizeCursorEvent, parseStdin, setAdapterName, ADAPTER_NAME, } from './normalizer';
|
|
6
6
|
export type { CursorStdinBase, CursorSessionStartPayload, CursorStopPayload, CursorPreToolUsePayload, CursorPostToolUsePayload, } from './normalizer';
|
|
7
7
|
export { renderCursorOutput, isFieldSupportedForEvent } from './renderer';
|
|
8
8
|
export { resolveSessionId, deriveSessionId, isValidSessionId } from './session-resolver';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGpF,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGpF,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isValidSessionId = exports.deriveSessionId = exports.resolveSessionId = exports.isFieldSupportedForEvent = exports.renderCursorOutput = exports.ADAPTER_NAME = exports.parseStdin = exports.normalizeCursorEvent = exports.getSupportedPhases = exports.findMapping = exports.CURSOR_PHASE_MAPPINGS = exports.CLI_PERMISSIVE_PROFILE = exports.DEFAULT_PROFILE = exports.getEventDiagnostics = exports.isEventKnown = exports.isEventReliable = exports.resetProfile = exports.setActiveProfile = exports.getActiveProfile = exports.createAdapter = void 0;
|
|
3
|
+
exports.isValidSessionId = exports.deriveSessionId = exports.resolveSessionId = exports.isFieldSupportedForEvent = exports.renderCursorOutput = exports.ADAPTER_NAME = exports.setAdapterName = exports.parseStdin = exports.normalizeCursorEvent = exports.getSupportedPhases = exports.findMapping = exports.CURSOR_PHASE_MAPPINGS = exports.CLI_PERMISSIVE_PROFILE = exports.DEFAULT_PROFILE = exports.getEventDiagnostics = exports.isEventKnown = exports.isEventReliable = exports.resetProfile = exports.setActiveProfile = exports.getActiveProfile = exports.createAdapter = void 0;
|
|
4
4
|
// Adapter capabilities
|
|
5
5
|
var adapter_1 = require("./adapter");
|
|
6
6
|
Object.defineProperty(exports, "createAdapter", { enumerable: true, get: function () { return adapter_1.createAdapter; } });
|
|
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "getSupportedPhases", { enumerable: true, get: fu
|
|
|
23
23
|
var normalizer_1 = require("./normalizer");
|
|
24
24
|
Object.defineProperty(exports, "normalizeCursorEvent", { enumerable: true, get: function () { return normalizer_1.normalizeCursorEvent; } });
|
|
25
25
|
Object.defineProperty(exports, "parseStdin", { enumerable: true, get: function () { return normalizer_1.parseStdin; } });
|
|
26
|
+
Object.defineProperty(exports, "setAdapterName", { enumerable: true, get: function () { return normalizer_1.setAdapterName; } });
|
|
26
27
|
Object.defineProperty(exports, "ADAPTER_NAME", { enumerable: true, get: function () { return normalizer_1.ADAPTER_NAME; } });
|
|
27
28
|
// Renderer
|
|
28
29
|
var renderer_1 = require("./renderer");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,qBAAqB;AACrB,2DAS8B;AAR5B,sHAAA,gBAAgB,OAAA;AAChB,sHAAA,gBAAgB,OAAA;AAChB,kHAAA,YAAY,OAAA;AACZ,qHAAA,eAAe,OAAA;AACf,kHAAA,YAAY,OAAA;AACZ,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,4HAAA,sBAAsB,OAAA;AAIxB,iBAAiB;AACjB,uCAAoF;AAA3E,iHAAA,qBAAqB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAE/D,aAAa;AACb,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uBAAuB;AACvB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,qBAAqB;AACrB,2DAS8B;AAR5B,sHAAA,gBAAgB,OAAA;AAChB,sHAAA,gBAAgB,OAAA;AAChB,kHAAA,YAAY,OAAA;AACZ,qHAAA,eAAe,OAAA;AACf,kHAAA,YAAY,OAAA;AACZ,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,4HAAA,sBAAsB,OAAA;AAIxB,iBAAiB;AACjB,uCAAoF;AAA3E,iHAAA,qBAAqB,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAE/D,aAAa;AACb,2CAKsB;AAJpB,kHAAA,oBAAoB,OAAA;AACpB,wGAAA,UAAU,OAAA;AACV,4GAAA,cAAc,OAAA;AACd,0GAAA,YAAY,OAAA;AAUd,WAAW;AACX,uCAA0E;AAAjE,8GAAA,kBAAkB,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAErD,mBAAmB;AACnB,uDAAyF;AAAhF,oHAAA,gBAAgB,OAAA;AAAE,mHAAA,eAAe,OAAA;AAAE,oHAAA,gBAAgB,OAAA"}
|
package/dist/mappings.d.ts
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import type { PhaseMapping } from '@a5c-ai/hooks-mux-core';
|
|
2
|
-
/**
|
|
3
|
-
* Cursor native event to canonical phase mapping table.
|
|
4
|
-
*
|
|
5
|
-
* Cursor's hook surface is now documented and stable for both IDE and CLI.
|
|
6
|
-
* All listed events (sessionStart, sessionEnd, preToolUse, postToolUse, stop)
|
|
7
|
-
* are native hooks per Cursor's official docs.
|
|
8
|
-
*
|
|
9
|
-
* Spec section 17.5.
|
|
10
|
-
*/
|
|
11
2
|
export declare const CURSOR_PHASE_MAPPINGS: PhaseMapping[];
|
|
12
3
|
/**
|
|
13
4
|
* Quick lookup from native event name to phase mapping.
|
package/dist/mappings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAkD3D,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAAuB,CAAC;AAExE;;GAEG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C"}
|
package/dist/mappings.js
CHANGED
|
@@ -3,65 +3,52 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CURSOR_PHASE_MAPPINGS = void 0;
|
|
4
4
|
exports.findMapping = findMapping;
|
|
5
5
|
exports.getSupportedPhases = getSupportedPhases;
|
|
6
|
+
const agent_catalog_1 = require("@a5c-ai/agent-catalog");
|
|
6
7
|
/**
|
|
7
8
|
* Cursor native event to canonical phase mapping table.
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Phase mappings are built from the Atlas graph HookMapping records
|
|
11
|
+
* via the agent-catalog. Falls back to hardcoded defaults if the
|
|
12
|
+
* catalog is unavailable.
|
|
12
13
|
*
|
|
13
14
|
* Spec section 17.5.
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
mutationCapability: false,
|
|
52
|
-
scope: 'tool',
|
|
53
|
-
notes: 'Documented and stable. Fires before tool execution. Can block (deny).',
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
canonicalPhase: 'tool.after',
|
|
57
|
-
nativeHook: 'postToolUse',
|
|
58
|
-
supportLevel: 'native',
|
|
59
|
-
blockCapability: false,
|
|
60
|
-
mutationCapability: false,
|
|
61
|
-
scope: 'tool',
|
|
62
|
-
notes: 'Documented and stable. Observer-only post-tool hook.',
|
|
63
|
-
},
|
|
64
|
-
];
|
|
16
|
+
const SUPPORT_LEVEL_MAP = {
|
|
17
|
+
supported: 'native',
|
|
18
|
+
native: 'native',
|
|
19
|
+
lossy: 'lossy',
|
|
20
|
+
emulated: 'emulated',
|
|
21
|
+
unsupported: 'unsupported',
|
|
22
|
+
};
|
|
23
|
+
function hookMappingToPhaseMapping(mapping) {
|
|
24
|
+
if (!mapping.canonicalPhase)
|
|
25
|
+
return null;
|
|
26
|
+
return {
|
|
27
|
+
canonicalPhase: mapping.canonicalPhase,
|
|
28
|
+
nativeHook: mapping.nativeName,
|
|
29
|
+
supportLevel: SUPPORT_LEVEL_MAP[mapping.supportLevel] ?? 'native',
|
|
30
|
+
blockCapability: mapping.blockCapability ?? false,
|
|
31
|
+
mutationCapability: mapping.mutationCapability ?? false,
|
|
32
|
+
scope: (mapping.scope ?? 'session'),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function buildFromCatalog() {
|
|
36
|
+
const mappings = (0, agent_catalog_1.listHookMappingsByAdapterFamily)('cursor');
|
|
37
|
+
if (mappings.length === 0) {
|
|
38
|
+
throw new Error('hooks-mux adapter-cursor: catalog unavailable or returned no mappings for family "cursor"');
|
|
39
|
+
}
|
|
40
|
+
const phaseMappings = mappings
|
|
41
|
+
.map(hookMappingToPhaseMapping)
|
|
42
|
+
.filter((m) => m !== null);
|
|
43
|
+
const seen = new Set();
|
|
44
|
+
return phaseMappings.filter((m) => {
|
|
45
|
+
if (seen.has(m.nativeHook))
|
|
46
|
+
return false;
|
|
47
|
+
seen.add(m.nativeHook);
|
|
48
|
+
return true;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
exports.CURSOR_PHASE_MAPPINGS = buildFromCatalog();
|
|
65
52
|
/**
|
|
66
53
|
* Quick lookup from native event name to phase mapping.
|
|
67
54
|
*/
|
package/dist/mappings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappings.js","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mappings.js","sourceRoot":"","sources":["../src/mappings.ts"],"names":[],"mappings":";;;AAuDA,kCAEC;AAKD,gDAEC;AA/DD,yDAAwE;AAGxE;;;;;;;;GAQG;AAEH,MAAM,iBAAiB,GAAiD;IACtE,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,SAAS,yBAAyB,CAAC,OAA8B;IAC/D,IAAI,CAAC,OAAO,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAgD;QACxE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,QAAQ;QACjE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;QACjD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,KAAK;QACvD,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,CAA0B;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,IAAA,+CAA+B,EAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC/G,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ;SAC3B,GAAG,CAAC,yBAAyB,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAEY,QAAA,qBAAqB,GAAmB,gBAAgB,EAAE,CAAC;AAExE;;GAEG;AACH,SAAgB,WAAW,CAAC,eAAuB;IACjD,OAAO,6BAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,6BAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC5D,CAAC"}
|
package/dist/normalizer.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type UnifiedHookEvent } from '@a5c-ai/hooks-mux-core';
|
|
2
|
-
/** The adapter identifier used in all normalized events. */
|
|
2
|
+
/** The default adapter identifier used in all normalized events. */
|
|
3
3
|
export declare const ADAPTER_NAME = "cursor";
|
|
4
|
+
/** Override the adapter name used in normalized events. */
|
|
5
|
+
export declare function setAdapterName(name: string): void;
|
|
4
6
|
/**
|
|
5
7
|
* Common fields that may be present on Cursor hook stdin payloads.
|
|
6
8
|
* Cursor's stdin format is not fully documented; fields may be
|
package/dist/normalizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAyB,MAAM,wBAAwB,CAAC;AAItG,
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,gBAAgB,EAAyB,MAAM,wBAAwB,CAAC;AAItG,oEAAoE;AACpE,eAAO,MAAM,YAAY,WAAW,CAAC;AAKrC,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,oCAAoC;AACpC,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,4BAA4B;AAC5B,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBhE;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,EACrB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAC/B,gBAAgB,CAoDlB"}
|
package/dist/normalizer.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ADAPTER_NAME = void 0;
|
|
4
|
+
exports.setAdapterName = setAdapterName;
|
|
4
5
|
exports.parseStdin = parseStdin;
|
|
5
6
|
exports.normalizeCursorEvent = normalizeCursorEvent;
|
|
6
7
|
const hooks_mux_core_1 = require("@a5c-ai/hooks-mux-core");
|
|
7
8
|
const mappings_1 = require("./mappings");
|
|
8
9
|
const capability_profile_1 = require("./capability-profile");
|
|
9
|
-
/** The adapter identifier used in all normalized events. */
|
|
10
|
+
/** The default adapter identifier used in all normalized events. */
|
|
10
11
|
exports.ADAPTER_NAME = 'cursor';
|
|
12
|
+
/** Mutable adapter name, defaulting to the cursor adapter identity. */
|
|
13
|
+
let _adapterName = 'cursor';
|
|
14
|
+
/** Override the adapter name used in normalized events. */
|
|
15
|
+
function setAdapterName(name) {
|
|
16
|
+
_adapterName = name;
|
|
17
|
+
}
|
|
11
18
|
/**
|
|
12
19
|
* Parse raw stdin input into a typed object.
|
|
13
20
|
* Cursor hooks receive JSON on stdin. If parsing fails, return empty
|
|
@@ -85,7 +92,7 @@ function normalizeCursorEvent(rawEventName, stdinPayload, env = {}) {
|
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
const options = {
|
|
88
|
-
adapter:
|
|
95
|
+
adapter: _adapterName,
|
|
89
96
|
rawEventName,
|
|
90
97
|
stdinPayload: parsed,
|
|
91
98
|
env: enrichedEnv,
|
package/dist/normalizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@a5c-ai/hooks-mux-adapter-cursor",
|
|
3
|
-
"version": "5.0.1-staging.
|
|
3
|
+
"version": "5.0.1-staging.ffad3b46492e",
|
|
4
4
|
"description": "Cursor harness adapter for the hooks-mux system",
|
|
5
|
-
"license": "
|
|
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/adapter-cursor"
|
|
16
16
|
},
|
|
17
|
+
"homepage": "https://github.com/a5c-ai/babysitter/tree/main/packages/hooks-mux/adapter-cursor#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",
|
|
@@ -25,7 +30,7 @@
|
|
|
25
30
|
"test:watch": "vitest"
|
|
26
31
|
},
|
|
27
32
|
"dependencies": {
|
|
28
|
-
"@a5c-ai/hooks-mux-core": "5.0.1-staging.
|
|
33
|
+
"@a5c-ai/hooks-mux-core": "5.0.1-staging.ffad3b46492e"
|
|
29
34
|
},
|
|
30
35
|
"devDependencies": {
|
|
31
36
|
"typescript": "^5.7.0",
|