@canonmsg/agent-sdk 11.2.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -536
- package/dist/chunks/chunk-6VK4UZHJ.js +2806 -0
- package/dist/chunks/chunk-FPQFTTND.js +4899 -0
- package/dist/chunks/chunk-OLJ7H4E2.js +14705 -0
- package/dist/chunks/mls-crypto-NZDNSPAO.js +10 -0
- package/dist/cli.js +198 -0
- package/dist/drivers/claude.d.ts +36 -0
- package/dist/drivers/code.d.ts +18 -0
- package/dist/drivers/codex.d.ts +37 -0
- package/dist/index.d.ts +12 -25
- package/dist/index.js +69 -13
- package/dist/internal/backend-contracts/agentBehaviorPolicy.d.ts +122 -0
- package/dist/internal/backend-contracts/agentDirectory.d.ts +32 -0
- package/dist/internal/backend-contracts/agentOrigin.d.ts +23 -0
- package/dist/internal/backend-contracts/agentSearch.d.ts +17 -0
- package/dist/internal/backend-contracts/api-origins.generated.d.ts +4 -0
- package/dist/internal/backend-contracts/apiErrors.d.ts +1 -0
- package/dist/internal/backend-contracts/artifactActions.d.ts +159 -0
- package/dist/internal/backend-contracts/artifacts.d.ts +386 -0
- package/dist/internal/backend-contracts/communication.d.ts +131 -0
- package/dist/internal/backend-contracts/conversationMembership.d.ts +28 -0
- package/dist/internal/backend-contracts/deliveryObservation.d.ts +23 -0
- package/dist/internal/backend-contracts/diffRedaction.d.ts +6 -0
- package/dist/internal/backend-contracts/endpoint-unread.d.ts +4 -0
- package/dist/internal/backend-contracts/endpoint.d.ts +103 -0
- package/dist/internal/backend-contracts/endpointContentPolicy.d.ts +37 -0
- package/dist/internal/backend-contracts/environment.d.ts +20 -0
- package/dist/internal/backend-contracts/externalInbound.d.ts +24 -0
- package/dist/internal/backend-contracts/firestoreValues.d.ts +9 -0
- package/dist/internal/backend-contracts/index.d.ts +48 -0
- package/dist/internal/backend-contracts/media-url.d.ts +6 -0
- package/dist/internal/backend-contracts/media.d.ts +51 -0
- package/dist/internal/backend-contracts/mediaDelivery.d.ts +46 -0
- package/dist/internal/backend-contracts/mediaTransferProtocol.d.ts +17 -0
- package/dist/internal/backend-contracts/membershipChange.d.ts +21 -0
- package/dist/internal/backend-contracts/message.d.ts +86 -0
- package/dist/internal/backend-contracts/messageText.d.ts +6 -0
- package/dist/internal/backend-contracts/mlsDevApplication.d.ts +73 -0
- package/dist/internal/backend-contracts/mlsDevCredential.d.ts +75 -0
- package/dist/internal/backend-contracts/mlsDevCredentialReconciliation.d.ts +45 -0
- package/dist/internal/backend-contracts/mlsDevDeviceCustody.d.ts +51 -0
- package/dist/internal/backend-contracts/mlsDevEnrollment.d.ts +74 -0
- package/dist/internal/backend-contracts/mlsDevGroup.d.ts +197 -0
- package/dist/internal/backend-contracts/mlsDevGroupFeed.d.ts +47 -0
- package/dist/internal/backend-contracts/mlsDevKeyPackage.d.ts +42 -0
- package/dist/internal/backend-contracts/mlsDevKeyPackages.d.ts +55 -0
- package/dist/internal/backend-contracts/moderation.d.ts +7 -0
- package/dist/internal/backend-contracts/plaintextProcessors.d.ts +63 -0
- package/dist/internal/backend-contracts/preparedContent.d.ts +54 -0
- package/dist/internal/backend-contracts/replyAuthority.d.ts +14 -0
- package/dist/internal/backend-contracts/runtimeCardFields.d.ts +66 -0
- package/dist/internal/backend-contracts/runtimeCardStorage.d.ts +3 -0
- package/dist/internal/backend-contracts/runtimeDescriptor.d.ts +88 -0
- package/dist/internal/backend-contracts/selfContext.d.ts +9 -0
- package/dist/internal/backend-contracts/turnProtocol.d.ts +43 -0
- package/dist/internal/backend-contracts/verbContract.d.ts +848 -0
- package/dist/internal/backend-contracts/verbSchemas.d.ts +1707 -0
- package/dist/internal/backend-contracts/verbWire.d.ts +493 -0
- package/dist/internal/backend-contracts/webAuth.d.ts +8 -0
- package/dist/internal/backend-contracts/workSessions.d.ts +205 -0
- package/dist/internal/core/agent-profiles.d.ts +69 -0
- package/dist/internal/core/agent-resolver.d.ts +49 -0
- package/dist/internal/core/agent-session.d.ts +12 -0
- package/dist/internal/core/approval-format.d.ts +26 -0
- package/dist/internal/core/approval-manager.d.ts +43 -0
- package/dist/internal/core/approval-types.d.ts +74 -0
- package/dist/internal/core/artifacts.d.ts +262 -0
- package/dist/internal/core/attached-native-session.d.ts +174 -0
- package/dist/internal/core/attached-session-file-store.d.ts +3 -0
- package/dist/internal/core/base-url.d.ts +1 -0
- package/dist/internal/core/cli-metadata.d.ts +13 -0
- package/dist/internal/core/client.d.ts +486 -0
- package/dist/internal/core/completed-output-journal.d.ts +39 -0
- package/dist/internal/core/constants.d.ts +4 -0
- package/dist/internal/core/control-poller.d.ts +221 -0
- package/dist/internal/core/endpoint-client.d.ts +43 -0
- package/dist/internal/core/exclusive-json-file-store.d.ts +7 -0
- package/dist/internal/core/execution-environment-mode.d.ts +8 -0
- package/dist/internal/core/execution-environment.d.ts +55 -0
- package/dist/internal/core/gifs.d.ts +35 -0
- package/dist/internal/core/group-context.d.ts +25 -0
- package/dist/internal/core/host-runtime.d.ts +257 -0
- package/dist/internal/core/inbound-frame.d.ts +64 -0
- package/dist/internal/core/index.d.ts +107 -0
- package/dist/internal/core/local-runtime-catalog.d.ts +131 -0
- package/dist/internal/core/message-format.d.ts +13 -0
- package/dist/internal/core/native-session-interaction.d.ts +44 -0
- package/dist/internal/core/node-media.d.ts +6 -0
- package/dist/internal/core/policy.d.ts +2 -0
- package/dist/internal/core/provenance.d.ts +31 -0
- package/dist/internal/core/registration-cli.d.ts +40 -0
- package/dist/internal/core/registration-profile.d.ts +10 -0
- package/dist/internal/core/registration-session.d.ts +55 -0
- package/dist/internal/core/registration.d.ts +21 -0
- package/dist/internal/core/retry.d.ts +122 -0
- package/dist/internal/core/rtdb-rest.d.ts +145 -0
- package/dist/internal/core/runtime-cards.d.ts +331 -0
- package/dist/internal/core/runtime-descriptor.d.ts +75 -0
- package/dist/internal/core/runtime-endpoints.d.ts +26 -0
- package/dist/internal/core/runtime-heartbeat.d.ts +29 -0
- package/dist/internal/core/runtime-presentation.d.ts +35 -0
- package/dist/internal/core/runtime-request-manager.d.ts +284 -0
- package/dist/internal/core/runtime-state-publisher.d.ts +42 -0
- package/dist/internal/core/self-context.d.ts +61 -0
- package/dist/internal/core/silent-turn.d.ts +86 -0
- package/dist/internal/core/stream.d.ts +77 -0
- package/dist/internal/core/turn-output-controller.d.ts +69 -0
- package/dist/internal/core/turn-protocol.d.ts +33 -0
- package/dist/internal/core/turn-verbosity.d.ts +97 -0
- package/dist/internal/core/types.d.ts +1075 -0
- package/dist/internal/core/typing-status-publisher.d.ts +14 -0
- package/dist/internal/core/unified-diff.d.ts +35 -0
- package/dist/internal/core/work-session-provider.d.ts +29 -0
- package/dist/internal/core/workspace-discovery.d.ts +17 -0
- package/dist/internal/endpoint/artifact-images.d.ts +60 -0
- package/dist/internal/endpoint/artifact-reducer.d.ts +35 -0
- package/dist/internal/endpoint/artifact-views.d.ts +113 -0
- package/dist/internal/endpoint/artifacts.d.ts +75 -0
- package/dist/internal/endpoint/delivery.d.ts +47 -0
- package/dist/internal/endpoint/engine.d.ts +219 -0
- package/dist/internal/endpoint/ephemeral.d.ts +8 -0
- package/dist/internal/endpoint/events.d.ts +32 -0
- package/dist/internal/endpoint/external-inbound.d.ts +36 -0
- package/dist/internal/endpoint/handoff.d.ts +50 -0
- package/dist/internal/endpoint/history.d.ts +22 -0
- package/dist/internal/endpoint/image-generation-errors.d.ts +2 -0
- package/dist/internal/endpoint/inbound.d.ts +29 -0
- package/dist/internal/endpoint/index.d.ts +32 -0
- package/dist/internal/endpoint/media.d.ts +172 -0
- package/dist/internal/endpoint/migration.d.ts +50 -0
- package/dist/internal/endpoint/mls-crypto.d.ts +25 -0
- package/dist/internal/endpoint/mls-dev-client.d.ts +44 -0
- package/dist/internal/endpoint/mls-dev-device.d.ts +67 -0
- package/dist/internal/endpoint/mls-dev-groups.d.ts +114 -0
- package/dist/internal/endpoint/mls-dev-key-package-service.d.ts +33 -0
- package/dist/internal/endpoint/mls-dev-key-packages.d.ts +42 -0
- package/dist/internal/endpoint/mls-dev-transport.d.ts +37 -0
- package/dist/internal/endpoint/node-mls-custody-protocol.d.ts +24 -0
- package/dist/internal/endpoint/node-mls-custody.d.ts +15 -0
- package/dist/internal/endpoint/node.d.ts +7 -0
- package/dist/internal/endpoint/observe-query.d.ts +17 -0
- package/dist/internal/endpoint/portable-node-mls-custody.d.ts +23 -0
- package/dist/internal/endpoint/queue.d.ts +22 -0
- package/dist/internal/endpoint/recovery.d.ts +27 -0
- package/dist/internal/endpoint/retention.d.ts +7 -0
- package/dist/internal/endpoint/store.d.ts +22 -0
- package/dist/internal/endpoint/sync.d.ts +33 -0
- package/dist/internal/endpoint/transient-publisher.d.ts +8 -0
- package/dist/internal/endpoint/transport.d.ts +58 -0
- package/dist/media.d.ts +1 -1
- package/dist/media.js +42 -541
- package/dist/runner/runner.d.ts +37 -0
- package/dist/runner/types.d.ts +168 -0
- package/package.json +18 -5
- package/dist/attached-session.d.ts +0 -58
- package/dist/attached-session.js +0 -638
- package/dist/bounded-file-read.d.ts +0 -14
- package/dist/bounded-file-read.js +0 -34
- package/dist/canon-agent.d.ts +0 -238
- package/dist/canon-agent.js +0 -2534
- package/dist/debouncer.d.ts +0 -18
- package/dist/debouncer.js +0 -133
- package/dist/inbound-handoff.d.ts +0 -6
- package/dist/inbound-handoff.js +0 -17
- package/dist/managed-session-host.d.ts +0 -27
- package/dist/managed-session-host.js +0 -195
- package/dist/managed-session-setup.d.ts +0 -99
- package/dist/managed-session-setup.js +0 -234
- package/dist/realtime.d.ts +0 -62
- package/dist/realtime.js +0 -193
- package/dist/runtime-card.d.ts +0 -48
- package/dist/runtime-card.js +0 -64
- package/dist/session-manager.d.ts +0 -77
- package/dist/session-manager.js +0 -285
- package/dist/turn-streaming-request.d.ts +0 -17
- package/dist/turn-streaming-request.js +0 -22
- package/dist/turn-verbosity-option.d.ts +0 -33
- package/dist/turn-verbosity-option.js +0 -23
- package/dist/types.d.ts +0 -387
- package/dist/types.js +0 -1
- package/dist/work-session-coordination.d.ts +0 -21
- package/dist/work-session-coordination.js +0 -53
- package/dist/work-session-host.d.ts +0 -31
- package/dist/work-session-host.js +0 -617
- package/dist/work-session-interactions.d.ts +0 -12
- package/dist/work-session-interactions.js +0 -173
- package/dist/work-session-state.d.ts +0 -36
- package/dist/work-session-state.js +0 -62
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { StreamingStatus, TurnOutputBlock, TurnOutputBlockKind, TurnOutputBlockStatus } from './types.js';
|
|
2
|
+
export type TurnOutputMode = 'delta' | 'block' | 'snapshot' | 'status';
|
|
3
|
+
export interface TurnOutputSnapshot {
|
|
4
|
+
turnId: string;
|
|
5
|
+
messageId: string;
|
|
6
|
+
text: string;
|
|
7
|
+
status: StreamingStatus;
|
|
8
|
+
blocks?: TurnOutputBlock[];
|
|
9
|
+
}
|
|
10
|
+
export interface TurnOutputBlockInput {
|
|
11
|
+
id: string;
|
|
12
|
+
kind: TurnOutputBlockKind;
|
|
13
|
+
status?: TurnOutputBlockStatus;
|
|
14
|
+
sequence?: number;
|
|
15
|
+
title?: string;
|
|
16
|
+
text?: string;
|
|
17
|
+
summary?: string;
|
|
18
|
+
detail?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface BuildBoundedTurnTrailOptions {
|
|
21
|
+
maxBlocks?: number;
|
|
22
|
+
maxMetadataBytes?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface TurnOutputControllerOptions {
|
|
25
|
+
turnId: string;
|
|
26
|
+
mode?: TurnOutputMode;
|
|
27
|
+
throttleMs?: number;
|
|
28
|
+
blockSeparator?: string;
|
|
29
|
+
writeSnapshot: (snapshot: TurnOutputSnapshot) => void | Promise<void>;
|
|
30
|
+
clearSnapshot: () => void | Promise<void>;
|
|
31
|
+
schedule?: typeof setTimeout;
|
|
32
|
+
cancel?: typeof clearTimeout;
|
|
33
|
+
}
|
|
34
|
+
export interface TurnOutputController {
|
|
35
|
+
readonly turnId: string;
|
|
36
|
+
readonly mode: TurnOutputMode;
|
|
37
|
+
getText(): string;
|
|
38
|
+
getStatus(): StreamingStatus;
|
|
39
|
+
getBlocks(): TurnOutputBlock[];
|
|
40
|
+
getFinalTrail(): TurnOutputBlock[];
|
|
41
|
+
startThinking(text?: string): Promise<void>;
|
|
42
|
+
startStreaming(text?: string): Promise<void>;
|
|
43
|
+
appendDelta(delta: string): void;
|
|
44
|
+
appendBlock(block: string): void;
|
|
45
|
+
appendTextSegmentDelta(id: string, delta: string, patch?: Partial<Omit<TurnOutputBlockInput, 'id' | 'kind' | 'sequence' | 'text'>>): void;
|
|
46
|
+
replaceTextSegmentSnapshot(id: string, text: string, patch?: Partial<Omit<TurnOutputBlockInput, 'id' | 'kind' | 'sequence' | 'text'>>): void;
|
|
47
|
+
replaceSnapshot(text: string, status?: StreamingStatus): Promise<void>;
|
|
48
|
+
setStatus(status: StreamingStatus, text?: string): Promise<void>;
|
|
49
|
+
addBlock(block: TurnOutputBlockInput): Promise<TurnOutputBlock>;
|
|
50
|
+
updateBlock(id: string, patch: Partial<Omit<TurnOutputBlockInput, 'id' | 'sequence'>>): Promise<TurnOutputBlock | null>;
|
|
51
|
+
completeBlock(id: string, patch?: Partial<Omit<TurnOutputBlockInput, 'id' | 'sequence' | 'status'>>): Promise<TurnOutputBlock | null>;
|
|
52
|
+
failBlock(id: string, patch?: Partial<Omit<TurnOutputBlockInput, 'id' | 'sequence' | 'status'>>): Promise<TurnOutputBlock | null>;
|
|
53
|
+
flush(status?: StreamingStatus): Promise<void>;
|
|
54
|
+
waitingInput(): Promise<void>;
|
|
55
|
+
interrupt(): Promise<void>;
|
|
56
|
+
clear(): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Deliberate silence: blank the node (text '' and an EXPLICIT empty blocks
|
|
59
|
+
* array) and then delete it, so onStreamingCleared sees empty content and
|
|
60
|
+
* skips the salvage fallback. The empty array is load-bearing: merge writers
|
|
61
|
+
* (POST /streaming, OpenClaw PATCH) leave stale blocks behind when the key
|
|
62
|
+
* is absent, and the trigger then synthesizes salvage text from block titles.
|
|
63
|
+
*/
|
|
64
|
+
blankAndClear(): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
export declare const DEFAULT_TURN_TRAIL_MAX_BLOCKS = 20;
|
|
67
|
+
export declare const DEFAULT_TURN_TRAIL_METADATA_BUDGET_BYTES = 2500;
|
|
68
|
+
export declare function buildBoundedTurnTrail(blocks: readonly TurnOutputBlock[], options?: BuildBoundedTurnTrailOptions): TurnOutputBlock[];
|
|
69
|
+
export declare function createTurnOutputController(options: TurnOutputControllerOptions): TurnOutputController;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DeliveryIntent, TurnLifecycleState } from '../backend-contracts/index.js';
|
|
2
|
+
export { ACTIVE_TURN_STALE_THRESHOLD_MS, WAITING_INPUT_STALE_THRESHOLD_MS, getTurnStateStaleThresholdMs, isTurnOpen, isTurnStateStale, normalizeTurnMetadata, resolveTurnMessageSemantics, shouldPromoteConversationMessage, shouldTriggerAgentTurn, } from '../backend-contracts/index.js';
|
|
3
|
+
export type { DeliveryIntent, InboundDisposition, TriggerDecision, TurnLifecycleState, TurnMessageSemantics, TurnMetadata, } from '../backend-contracts/index.js';
|
|
4
|
+
export interface RuntimeCapabilities {
|
|
5
|
+
supportsInterrupt: boolean;
|
|
6
|
+
supportsInputInterrupt: boolean;
|
|
7
|
+
supportsQueue: boolean;
|
|
8
|
+
supportsInterleave: boolean;
|
|
9
|
+
supportsRequiresAction: boolean;
|
|
10
|
+
supportsNonFinalPermanentMessages: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const FINAL_MESSAGE_HANDOFF_MS = 750;
|
|
13
|
+
export interface TurnState {
|
|
14
|
+
turnId?: string | null;
|
|
15
|
+
state: TurnLifecycleState;
|
|
16
|
+
queueDepth: number;
|
|
17
|
+
currentSpeakerId?: string | null;
|
|
18
|
+
lastAcceptedIntent?: DeliveryIntent | null;
|
|
19
|
+
activeMessageIds?: string[];
|
|
20
|
+
capabilities?: RuntimeCapabilities;
|
|
21
|
+
openedAt?: number;
|
|
22
|
+
turnUpdatedAt?: number | null;
|
|
23
|
+
updatedAt?: number;
|
|
24
|
+
completedAt?: number | null;
|
|
25
|
+
}
|
|
26
|
+
export declare const DEFAULT_RUNTIME_CAPABILITIES: RuntimeCapabilities;
|
|
27
|
+
/** The one optional proactive communication capability a runtime may expose. */
|
|
28
|
+
export interface HostAdmissionActionCapabilities {
|
|
29
|
+
communicate: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare const HOST_ADMISSION_ACTION_CAPABILITIES: HostAdmissionActionCapabilities;
|
|
32
|
+
export declare const HOST_ADMISSION_ACTIONS_DISABLED: HostAdmissionActionCapabilities;
|
|
33
|
+
export declare function normalizeTurnState(value: unknown): TurnState | null;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turn verbosity — how much of a turn's middle the reader sees.
|
|
3
|
+
*
|
|
4
|
+
* `quiet` = the thinking indicator and the final message only: no `/streaming`
|
|
5
|
+
* narration and no runtime-generated per-tool-call step output. Emission the
|
|
6
|
+
* DEVELOPER asks for explicitly is not narration and survives — owner ruling
|
|
7
|
+
* D1: `replyProgress(text, { durable: true })` keeps its durable send, and only
|
|
8
|
+
* the implicit `/streaming` half is gated. Interaction requests and their
|
|
9
|
+
* `control` outcome receipts are real interactions, not steps, and are
|
|
10
|
+
* untouched in both modes; the duplicate trail rows that summarize them go with
|
|
11
|
+
* the trail (D4).
|
|
12
|
+
*
|
|
13
|
+
* Owner ruling 5, 2026-07-31 (docs/history/group-behavior-2026-08-01.md): configured
|
|
14
|
+
* by the AGENT DEVELOPER per host/SDK, never by Canon and never per
|
|
15
|
+
* conversation by users. ONE resolver so five integrations cannot disagree.
|
|
16
|
+
*
|
|
17
|
+
* This lives in @canonmsg/core rather than @canonmsg/backend-contracts because
|
|
18
|
+
* quiet mode has no server participant: it is emission control at the agent
|
|
19
|
+
* side. Nothing on the server reads it, no verb carries it, and clients need
|
|
20
|
+
* no change — they simply have nothing to render.
|
|
21
|
+
*
|
|
22
|
+
* Notes for the runtimes that consume this (the guards are per-integration):
|
|
23
|
+
* - Suppress by CALL SITE, never by `turnSemantics === 'progress'` (D5): the
|
|
24
|
+
* leading parts of a chunked final carry that semantic and are answer body.
|
|
25
|
+
* - `TurnOutputController`'s `mode: 'status'` silences the `/streaming` writes
|
|
26
|
+
* but does NOT suppress the trail — blocks still accumulate in memory and
|
|
27
|
+
* `getFinalTrail()` still returns them. Gate the trail separately, with
|
|
28
|
+
* `shouldPublishTurnTrail`, at every site that attaches it to a final.
|
|
29
|
+
* - A quiet turn still clears `/streaming` at turn open (a surviving node from
|
|
30
|
+
* an earlier turn would otherwise strand a stale bubble), still writes
|
|
31
|
+
* `/turn-state`, and still writes `/typing`. Quiet removes the narration,
|
|
32
|
+
* not the fact that the agent is working.
|
|
33
|
+
*/
|
|
34
|
+
/** The resolved mode a turn runs in. Named `turnVerbosity`, never `verbosity` —
|
|
35
|
+
* `runtime.verbosity.set` is a different, user-facing primitive. */
|
|
36
|
+
export type TurnVerbosity = 'verbose' | 'quiet';
|
|
37
|
+
/** What a developer may write in config. `'auto'` === unset. */
|
|
38
|
+
export type TurnVerbosityConfig = TurnVerbosity | 'auto';
|
|
39
|
+
/**
|
|
40
|
+
* Hermes spells a direct chat `'dm'` (adapter.py `_chat_type_from_conversation`);
|
|
41
|
+
* the TS stack spells it `'direct'` and can also be `'unknown'` when the
|
|
42
|
+
* conversation fetch failed (host-runtime.ts HostInboundParticipantContext).
|
|
43
|
+
*/
|
|
44
|
+
export type TurnVerbosityConversationType = 'direct' | 'dm' | 'group' | 'unknown';
|
|
45
|
+
/**
|
|
46
|
+
* The per-conversation-type defaults. `canon-hermes-plugin` will hand-port this
|
|
47
|
+
* map into Python — that package has no dependency on this one — and pin the
|
|
48
|
+
* two sides with a cross-language parity test, the way it already does for the
|
|
49
|
+
* turn-trail budgets and the group guidance wording.
|
|
50
|
+
*/
|
|
51
|
+
export declare const DEFAULT_TURN_VERBOSITY_BY_CONVERSATION_TYPE: {
|
|
52
|
+
readonly direct: "verbose";
|
|
53
|
+
readonly group: "quiet";
|
|
54
|
+
readonly unknown: "verbose";
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Does quiet also drop the margin turnTrail rows on the final?
|
|
58
|
+
* Owner ruling 5's open sub-question, answered YES. Named so a veto is a
|
|
59
|
+
* one-line flip here rather than a five-host revert.
|
|
60
|
+
*/
|
|
61
|
+
export declare const QUIET_SUPPRESSES_TURN_TRAIL: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Folds every spelling a runtime might hand us onto the three keys the
|
|
64
|
+
* defaults map has. Accepts a raw string because the value arrives from
|
|
65
|
+
* provenance, a conversation fetch, or a Python-side payload.
|
|
66
|
+
*/
|
|
67
|
+
export declare function normalizeTurnVerbosityConversationType(value: string | null | undefined): 'direct' | 'group' | 'unknown';
|
|
68
|
+
/**
|
|
69
|
+
* An explicit `'verbose'`/`'quiet'` wins outright; `'auto'`, unset and any
|
|
70
|
+
* unrecognized value fall through to the per-conversation-type default.
|
|
71
|
+
*
|
|
72
|
+
* `configured` goes through `parseTurnVerbosityConfig` on the way in, so a
|
|
73
|
+
* caller handing over a raw config value gets the same answer as one that
|
|
74
|
+
* pre-parsed. That matters because the escape hatch is the whole point of the
|
|
75
|
+
* field: an operator who writes `Verbose` in a group is opting OUT of quiet,
|
|
76
|
+
* and a byte-exact comparison would drop that back onto the group default —
|
|
77
|
+
* i.e. into silence — with nothing anywhere to warn about it.
|
|
78
|
+
*/
|
|
79
|
+
export declare function resolveTurnVerbosity(input: {
|
|
80
|
+
configured?: TurnVerbosityConfig | null;
|
|
81
|
+
conversationType?: TurnVerbosityConversationType | null;
|
|
82
|
+
}): TurnVerbosity;
|
|
83
|
+
/**
|
|
84
|
+
* Shared parser for CLI flags, env vars and config files, so four TS runtimes
|
|
85
|
+
* agree on what a developer typed. Case-insensitive and trimmed.
|
|
86
|
+
*
|
|
87
|
+
* `null` means absent OR unrecognized — `''`, whitespace, `null` and `undefined`
|
|
88
|
+
* land there alongside a genuine typo. A host that warns on `null` must first
|
|
89
|
+
* check the raw input was a non-empty string, or a declared-but-empty
|
|
90
|
+
* `CANON_TURN_VERBOSITY=` (routine in launchd plists, Docker `ENV` and `.env`
|
|
91
|
+
* files) gets reported as a mistake the operator never made. Absent stays `null`
|
|
92
|
+
* rather than collapsing to `'auto'` so that the usual flag-then-env fallback,
|
|
93
|
+
* `parse(flag) ?? parse(env)`, keeps working.
|
|
94
|
+
*/
|
|
95
|
+
export declare function parseTurnVerbosityConfig(raw: string | null | undefined): TurnVerbosityConfig | null;
|
|
96
|
+
/** Convenience for the trail attach sites; folds the ruling above in. */
|
|
97
|
+
export declare function shouldPublishTurnTrail(verbosity: TurnVerbosity): boolean;
|