@canonmsg/agent-sdk 12.1.0 → 12.2.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/dist/chunks/{chunk-N722GWCP.js → chunk-HITMISWV.js} +4 -4
- package/dist/chunks/{chunk-7N6OPPW4.js → chunk-J63YVAKA.js} +13 -16
- package/dist/chunks/{chunk-QZ4PPRQW.js → chunk-O5C3ZGI4.js} +54 -244
- package/dist/chunks/{mls-crypto-LMNQZOS6.js → mls-crypto-ITVGUEP7.js} +1 -1
- package/dist/cli.js +4 -5
- package/dist/index.js +3 -3
- package/dist/internal/backend-contracts/clientFloor.d.ts +12 -1
- package/dist/internal/backend-contracts/endpoint.d.ts +1 -1
- package/dist/internal/backend-contracts/message.d.ts +1 -1
- package/dist/internal/backend-contracts/mlsDevEnrollment.d.ts +3 -0
- package/dist/internal/backend-contracts/mlsPrincipalAlias.d.ts +3 -0
- package/dist/internal/backend-contracts/runtimeCardFields.d.ts +0 -4
- package/dist/internal/backend-contracts/verbContract.d.ts +8 -12
- package/dist/internal/backend-contracts/verbSchemas.d.ts +3 -4
- package/dist/internal/core/client.d.ts +2 -97
- package/dist/internal/core/endpoint-client.d.ts +2 -2
- package/dist/internal/core/index.d.ts +2 -4
- package/dist/internal/core/turn-verbosity.d.ts +5 -11
- package/dist/internal/core/types.d.ts +0 -181
- package/dist/media.js +2 -2
- package/dist/runner/types.d.ts +1 -1
- package/package.json +1 -1
- package/dist/internal/core/stream.d.ts +0 -78
package/dist/cli.js
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
runnerLockName,
|
|
23
23
|
startRelayChannel,
|
|
24
24
|
writeRelayCredential
|
|
25
|
-
} from "./chunks/chunk-
|
|
25
|
+
} from "./chunks/chunk-HITMISWV.js";
|
|
26
26
|
import {
|
|
27
27
|
CanonApiError,
|
|
28
28
|
CanonClient,
|
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
resolveCanonRuntimeConnection,
|
|
34
34
|
runCli,
|
|
35
35
|
verifyCanonRuntimeConnection
|
|
36
|
-
} from "./chunks/chunk-
|
|
36
|
+
} from "./chunks/chunk-O5C3ZGI4.js";
|
|
37
37
|
import {
|
|
38
38
|
__name,
|
|
39
39
|
isCanonClientVersion
|
|
40
|
-
} from "./chunks/chunk-
|
|
40
|
+
} from "./chunks/chunk-J63YVAKA.js";
|
|
41
41
|
|
|
42
42
|
// src/cli.ts
|
|
43
43
|
import { realpathSync } from "node:fs";
|
|
@@ -194,7 +194,6 @@ Environment:
|
|
|
194
194
|
|
|
195
195
|
SIGTERM or Ctrl-C stops taking messages, lets running turns finish for 10 seconds,
|
|
196
196
|
then stops them.`;
|
|
197
|
-
var DRIVERS = ["code", "claude", "codex", "hermes", "connector"];
|
|
198
197
|
var AVAILABLE = ["code", "claude", "codex", "connector"];
|
|
199
198
|
var PERMISSION_MODES = ["default", "acceptEdits", "bypassPermissions"];
|
|
200
199
|
var SANDBOXES = ["workspace-write", "read-only", "danger-full-access"];
|
|
@@ -228,7 +227,7 @@ async function main() {
|
|
|
228
227
|
if (positionals[0] === "tell" || positionals[0] === "post" || positionals[0] === "errand") return errand(positionals[0], values);
|
|
229
228
|
if (!values.driver) throw new UsageError("--driver is required.");
|
|
230
229
|
if (!AVAILABLE.includes(values.driver)) {
|
|
231
|
-
throw new Error(
|
|
230
|
+
throw new Error(`Unknown driver "${values.driver}". Available: ${AVAILABLE.join(", ")}.`);
|
|
232
231
|
}
|
|
233
232
|
if (values.driver === "code" && !values.module) throw new UsageError("--driver code needs --module <path>.");
|
|
234
233
|
if (values.driver === "connector" !== !!values["relay-config"]) throw new UsageError("--relay-config goes with --driver connector, which needs it.");
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
runMlsDevSetup,
|
|
19
19
|
runtimeDescriptor,
|
|
20
20
|
startRelayChannel
|
|
21
|
-
} from "./chunks/chunk-
|
|
21
|
+
} from "./chunks/chunk-HITMISWV.js";
|
|
22
22
|
import {
|
|
23
23
|
CanonApiError,
|
|
24
24
|
DEFAULT_ANTHROPIC_REQUEST_HEADROOM_BYTES,
|
|
@@ -43,8 +43,8 @@ import {
|
|
|
43
43
|
toAnthropicImageBlock,
|
|
44
44
|
toAnthropicImageBlocksWithinBudget,
|
|
45
45
|
uploadMediaFile
|
|
46
|
-
} from "./chunks/chunk-
|
|
47
|
-
import "./chunks/chunk-
|
|
46
|
+
} from "./chunks/chunk-O5C3ZGI4.js";
|
|
47
|
+
import "./chunks/chunk-J63YVAKA.js";
|
|
48
48
|
export {
|
|
49
49
|
CanonApiError,
|
|
50
50
|
ConnectorRelayError,
|
|
@@ -23,12 +23,23 @@ export declare function formatCanonClientHeader(client: CanonClientIdentity): st
|
|
|
23
23
|
/** A malformed header is treated as absent. */
|
|
24
24
|
export declare function parseCanonClientHeader(value: unknown): CanonClientIdentity | null;
|
|
25
25
|
export declare function compareCanonClientVersions(left: string, right: string): number;
|
|
26
|
-
/**
|
|
26
|
+
/** The server-only floor record (mls-cutover-operator.md §2 15b), written by `scripts/mls-rollout.mjs floor-set`. */
|
|
27
|
+
export declare const CANON_CLIENT_FLOOR_PATH = "mlsRollout/clientFloor";
|
|
28
|
+
/** The record's per-kind minimums. A kind it does not name has none. */
|
|
27
29
|
export interface CanonClientFloor {
|
|
28
30
|
readonly minimum: Readonly<Partial<Record<CanonClientKind, string>>>;
|
|
29
31
|
}
|
|
30
32
|
/** The server-only record, in its exact shape; anything else is a broken floor, which the caller refuses rather than ignore. */
|
|
31
33
|
export declare function parseCanonClientFloor(data: unknown): CanonClientFloor;
|
|
34
|
+
/** A server's cached floor: one `get` per `ttlMs`, null when none is set. A malformed record rejects (through `invalid`),
|
|
35
|
+
* so the caller fails closed rather than serve every client; a failed read is not remembered. */
|
|
36
|
+
export declare function createCanonClientFloorReader(get: () => Promise<{
|
|
37
|
+
readonly exists: boolean;
|
|
38
|
+
data(): unknown;
|
|
39
|
+
}>, ttlMs: number, invalid?: () => never): {
|
|
40
|
+
read(now?: number): Promise<CanonClientFloor | null>;
|
|
41
|
+
reset(): void;
|
|
42
|
+
};
|
|
32
43
|
/** The refusal's message, naming the minimum, so a runner or plugin log says what to install. */
|
|
33
44
|
export declare function canonClientUpdateMessage(refusal: {
|
|
34
45
|
kind: CanonClientKind | null;
|
|
@@ -100,7 +100,7 @@ export interface EndpointCapabilities {
|
|
|
100
100
|
/** Only for a principal eligible for MLS here: how new rooms are born (functions `rollout.ts`, `CANON_MLS_DEV_ROOMS`). */
|
|
101
101
|
mls?: {
|
|
102
102
|
eligible: true;
|
|
103
|
-
roomMode: '
|
|
103
|
+
roomMode: 'default';
|
|
104
104
|
/** The principal's MLS identity, its alias (mls-dev-groups.md, erasure privacy), and the opening that proves the alias
|
|
105
105
|
* is its own; null until it has an alias, when the account is its own principal. Absent from older servers. */
|
|
106
106
|
principal?: {
|
|
@@ -2,7 +2,7 @@ import { MediaAttachment } from './media.js';
|
|
|
2
2
|
import { type MlsDevMessageReference } from './mlsDevApplication.js';
|
|
3
3
|
export type SerializedSenderType = 'human' | 'ai_agent';
|
|
4
4
|
/** Canonical agent client identifiers shared by Canon services and clients. */
|
|
5
|
-
export declare const AGENT_CLIENT_TYPES: readonly ["claude-code", "codex", "
|
|
5
|
+
export declare const AGENT_CLIENT_TYPES: readonly ["claude-code", "codex", "generic"];
|
|
6
6
|
export type SerializedAgentClientType = typeof AGENT_CLIENT_TYPES[number];
|
|
7
7
|
export type SerializedContentType = 'text' | 'image' | 'audio' | 'video' | 'file' | 'contact_card' | 'interaction';
|
|
8
8
|
export interface ForwardedFrom {
|
|
@@ -54,6 +54,9 @@ export declare class MlsDevEnrollmentValidationError extends Error {
|
|
|
54
54
|
readonly code = "INVALID_MLS_DEV_ENROLLMENT";
|
|
55
55
|
constructor();
|
|
56
56
|
}
|
|
57
|
+
/** An MLS principal ID on the wire (an account ID or an alias): well-formed UTF-16 whose UTF-8 is 1-512 bytes, with no
|
|
58
|
+
* control character. Account IDs follow the stricter `isMlsAccountId`. */
|
|
59
|
+
export declare function isMlsPrincipalId(value: unknown): value is string;
|
|
57
60
|
/** Shared exact identity parsing for the separate protected Dev signing boundary. */
|
|
58
61
|
export declare function parseMlsDevEnrollmentPrincipal(value: unknown): MlsDevEnrollmentPrincipal;
|
|
59
62
|
export declare function parseMlsDevInstallationId(value: unknown): string;
|
|
@@ -8,6 +8,9 @@ export interface MlsPrincipalOpening {
|
|
|
8
8
|
}
|
|
9
9
|
/** An alias's shape; whether it opens to an account needs its opening. Account IDs never have it. */
|
|
10
10
|
export declare function isMlsPrincipalAlias(value: unknown): value is string;
|
|
11
|
+
/** An account ID (a Firebase uid, an agent's document ID): an MLS principal ID that is also exactly one document ID, so
|
|
12
|
+
* never containing `/` and never `.` or `..`. */
|
|
13
|
+
export declare function isMlsAccountId(value: unknown): value is string;
|
|
11
14
|
export declare function parseMlsPrincipalOpening(value: unknown): MlsPrincipalOpening;
|
|
12
15
|
/**
|
|
13
16
|
* SHA-256 over the domain above, LP environment, u8 type (human 0/agent 1), LP account ID and the raw 32-byte salt,
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
* Canonical `canon.card.v1` action-field type vocabulary. The runtime array is
|
|
3
3
|
* the single source of truth and the type is derived from it, so a value and a
|
|
4
4
|
* type cannot drift.
|
|
5
|
-
*
|
|
6
|
-
* ORDER IS LOAD-BEARING: scripts/generate-skill-bundles.mjs renders this list
|
|
7
|
-
* verbatim (via @canonmsg/rich-cards) into the Hermes plugin's committed
|
|
8
|
-
* rich-cards SKILL.md, and `npm run check:skill-bundles` fails on a byte change.
|
|
9
5
|
*/
|
|
10
6
|
export declare const RUNTIME_CARD_FIELD_TYPES: readonly ["text", "textarea", "select", "multiSelect", "boolean", "date", "number", "currency", "searchSelect", "lineItems"];
|
|
11
7
|
export type RuntimeCardFieldType = (typeof RUNTIME_CARD_FIELD_TYPES)[number];
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
* (v1 scope: messaging, HITL interactions, contact sharing, and the read
|
|
5
5
|
* verbs bindings need alongside them).
|
|
6
6
|
*
|
|
7
|
-
* One verb = one intent-level action. Each runtime binding (
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* One verb = one intent-level action. Each runtime binding (MCP server, codex
|
|
8
|
+
* dynamicTools, agent-sdk method, CLI) projects these verbs into its native
|
|
9
|
+
* tool surface; the names, argument shapes, limits, and result vocabularies
|
|
10
|
+
* defined here are the single source of truth. JSON
|
|
11
11
|
* Schemas for each verb live in `verbSchemas.ts` and are also emitted as a
|
|
12
12
|
* plain JSON artifact at build time (`dist/canon-verbs.schema.json`) so
|
|
13
|
-
* non-TypeScript consumers (
|
|
14
|
-
*
|
|
13
|
+
* non-TypeScript consumers (external integrators) can consume the identical
|
|
14
|
+
* contract.
|
|
15
15
|
*
|
|
16
16
|
* Deliberately NOT verbs: replying in the active conversation, streaming
|
|
17
17
|
* partials, typing, and read receipts stay host-mediated — the model talks
|
|
@@ -99,9 +99,7 @@ export declare const VERB_LIMITS: {
|
|
|
99
99
|
readonly externalSourceLabelChars: 80;
|
|
100
100
|
/**
|
|
101
101
|
* Contact-request note. Values longer than this are truncated by senders
|
|
102
|
-
* (slice(0,497)+'...')
|
|
103
|
-
* functions/src/api/sendContextualMessage.ts, packages/core/src/reach-out.ts
|
|
104
|
-
* and the hermes plugin; this constant is the canonical figure.
|
|
102
|
+
* (slice(0,497)+'...'); this constant is the canonical figure.
|
|
105
103
|
*/
|
|
106
104
|
readonly contactRequestNoteChars: 500;
|
|
107
105
|
/** Group membership cap incl. creator (functions/src/utils/conversations.ts MAX_GROUP_MEMBERS). */
|
|
@@ -760,9 +758,7 @@ export declare const CANON_VERB_LIMITS_ARTIFACT: {
|
|
|
760
758
|
readonly externalSourceLabelChars: 80;
|
|
761
759
|
/**
|
|
762
760
|
* Contact-request note. Values longer than this are truncated by senders
|
|
763
|
-
* (slice(0,497)+'...')
|
|
764
|
-
* functions/src/api/sendContextualMessage.ts, packages/core/src/reach-out.ts
|
|
765
|
-
* and the hermes plugin; this constant is the canonical figure.
|
|
761
|
+
* (slice(0,497)+'...'); this constant is the canonical figure.
|
|
766
762
|
*/
|
|
767
763
|
readonly contactRequestNoteChars: 500;
|
|
768
764
|
/** Group membership cap incl. creator (functions/src/utils/conversations.ts MAX_GROUP_MEMBERS). */
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
* `<verb>_result` definition per verb under `$defs` plus shared shapes. The
|
|
6
6
|
* document is emitted verbatim to `dist/canon-verbs.schema.json` at build
|
|
7
7
|
* time (see scripts/emit-verb-schemas.mjs) so non-TypeScript bindings can
|
|
8
|
-
* consume the byte-identical contract instead of hand-porting it (
|
|
9
|
-
*
|
|
10
|
-
* generated CLIs read it from the npm package).
|
|
8
|
+
* consume the byte-identical contract instead of hand-porting it (external
|
|
9
|
+
* integrators and generated CLIs read it from the npm package).
|
|
11
10
|
*
|
|
12
11
|
* Conventions:
|
|
13
12
|
* - Verb INPUT schemas are strict (`additionalProperties: false`) — a binding
|
|
@@ -686,7 +685,7 @@ export declare const CANON_VERBS_JSON_SCHEMA: {
|
|
|
686
685
|
}];
|
|
687
686
|
};
|
|
688
687
|
readonly send_to_result: {
|
|
689
|
-
readonly description:
|
|
688
|
+
readonly description: "Canonical outcome vocabulary.";
|
|
690
689
|
readonly oneOf: readonly [{
|
|
691
690
|
readonly type: "object";
|
|
692
691
|
readonly required: readonly ["status", "conversationId"];
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import { type CanonMessage, type CanonConversation, type CanonUnifiedDiff, type
|
|
1
|
+
import { type CanonMessage, type CanonConversation, type CanonUnifiedDiff, type CanonMessagesPage, type AgentContext, type MediaAttachment, type SendMessageOptions, type RegistrationStatus, type AgentOriginDeclaration, type SetRuntimeTurnOptions, type SetStreamingOptions } from './types.js';
|
|
2
2
|
import type { RuntimeInputKind } from './runtime-cards.js';
|
|
3
3
|
import type { ApprovalNativeRequestMetadata, ApprovalRequestCategory, ApprovalRequestDetail, ApprovalRisk, SessionRule } from './approval-types.js';
|
|
4
4
|
import type { RuntimeInputAnswers, RuntimeInputChoice, RuntimeInputNativeMetadata, RuntimeInputQuestion, RuntimeCardNativeMetadata, RuntimeCardV1 } from './runtime-cards.js';
|
|
5
5
|
import type { InboundDisposition } from './turn-protocol.js';
|
|
6
|
-
import { type CanonVerbWireRequest, type CanonVerbWireResponse, type CommunicateInput, type CommunicateResult, type DiscoverAgentsInput, type DiscoverAgentsResult
|
|
6
|
+
import { type CanonVerbWireRequest, type CanonVerbWireResponse, type CommunicateInput, type CommunicateResult, type DiscoverAgentsInput, type DiscoverAgentsResult } from '../backend-contracts/index.js';
|
|
7
7
|
import { type EndpointOperation } from '../endpoint/index.js';
|
|
8
8
|
import { type CanonClientEndpointOptions, type CanonEndpoint } from './endpoint-client.js';
|
|
9
|
-
export interface ResumableMediaUploadSession {
|
|
10
|
-
uploadId: string;
|
|
11
|
-
/** Private bearer capability returned by Cloud Storage. Do not persist or log it. */
|
|
12
|
-
uploadUrl: string;
|
|
13
|
-
expiresAt: string;
|
|
14
|
-
sizeBytes: number;
|
|
15
|
-
mimeType: string;
|
|
16
|
-
}
|
|
17
9
|
export interface ResumableMediaUploadResult {
|
|
18
10
|
uploadId: string;
|
|
19
11
|
url: string;
|
|
@@ -46,28 +38,10 @@ export declare class CanonClient {
|
|
|
46
38
|
private authHeaders;
|
|
47
39
|
getAgentMe(): Promise<AgentContext>;
|
|
48
40
|
discoverAgents(input?: DiscoverAgentsInput): Promise<DiscoverAgentsResult>;
|
|
49
|
-
/**
|
|
50
|
-
* List conversations. Called with no options this is the historical request —
|
|
51
|
-
* no query string, every conversation the agent belongs to, most recent
|
|
52
|
-
* first. Passing `limit`/`before` opts into paging; use
|
|
53
|
-
* `getConversationsPage` when you need the cursor back.
|
|
54
|
-
*/
|
|
55
|
-
getConversations(options?: CanonConversationsPageOptions): Promise<CanonConversation[]>;
|
|
56
|
-
/**
|
|
57
|
-
* One page of conversations plus the cursor to continue from. Pages are cut
|
|
58
|
-
* in conversation-id order; keep calling with `before: page.nextBefore` until
|
|
59
|
-
* `nextBefore` is null. Do not stop on an empty page and do not derive the
|
|
60
|
-
* cursor from the returned array — the array is recency-sorted within the
|
|
61
|
-
* page and hidden conversations are filtered after the page is read.
|
|
62
|
-
*/
|
|
63
|
-
getConversationsPage(options?: CanonConversationsPageOptions): Promise<CanonConversationsPage>;
|
|
64
|
-
private fetchConversationsPage;
|
|
65
41
|
/** Targeted membership read; session hosts must not poll the entire account. */
|
|
66
42
|
getConversation(conversationId: string): Promise<CanonConversation | null>;
|
|
67
43
|
getMessages(conversationId: string, limit?: number, before?: string): Promise<CanonMessage[]>;
|
|
68
44
|
getMessagesPage(conversationId: string, limit?: number, before?: string): Promise<CanonMessagesPage>;
|
|
69
|
-
/** Read one explicitly referenced message without extending ordinary history. */
|
|
70
|
-
getMessage(conversationId: string, messageId: string): Promise<CanonMessage | null>;
|
|
71
45
|
sendMessage(conversationId: string, text: string, options?: SendMessageOptions, delivery?: {
|
|
72
46
|
operationId?: string;
|
|
73
47
|
}): Promise<{
|
|
@@ -85,7 +59,6 @@ export declare class CanonClient {
|
|
|
85
59
|
operationId?: string;
|
|
86
60
|
signal?: AbortSignal;
|
|
87
61
|
replacesOperationId?: string;
|
|
88
|
-
proactive?: boolean;
|
|
89
62
|
}): Promise<{
|
|
90
63
|
id: string;
|
|
91
64
|
sendPart(index: number, options?: {
|
|
@@ -95,36 +68,7 @@ export declare class CanonClient {
|
|
|
95
68
|
messageId: string;
|
|
96
69
|
}>;
|
|
97
70
|
}>;
|
|
98
|
-
/** Publish a native-formatted ordered plan through the same endpoint engine. */
|
|
99
|
-
sendMessageGroup(conversationId: string, messageId: string | null, parts: Array<{
|
|
100
|
-
text: string;
|
|
101
|
-
options: SendMessageOptions;
|
|
102
|
-
}>, delivery?: {
|
|
103
|
-
proactive?: boolean;
|
|
104
|
-
}): Promise<{
|
|
105
|
-
messageId: string;
|
|
106
|
-
messageIds: string[];
|
|
107
|
-
}>;
|
|
108
71
|
cancelMessageGroup(id: string): Promise<void>;
|
|
109
|
-
/**
|
|
110
|
-
* Send outside an active inbound turn through the canonical policy boundary.
|
|
111
|
-
* Harness reply paths should keep using sendMessage; schedulers, notifications,
|
|
112
|
-
* and other detached work must use this method.
|
|
113
|
-
*/
|
|
114
|
-
sendProactiveMessage(conversationId: string, text: string, options?: SendToInput['messageOptions'], delivery?: {
|
|
115
|
-
operationId?: string;
|
|
116
|
-
}): Promise<{
|
|
117
|
-
messageId: string;
|
|
118
|
-
conversationId: string;
|
|
119
|
-
}>;
|
|
120
|
-
/** Reconcile an existing publication without rebuilding or resubmitting its body. */
|
|
121
|
-
waitForProactiveMessage(operationId: string, options?: {
|
|
122
|
-
signal?: AbortSignal;
|
|
123
|
-
timeoutMs?: number;
|
|
124
|
-
}): Promise<{
|
|
125
|
-
messageId: string;
|
|
126
|
-
conversationId: string;
|
|
127
|
-
}>;
|
|
128
72
|
/**
|
|
129
73
|
* Execute a canonical verb over the wire contract (canon.verb-wire.v1).
|
|
130
74
|
* Bindings build the request with projectVerbIntentToWire; the endpoint
|
|
@@ -147,50 +91,11 @@ export declare class CanonClient {
|
|
|
147
91
|
communicate(input: CommunicateInput): Promise<CommunicateResult>;
|
|
148
92
|
private executeCommunication;
|
|
149
93
|
private startWithheld;
|
|
150
|
-
/** Create a group. Direct conversations must go through `communicate`. */
|
|
151
|
-
createGroup(options: CreateGroupOptions): Promise<CreateGroupResult>;
|
|
152
|
-
createMemoStream(options: CreateMemoStreamOptions & {
|
|
153
|
-
streamId?: string;
|
|
154
|
-
}): Promise<CreateMemoStreamResult>;
|
|
155
|
-
appendMemoStreamChunk(conversationId: string, streamId: string, options: AppendMemoStreamChunkOptions): Promise<MemoStreamChunkAck>;
|
|
156
|
-
finalizeMemoStream(conversationId: string, streamId: string, messageId: string): Promise<void>;
|
|
157
|
-
abortMemoStream(conversationId: string, streamId: string): Promise<void>;
|
|
158
|
-
createVoiceSession(options: CreateVoiceSessionOptions): Promise<CanonVoiceSessionToken>;
|
|
159
|
-
getVoiceSessionState(conversationId: string, sessionId: string): Promise<{
|
|
160
|
-
session: CanonVoiceSession;
|
|
161
|
-
}>;
|
|
162
|
-
declineVoiceSession(conversationId: string, sessionId: string): Promise<void>;
|
|
163
|
-
joinVoiceSession(conversationId: string, sessionId: string, options?: Omit<JoinVoiceSessionOptions, 'conversationId'>): Promise<CanonVoiceSessionToken>;
|
|
164
|
-
endVoiceSession(conversationId: string, sessionId: string): Promise<void>;
|
|
165
|
-
listContacts(): Promise<CanonContact[]>;
|
|
166
|
-
getContact(contactId: string): Promise<CanonContact | null>;
|
|
167
|
-
deleteContact(contactId: string): Promise<void>;
|
|
168
94
|
blockUser(userId: string): Promise<void>;
|
|
169
|
-
unblockUser(userId: string): Promise<void>;
|
|
170
|
-
resolveAdmission(target: string | ResolveAdmissionTargetInput): Promise<CanonResolveAdmissionResult>;
|
|
171
|
-
uploadMedia(conversationId: string, data: string, mimeType: string, fileName?: string, options?: {
|
|
172
|
-
attachmentId?: string;
|
|
173
|
-
}): Promise<{
|
|
174
|
-
url: string;
|
|
175
|
-
attachment: MediaAttachment;
|
|
176
|
-
}>;
|
|
177
|
-
/**
|
|
178
|
-
* Start a private direct-to-Storage upload. The returned upload URL is a
|
|
179
|
-
* short-lived bearer capability; send exactly `sizeBytes` raw bytes to it,
|
|
180
|
-
* then call `finalizeResumableMediaUpload`.
|
|
181
|
-
*/
|
|
182
|
-
createResumableMediaUpload(conversationId: string, sizeBytes: number, mimeType: string, fileName?: string): Promise<ResumableMediaUploadSession>;
|
|
183
|
-
/** Promote validated pending bytes into a canonical Canon attachment. */
|
|
184
|
-
finalizeResumableMediaUpload(uploadId: string): Promise<ResumableMediaUploadResult>;
|
|
185
|
-
updateTopic(conversationId: string, topic: string): Promise<void>;
|
|
186
95
|
deleteMessage(conversationId: string, messageId: string): Promise<void>;
|
|
187
96
|
updateMessageDisposition(conversationId: string, messageId: string, inboundDisposition: InboundDisposition): Promise<void>;
|
|
188
97
|
markAsRead(conversationId: string): Promise<void>;
|
|
189
|
-
leaveConversation(conversationId: string): Promise<void>;
|
|
190
98
|
react(conversationId: string, messageId: string, emoji: string): Promise<void>;
|
|
191
|
-
updateConversationName(conversationId: string, name: string): Promise<void>;
|
|
192
|
-
addMember(conversationId: string, userId: string): Promise<AddMemberResult>;
|
|
193
|
-
removeMember(conversationId: string, userId: string): Promise<void>;
|
|
194
99
|
setStreaming(options: SetStreamingOptions): Promise<void>;
|
|
195
100
|
clearStreaming(conversationId: string): Promise<void>;
|
|
196
101
|
setRuntimeTurn(options: SetRuntimeTurnOptions): Promise<void>;
|
|
@@ -35,8 +35,8 @@ export interface CanonClientEndpointOptions {
|
|
|
35
35
|
/** Test seam for the client's out-of-protocol HTTP (identity, profile); production leaves it unset. */
|
|
36
36
|
fetch?: typeof fetch;
|
|
37
37
|
/**
|
|
38
|
-
* Names this client to Canon's client floor (`X-Canon-Client`, mls-cutover-operator.md §2 15b). The runner
|
|
39
|
-
*
|
|
38
|
+
* Names this client to Canon's client floor (`X-Canon-Client`, mls-cutover-operator.md §2 15b). The runner and the CLIs
|
|
39
|
+
* pass theirs; a client that names none is refused once a floor exists.
|
|
40
40
|
*/
|
|
41
41
|
client?: CanonClientIdentity;
|
|
42
42
|
/** Canon refused this client as below its floor, on any request or stream (`426 CLIENT_UPDATE_REQUIRED`). */
|
|
@@ -6,17 +6,15 @@ export type { EndpointInboundHandoff, EndpointInboundHandoffPhase, EndpointInbou
|
|
|
6
6
|
export { createNodeEndpointMediaBytes } from './node-media.js';
|
|
7
7
|
export { resolveConversationPolicyScope } from '../backend-contracts/index.js';
|
|
8
8
|
export { CLAUDE_PERMISSION_MODE_OPTIONS, } from './types.js';
|
|
9
|
-
export type { AgentOrigin, AgentOriginDeclaration,
|
|
9
|
+
export type { AgentOrigin, AgentOriginDeclaration, AgentClientType, CanonControlAvailability, CanonControlDescriptor, CanonControlLiveBehavior, CanonControlSelectionPolicy, CanonControlValue, CanonRuntimeCardCapabilities, CanonRuntimeRichCardCapability, CanonRuntimeVoiceCapabilities, CanonRuntimeVoiceMode, CanonResolveAdmissionResult, ContactCardPayload, ContactSource, ResolvedAdmissionState, ResolvedAdmissionTargetSummary, ResolvedTargetAdmissionPayload, CanonMessage, CanonRuntimeProvenance, CanonTurnDispatch, CanonConversation, CanonMessagesPage, CanonVoiceSession, CanonVoiceSessionMode, CanonVoiceSessionParticipant, CanonVoiceSessionStatus, CanonVoiceSessionToken, AgentContext, AgentSessionSnapshot, MediaAttachment, MediaAttachmentKind, VideoProcessingStatus, VideoProcessingErrorCode, MessageCreatedPayload, RuntimeUpdatedPayload, SendMessageOptions, RegistrationInput, RegistrationStatus, SetRuntimeTurnOptions, StreamingStatus, SetStreamingOptions, SessionState, AgentRuntime, CanonRuntimeDescriptor, CanonRuntimeActionAvailability, CanonRuntimeActionCategory, CanonRuntimeActionDescriptor, CanonRuntimeActionDispatch, CanonRuntimeActionPlacement, CanonRuntimeCommandArgumentChoice, CanonRuntimeCommandArgumentDescriptor, CanonRuntimeCommandArgumentKind, CanonRuntimeCommandDescriptor, CanonRuntimeDetailTier, CanonRuntimeExecutionMetadata, CanonRuntimePresentationField, CanonRuntimePresentationHint, CanonRuntimePresentationPolicy, CanonRuntimePresentationPreset, CanonRuntimeVisibility, CanonRuntimeActivityItem, CanonRuntimeActivityKind, CanonRuntimeActivityStatus, CanonRuntimeFact, CanonRuntimeFactGroup, CanonRuntimeInventory, CanonRuntimeInventoryEntry, CanonRuntimePrimitiveId, CanonRuntimeStreamingMode, CanonRuntimeStatusItem, CanonRuntimeSurfaceMode, CanonRuntimeTurnModeActivation, CanonRuntimeTurnModeDescriptor, CanonRuntimeTurnModeScope, CanonUnifiedDiff, CanonUnifiedDiffFile, CanonUnifiedDiffFileStatus, CanonWorkspaceRootMetadata, ModelOption, PermissionModeOption, RuntimeInfoPayload, RuntimeControlError, RuntimeControlState, RuntimeControlValueSource, TurnOutputBlock, TurnOutputBlockKind, TurnOutputBlockStatus, WorkspaceOption, WorkspaceOptionSource, } from './types.js';
|
|
10
10
|
export type { CanonGifMetadata, CanonGifResult, CanonGifSearchResponse, GifProvider, } from './gifs.js';
|
|
11
11
|
export { buildGifAttachment, buildGifMetadata, } from './gifs.js';
|
|
12
12
|
export { isRuntimePresentationFieldHidden, redactAgentSessionSnapshotForConversation, redactRuntimeActivityItemForConversation, redactRuntimeInfoForConversation, } from './runtime-presentation.js';
|
|
13
13
|
export type { CanonSelfContext, CanonSelfContextType, } from './self-context.js';
|
|
14
14
|
export { CanonClient, CanonApiError } from './client.js';
|
|
15
15
|
export type { EndpointOperation as CanonMessageOperation } from '../endpoint/index.js';
|
|
16
|
-
export type { ResumableMediaUploadResult,
|
|
16
|
+
export type { ResumableMediaUploadResult, } from './client.js';
|
|
17
17
|
export { EXECUTION_MODE_CONTROL_OPTIONS, RUNTIME_NEW_SESSION_ACTION, RUNTIME_STOP_ACTION, RUNTIME_STOP_AND_DROP_ACTION, normalizeRuntimeCommandAlias, normalizeRuntimeCommandAliases, normalizeRuntimeCommandDescriptors, } from './runtime-descriptor.js';
|
|
18
|
-
export { CanonStream, CanonStreamError } from './stream.js';
|
|
19
|
-
export type { CanonStreamErrorPayload, ReplayExpiredPayload, StreamHandler } from './stream.js';
|
|
20
18
|
export { createRuntimeHeartbeat } from './runtime-heartbeat.js';
|
|
21
19
|
export type { RuntimeHeartbeat, RuntimeHeartbeatOperation, RuntimeHeartbeatOptions, } from './runtime-heartbeat.js';
|
|
22
20
|
export type { ParticipationStyle, AgentBehaviorSettings, ParticipationPolicy, ResolvedAgentBehaviorPolicy, ParticipationHistoryMessage, ParticipationHistorySnapshot, ParticipationDecisionInput, ParticipationDecision, } from './policy.js';
|
|
@@ -33,17 +33,11 @@ export type TurnVerbosity = 'verbose' | 'quiet';
|
|
|
33
33
|
/** What a developer may write in config. `'auto'` === unset. */
|
|
34
34
|
export type TurnVerbosityConfig = TurnVerbosity | 'auto';
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* conversation fetch failed (host-runtime.ts HostInboundParticipantContext).
|
|
39
|
-
*/
|
|
40
|
-
export type TurnVerbosityConversationType = 'direct' | 'dm' | 'group' | 'unknown';
|
|
41
|
-
/**
|
|
42
|
-
* The per-conversation-type defaults. `canon-hermes-plugin` will hand-port this
|
|
43
|
-
* map into Python — that package has no dependency on this one — and pin the
|
|
44
|
-
* two sides with a cross-language parity test, the way it already does for the
|
|
45
|
-
* turn-trail budgets and the group guidance wording.
|
|
36
|
+
* A direct chat is `'direct'`; the type is `'unknown'` when the conversation
|
|
37
|
+
* fetch failed (host-runtime.ts HostInboundParticipantContext).
|
|
46
38
|
*/
|
|
39
|
+
export type TurnVerbosityConversationType = 'direct' | 'group' | 'unknown';
|
|
40
|
+
/** The per-conversation-type defaults. */
|
|
47
41
|
export declare const DEFAULT_TURN_VERBOSITY_BY_CONVERSATION_TYPE: {
|
|
48
42
|
readonly direct: "verbose";
|
|
49
43
|
readonly group: "quiet";
|
|
@@ -52,7 +46,7 @@ export declare const DEFAULT_TURN_VERBOSITY_BY_CONVERSATION_TYPE: {
|
|
|
52
46
|
/**
|
|
53
47
|
* Folds every spelling a runtime might hand us onto the three keys the
|
|
54
48
|
* defaults map has. Accepts a raw string because the value arrives from
|
|
55
|
-
* provenance
|
|
49
|
+
* provenance or a conversation fetch.
|
|
56
50
|
*/
|
|
57
51
|
export declare function normalizeTurnVerbosityConversationType(value: string | null | undefined): 'direct' | 'group' | 'unknown';
|
|
58
52
|
/**
|