@yanlinglabs/winter-agent-sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +43 -0
- package/dist/brand.d.ts +113 -0
- package/dist/errors.d.ts +42 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.js +2191 -0
- package/dist/options.d.ts +252 -0
- package/dist/paths/home.d.ts +48 -0
- package/dist/paths/keys.d.ts +6 -0
- package/dist/paths/project-key.d.ts +1 -0
- package/dist/permissions/types.d.ts +272 -0
- package/dist/protocol/codec.d.ts +10 -0
- package/dist/protocol/config.d.ts +535 -0
- package/dist/protocol/frames.d.ts +598 -0
- package/dist/query.d.ts +81 -0
- package/dist/sessions.d.ts +50 -0
- package/dist/settings/model-slots.d.ts +33 -0
- package/dist/settings/resolve.d.ts +79 -0
- package/dist/settings/sources.d.ts +29 -0
- package/dist/settings/types.d.ts +291 -0
- package/dist/store/fork-session.d.ts +19 -0
- package/dist/store/leases.d.ts +15 -0
- package/dist/store/session-store.d.ts +111 -0
- package/dist/transport.d.ts +26 -0
- package/package.json +51 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 yanlingLabs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# `@yanlinglabs/winter-agent-sdk`
|
|
2
|
+
|
|
3
|
+
Winter's wrapper: `query()`, the `Options` surface, the session-management API, settings resolution,
|
|
4
|
+
the transcript store and the brand profile. This is the package a host installs by name; it spawns
|
|
5
|
+
the compiled `winter` runtime and speaks to it over the pinned protocol.
|
|
6
|
+
|
|
7
|
+
This is the DROP-IN surface Winter's conformance corpus measures against
|
|
8
|
+
`@anthropic-ai/claude-agent-sdk` — same option names, same message shapes, same ordering.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
This package is published to **two registries**, and which one you want depends on who you are.
|
|
13
|
+
|
|
14
|
+
### From public npm (anyone)
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm install @yanlinglabs/winter-agent-sdk
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Nothing else is needed: the `@yanlinglabs` scope is public on npm.
|
|
21
|
+
|
|
22
|
+
### From GitHub Packages (the `yanlingLabs` org)
|
|
23
|
+
|
|
24
|
+
GitHub Packages needs the scope pointed at it and an authenticated read, even for a public package.
|
|
25
|
+
In your project's `.npmrc`:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
@yanlinglabs:registry=https://npm.pkg.github.com
|
|
29
|
+
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
…with `GITHUB_TOKEN` in the environment — a personal access token carrying `read:packages`, never a
|
|
33
|
+
literal in the file. Then `npm install @yanlinglabs/winter-agent-sdk` as usual.
|
|
34
|
+
|
|
35
|
+
**The published packages contain COMPILED OUTPUT ONLY.** Each tarball ships `dist/` — the bundled
|
|
36
|
+
JavaScript a consumer imports and the `.d.ts` declarations their type-checker reads — plus its data
|
|
37
|
+
files, `README.md` and `LICENSE`. It does **not** ship `src/`: the TypeScript sources live at
|
|
38
|
+
<https://github.com/yanlingLabs/winter-agent-sdk>, which is where to read them, file an issue, or send
|
|
39
|
+
a patch.
|
|
40
|
+
|
|
41
|
+
## License
|
|
42
|
+
|
|
43
|
+
MIT — see [`LICENSE`](./LICENSE), which ships in the published tarball.
|
package/dist/brand.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every Winter-owned name, as one swappable object.
|
|
3
|
+
*
|
|
4
|
+
* Field-by-field authority is WS-01 §2 (§2.1 packages/executables, §2.2 homes, §2.3 ephemeral
|
|
5
|
+
* state, §2.4 project-local files, §2.5 environment variables) and §3 (product layer).
|
|
6
|
+
*/
|
|
7
|
+
export interface BrandProfile {
|
|
8
|
+
/** Display name. "Winter" — user-facing prose, never a path segment. */
|
|
9
|
+
productName: string;
|
|
10
|
+
/**
|
|
11
|
+
* The honest product token in `User-Agent` and vendor identity headers (WS-13 §5, D21).
|
|
12
|
+
*
|
|
13
|
+
* A reuser presents its OWN identity here: that is the whole point of the field. What it may
|
|
14
|
+
* never be is somebody else's — the catalog's identity-header validator and the
|
|
15
|
+
* `codexOriginator` rule below are the two enforcement points for that.
|
|
16
|
+
*/
|
|
17
|
+
packageName: string;
|
|
18
|
+
/** `~/<homeDirName>` (WS-01 §2.2). The dev profile appends `-dev`. */
|
|
19
|
+
homeDirName: string;
|
|
20
|
+
/** `<cwd>/<projectDirName>/` (WS-01 §2.4) — settings, agents, skills, commands, plans, rules. */
|
|
21
|
+
projectDirName: string;
|
|
22
|
+
/** Project + user instructions file (WS-01 §2.4): Claude's `CLAUDE.md` convention, Winter's token. */
|
|
23
|
+
instructionsFile: string;
|
|
24
|
+
/** Env-name prefix (WS-01 §2.5). `envName(brand, "HOME")` is the only way product code spells one. */
|
|
25
|
+
envPrefix: string;
|
|
26
|
+
/** macOS Keychain service every `{ kind: "keychain" }` credential ref resolves under (WS-01 §3). */
|
|
27
|
+
keychainService: string;
|
|
28
|
+
/** The standing in-process MCP server's name: `mcp__<mcpServerName>__<tool>` (WS-09 §1.3). */
|
|
29
|
+
mcpServerName: string;
|
|
30
|
+
/** The independently-authored system-prompt preset (WS-11); `preset: "claude_code"` maps onto it. */
|
|
31
|
+
presetName: string;
|
|
32
|
+
/** argv0 / process label for supervised spawns (WS-01 §2.1, D12). */
|
|
33
|
+
processLabel: string;
|
|
34
|
+
/**
|
|
35
|
+
* The codex backend's `originator`. DELIBERATELY NON-FIRST-PARTY and validated as such: sending a
|
|
36
|
+
* vendor's own originator would present Winter as that vendor's client, which is the exact thing
|
|
37
|
+
* WS-01 §3 and the standing hard rule forbid. A reuser must supply their own token, not borrow one.
|
|
38
|
+
*/
|
|
39
|
+
codexOriginator: string;
|
|
40
|
+
/** `/private/tmp/<tempRootName>-<uid>/` — the shared per-user temp root (WS-01 §2.3, D18). */
|
|
41
|
+
tempRootName: string;
|
|
42
|
+
/**
|
|
43
|
+
* Winter's own plugin manifest directory (WS-11). NOT `.claude-plugin`: that is the directory the
|
|
44
|
+
* OFFICIAL runtime reads, a Claude-mirroring literal this profile deliberately does not own.
|
|
45
|
+
*/
|
|
46
|
+
pluginManifestDir: string;
|
|
47
|
+
/**
|
|
48
|
+
* P7a fix wave (item 7; Lane A review M-4): WHERE TO REACH THE RUNNING PRODUCT.
|
|
49
|
+
*
|
|
50
|
+
* A vendor identity field is a `<name>:<version>:<contact>` triple, not a name (AI Horde's
|
|
51
|
+
* `Client-Agent` is the shipped example, and its whole purpose is that an operator whose workers
|
|
52
|
+
* are misbehaving can contact whoever wrote the client). `packageName` already moved with the
|
|
53
|
+
* brand; the CONTACT did not, so a rebranded product's honest-identity header still pointed a
|
|
54
|
+
* vendor at Winter's issue tracker for traffic Winter never sent. That is not a cosmetic leak —
|
|
55
|
+
* it is a false statement in the one field whose entire purpose is being true.
|
|
56
|
+
*
|
|
57
|
+
* A URL rather than an email: it is what the shipped row already carried, it is the form vendors
|
|
58
|
+
* document, and it is the one contact shape that discloses nothing personal. Validated as an
|
|
59
|
+
* `https:` URL — `http:` is refused because this value is published to third parties, and any
|
|
60
|
+
* other scheme (`mailto:`, `javascript:`, a bare token) is refused because a header value pasted
|
|
61
|
+
* from a profile is exactly where a surprising scheme should not be accepted.
|
|
62
|
+
*/
|
|
63
|
+
contactUrl: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The token grammar for the NAME-shaped fields: lowercase, digit- and hyphen-continued, 1..32 chars.
|
|
67
|
+
*
|
|
68
|
+
* Applied to `packageName`, `mcpServerName`, `processLabel`, `tempRootName` and `codexOriginator`
|
|
69
|
+
* and to NOTHING ELSE. `presetName` ("winter_code") has an underscore and is deliberately outside
|
|
70
|
+
* it; the dot-prefixed dirs, the instructions file, the env prefix and the keychain service each
|
|
71
|
+
* have their own shape below. A uniform rule over every field would refuse WINTER_BRAND itself.
|
|
72
|
+
*/
|
|
73
|
+
export declare const BRAND_TOKEN_RE: RegExp;
|
|
74
|
+
/**
|
|
75
|
+
* Originator values that name a FIRST PARTY. `codexOriginator` may never be one of these.
|
|
76
|
+
*
|
|
77
|
+
* The list is exported so its refusals are testable by iteration rather than by spot check: adding
|
|
78
|
+
* a name here automatically adds a test for it (brand.test.ts loops this array).
|
|
79
|
+
*/
|
|
80
|
+
export declare const FIRST_PARTY_ORIGINATORS: readonly string[];
|
|
81
|
+
/** WS-01 §2/§3's own values, byte for byte. Frozen: `resolveBrand()` hands back copies, never this. */
|
|
82
|
+
export declare const WINTER_BRAND: Readonly<BrandProfile>;
|
|
83
|
+
/** A refusal carries WHICH field and WHY, never a bare boolean — the host has to fix something. */
|
|
84
|
+
export type BrandValidation = {
|
|
85
|
+
ok: true;
|
|
86
|
+
brand: BrandProfile;
|
|
87
|
+
} | {
|
|
88
|
+
ok: false;
|
|
89
|
+
reason: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Fold a host's partial profile onto Winter's defaults and validate the result.
|
|
93
|
+
*
|
|
94
|
+
* ABSENT AND EXPLICITLY-`undefined` ARE THE SAME THING (`exactOptionalPropertyTypes` is on
|
|
95
|
+
* repo-wide, so a caller spreading an options object can legitimately produce either): both mean
|
|
96
|
+
* "keep Winter's value for this field".
|
|
97
|
+
*
|
|
98
|
+
* Returns a RESULT rather than throwing. The one caller that must turn a refusal into a throw is
|
|
99
|
+
* `query()`, which does so as its own typed `InvalidBrandError` at construction time alongside its
|
|
100
|
+
* other option validation; everything else (tests, a host previewing a profile) wants the value.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveBrand(partial?: Partial<BrandProfile>): BrandValidation;
|
|
103
|
+
/**
|
|
104
|
+
* The ONLY way product code spells a brand-derived environment variable.
|
|
105
|
+
*
|
|
106
|
+
* `envName(brand, "HOME")` -> `"WINTER_HOME"`. Takes a `Pick` so a caller holding one field (a
|
|
107
|
+
* partially-threaded config, a test) can call it without constructing a whole profile.
|
|
108
|
+
*/
|
|
109
|
+
export declare function envName(brand: Pick<BrandProfile, "envPrefix">, suffix: string): string;
|
|
110
|
+
/** `mcpToolName(brand, "send_message")` -> `"mcp__winter__send_message"` (WS-09 §1.3's canonical form). */
|
|
111
|
+
export declare function mcpToolName(brand: Pick<BrandProfile, "mcpServerName">, tool: string): string;
|
|
112
|
+
/** `userAgent(brand, "0.0.1")` -> `"winter-agent-sdk/0.0.1"` — the honest identity on every wire. */
|
|
113
|
+
export declare function userAgent(brand: Pick<BrandProfile, "packageName">, version: string): string;
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { SdkMessage } from "./protocol/frames.js";
|
|
2
|
+
export declare class WinterSDKError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class CLIConnectionError extends WinterSDKError {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class ProcessError extends WinterSDKError {
|
|
9
|
+
code?: number | null | undefined;
|
|
10
|
+
signal?: string | null | undefined;
|
|
11
|
+
constructor(message: string, code?: number | null | undefined, signal?: string | null | undefined);
|
|
12
|
+
}
|
|
13
|
+
export declare class ResultError extends ProcessError {
|
|
14
|
+
result: Extract<SdkMessage, {
|
|
15
|
+
type: "result";
|
|
16
|
+
}>;
|
|
17
|
+
constructor(result: Extract<SdkMessage, {
|
|
18
|
+
type: "result";
|
|
19
|
+
}>);
|
|
20
|
+
}
|
|
21
|
+
export declare class ProtocolDecodeError extends WinterSDKError {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
24
|
+
export declare class AbortError extends WinterSDKError {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
export declare class SessionNotFoundError extends WinterSDKError {
|
|
28
|
+
readonly reason: "not_found" | "ambiguous";
|
|
29
|
+
constructor(reason: "not_found" | "ambiguous", message: string);
|
|
30
|
+
}
|
|
31
|
+
export declare class InvalidBrandError extends WinterSDKError {
|
|
32
|
+
readonly reason: string;
|
|
33
|
+
readonly code = "invalid_brand";
|
|
34
|
+
constructor(reason: string);
|
|
35
|
+
}
|
|
36
|
+
export declare class WinterRpcError extends WinterSDKError {
|
|
37
|
+
readonly code: string;
|
|
38
|
+
constructor(code: string, message: string);
|
|
39
|
+
}
|
|
40
|
+
export declare class WinterRpcTimeoutError extends WinterRpcError {
|
|
41
|
+
constructor(subtype: string, timeoutMs: number);
|
|
42
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export { query } from "./query.js";
|
|
2
|
+
export type { Query, SdkMessage } from "./query.js";
|
|
3
|
+
export type { QueryInternal, ControlRequestHandler, ControlRequestHandlerResult } from "./query.js";
|
|
4
|
+
export type { Options } from "./options.js";
|
|
5
|
+
export { SYSTEM_PROMPT_DYNAMIC_BOUNDARY, DEFAULT_CONTEXT_WINDOW_TOKENS, DEFAULT_COMPACTION_THRESHOLD, DEFAULT_PLANS_DIRECTORY, DEFAULT_OUTPUT_STYLE } from "./options.js";
|
|
6
|
+
export { DEFAULT_PROVIDER_STALL_TIMEOUT_MS, DEFAULT_KEYCHAIN_SERVICE } from "./options.js";
|
|
7
|
+
export type { ProviderSelection, ProviderConnectionConfig, CredentialRef, ThinkingConfig, EffortLevel, AutoClassifierConfig, AdvisorConfig, ModelInfo, AccountInfo } from "./protocol/config.js";
|
|
8
|
+
export type { SlotView, ActiveSlotSet, ModelFamilyListing, ModelSlotSetting, ModelRowServable } from "./protocol/config.js";
|
|
9
|
+
export type { SdkPluginConfig, SystemPromptOption, SystemPromptPreset, OutputFormat, JsonSchemaOutputFormat, SkillsOption, RewindFilesResult, RewindFilesRequest, InitPluginInfo } from "./protocol/config.js";
|
|
10
|
+
export type { McpServerConfig, McpSdkServerConfigWithInstance, McpServerToolPolicy, McpStdioServerConfig, McpHttpServerConfig, McpSSEServerConfig, McpSdkServerConfig, AgentDefinition } from "./options.js";
|
|
11
|
+
export { isWinterMcpServerInstance } from "./options.js";
|
|
12
|
+
export type { WinterMcpServerInstance } from "./options.js";
|
|
13
|
+
export type { WireMcpToolDefinition } from "./protocol/config.js";
|
|
14
|
+
export { WINTER_BRAND, BRAND_TOKEN_RE, FIRST_PARTY_ORIGINATORS, resolveBrand, envName, mcpToolName, userAgent } from "./brand.js";
|
|
15
|
+
export type { BrandProfile, BrandValidation } from "./brand.js";
|
|
16
|
+
export { WinterSDKError, CLIConnectionError, ProcessError, ResultError, ProtocolDecodeError, AbortError, SessionNotFoundError, WinterRpcError, WinterRpcTimeoutError, InvalidBrandError, } from "./errors.js";
|
|
17
|
+
export { resolveRuntimeExecutable, defaultSpawn } from "./transport.js";
|
|
18
|
+
export type { SpawnedRuntimeProcess, SpawnRuntimeOptions, SpawnClaudeCodeProcess } from "./transport.js";
|
|
19
|
+
export type { RuntimeConfig, RuntimeHooksConfig, RuntimeHookMatcherGroup, SandboxSettingsConfig } from "./protocol/config.js";
|
|
20
|
+
export type { McpServerConfigForProcessTransport, AgentMcpServerSpec, RuntimeAgentDefinition } from "./protocol/config.js";
|
|
21
|
+
export { encodeFrame, decodeFrame, splitFrames, ProtocolError } from "./protocol/codec.js";
|
|
22
|
+
export { PROTOCOL_VERSION } from "./protocol/frames.js";
|
|
23
|
+
export type { ProtocolVersion, WinterFrame, SdkMessage as ProtocolSdkMessage, InitFrame, UserFrame, DataFrame, ControlRequestFrame, ControlResponseFrame, UnknownFrame, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKPermissionDenial, SDKTaskStartedMessage, SDKTaskNotificationMessage, SDKTaskUpdatedMessage, SDKTaskProgressMessage, SDKBackgroundTasksChangedMessage, SDKLocalCommandOutputMessage, BackgroundTaskMessage, SDKCompactBoundaryMessage, WireContentBlock, WireStreamEvent, WireStreamEventDelta, SDKPartialAssistantMessage, SDKAssistantMessageError, SDKAPIRetryMessage, SDKRateLimitEvent, SDKRateLimitInfo, SDKAuthStatusMessage, SDKThinkingTokensMessage, SDKModelRefusalFallbackMessage, SDKModelRefusalNoFallbackMessage, SDKReasoningSummaryMessage, SDKModelSwitchMessage, SDKContinuityWarningMessage, } from "./protocol/frames.js";
|
|
24
|
+
export { resolveWinterHome, resolveKeychainServiceForProfile, isUnset } from "./paths/home.js";
|
|
25
|
+
export { transcriptProjectKey } from "./paths/project-key.js";
|
|
26
|
+
export { compatibilityKeys } from "./paths/keys.js";
|
|
27
|
+
export type { CompatibilityKeys } from "./paths/keys.js";
|
|
28
|
+
export { WinterCompatibilitySessionStore, WinterStoreError, WinterStoreLeaseError, DIALECT_RECORD_ENTRY_TYPE, PROVIDER_STATE_FILE_SUFFIX, } from "./store/session-store.js";
|
|
29
|
+
export type { SessionKey, SessionStoreEntry, SessionSummaryEntry, SessionStore } from "./store/session-store.js";
|
|
30
|
+
export { forkSessionByKey } from "./store/fork-session.js";
|
|
31
|
+
export { listSessions, getSessionInfo, getSessionMessages, renameSession, tagSession, deleteSession, forkSession, listSubagents, getSubagentMessages, } from "./sessions.js";
|
|
32
|
+
export { resolveSettings, filterEscalatingDefaultMode, resolveSettingsDetailed, applyWorkspaceTrust, } from "./settings/resolve.js";
|
|
33
|
+
export { settingsPathFor, loadSettingsFile } from "./settings/sources.js";
|
|
34
|
+
export { validateModelSlots } from "./settings/model-slots.js";
|
|
35
|
+
export type { ModelSlotsLookup, ModelSlotsValidation } from "./settings/model-slots.js";
|
|
36
|
+
export type { SettingsPathOptions, LoadedSettingsFile } from "./settings/sources.js";
|
|
37
|
+
export { SETTING_SOURCES, OVERLAY_NEVER_KEYS, ESCALATING_PERMISSION_MODES, PROJECT_PERMISSIVE_KEYS, providerSettingsFrom, } from "./settings/types.js";
|
|
38
|
+
export type { SettingSource, ResolvedSettingSource, PolicySettingsOrigin, Settings, SettingsPermissionsBlock, SettingsHooksConfig, SettingsHookMatcherGroup, SettingsHookHandler, ProvenanceEntry, ResolvedSettings, ResolvedSettingsSourceEntry, ResolveSettingsOptions, DetailedResolvedSettings, DetailedSettingsSourceEntry, ResolveSettingsDetailedOptions, } from "./settings/types.js";
|
|
39
|
+
export type { WorkspaceTrustFilterOptions } from "./settings/resolve.js";
|
|
40
|
+
export type { PermissionMode, PermissionBehavior, PermissionRuleValue } from "./permissions/types.js";
|
|
41
|
+
export type { PermissionUpdate, PermissionUpdateDestination, RuleSource } from "./permissions/types.js";
|
|
42
|
+
export type { CanUseTool, PermissionResult, PermissionDecisionClassification, PermissionRequestPayload } from "./permissions/types.js";
|
|
43
|
+
export { HOOK_EVENTS } from "./permissions/types.js";
|
|
44
|
+
export type { HookEvent, HookEventName, HookSource, HookPermissionDecision, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, StopHookInput, SessionStartHookInput, SessionEndHookInput, NotificationHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, GenericHookInput, HookInput, AsyncHookJSONOutput, SyncHookJSONOutput, HookJSONOutput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, StopHookSpecificOutput, SessionStartHookSpecificOutput, NotificationHookSpecificOutput, PermissionRequestHookSpecificOutput, PermissionDeniedHookSpecificOutput, GenericHookSpecificOutput, HookSpecificOutput, HookCallback, HookCallbackMatcher, HookInvocationPayload, } from "./permissions/types.js";
|