@essentialai/cogent 3.7.0 → 3.9.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/CHANGELOG.md +7 -0
- package/dist/schemas/api-requests.d.ts +45 -0
- package/dist/schemas/api-requests.d.ts.map +1 -1
- package/dist/schemas/api-requests.js +36 -7
- package/dist/schemas/api-requests.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/types/message.d.ts +29 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +11 -0
- package/dist/types/message.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.8.0] - 2026-08-12
|
|
4
|
+
|
|
5
|
+
### Added — Cogent Mail attachments reference layer (M2.5)
|
|
6
|
+
- `Attachment` interface + `AttachmentSchema` (`url?`, `mailMessageId?`, `name?`, `mimeType?`,
|
|
7
|
+
`size?`) and an optional `attachments?: Attachment[]` on `MessageRecord` (+ Zod schema). Purely
|
|
8
|
+
additive — records without attachments serialize byte-identically.
|
|
9
|
+
|
|
3
10
|
## [3.7.0] - 2026-08-08
|
|
4
11
|
|
|
5
12
|
### Added — Cogent Mail A2A card + PeerInfo mailbox (M2.6)
|
|
@@ -25,6 +25,12 @@ export interface ResolveSessionRequest {
|
|
|
25
25
|
/** Request body for registering a peer in a session. */
|
|
26
26
|
export interface RegisterPeerRequest {
|
|
27
27
|
peerId: string;
|
|
28
|
+
/**
|
|
29
|
+
* AUD-003. Proof that this caller owns `peerId` when the token differs from the one that
|
|
30
|
+
* created it — e.g. this agent re-joined and was issued a new token. Not needed on the common
|
|
31
|
+
* path (same token). Issued once, in the registration response, when the peer is first created.
|
|
32
|
+
*/
|
|
33
|
+
peerSecret?: string;
|
|
28
34
|
cwd: string;
|
|
29
35
|
label: string;
|
|
30
36
|
platform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini";
|
|
@@ -45,6 +51,20 @@ export interface SendMessageRequest {
|
|
|
45
51
|
toPeerId: string;
|
|
46
52
|
message: string;
|
|
47
53
|
originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini";
|
|
54
|
+
/**
|
|
55
|
+
* Delivery outcome AS REPORTED BY THE SENDER. The relay cannot observe any of these — only the
|
|
56
|
+
* sender knows whether its wake succeeded, why it failed, and how long it took. Before
|
|
57
|
+
* 2026-09-03 they were absent from this contract and the relay fabricated `success: true` on
|
|
58
|
+
* every record; four consumers then branched on that constant, including the production
|
|
59
|
+
* check-on-stop hook, which read a "could not wake" notice as an ANSWER.
|
|
60
|
+
*
|
|
61
|
+
* Optional and additive: a sender that omits them behaves exactly as before. A client MUST gate
|
|
62
|
+
* sending them on the relay advertising `message-delivery-fields` (GET /api/health), because the
|
|
63
|
+
* accept schema is strict and an older relay rejects unknown keys outright.
|
|
64
|
+
*/
|
|
65
|
+
success?: boolean;
|
|
66
|
+
error?: string | null;
|
|
67
|
+
durationMs?: number | null;
|
|
48
68
|
}
|
|
49
69
|
/** Query parameters for message history retrieval. */
|
|
50
70
|
export interface GetHistoryQuery {
|
|
@@ -57,6 +77,31 @@ export interface PollQuery {
|
|
|
57
77
|
lastMessageId?: string;
|
|
58
78
|
peerId: string;
|
|
59
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* 🔴 AUD-009 — field maxima at the public boundary.
|
|
82
|
+
*
|
|
83
|
+
* Every one of these had a minimum and no maximum, so a single caller could inflate memory, JSON
|
|
84
|
+
* parsing, disk, stored history and every WebSocket fan-out at once. The values are deliberately
|
|
85
|
+
* GENEROUS: the goal is to bound the blast radius of abuse, not to police ordinary use. An agent
|
|
86
|
+
* relaying a long file listing or a large answer must keep working, which is why MESSAGE_MAX sits
|
|
87
|
+
* at 1 MiB rather than something tidy.
|
|
88
|
+
*/
|
|
89
|
+
export declare const FIELD_LIMITS: {
|
|
90
|
+
/** A shared channel secret. Long passphrases are fine; novels are not. */
|
|
91
|
+
readonly SECRET_MAX: 1024;
|
|
92
|
+
/** Org_ID. */
|
|
93
|
+
readonly ORG_ID_MAX: 256;
|
|
94
|
+
/** Peer identifier. */
|
|
95
|
+
readonly PEER_ID_MAX: 128;
|
|
96
|
+
/** Human-readable peer label. */
|
|
97
|
+
readonly PEER_LABEL_MAX: 256;
|
|
98
|
+
/** Working directory — comfortably above PATH_MAX (4096) on every platform we support. */
|
|
99
|
+
readonly CWD_MAX: 8192;
|
|
100
|
+
/** A single message body. */
|
|
101
|
+
readonly MESSAGE_MAX: 1048576;
|
|
102
|
+
/** One platform-identity value (e.g. a Slack user id). */
|
|
103
|
+
readonly PLATFORM_IDENTITY_VALUE_MAX: 512;
|
|
104
|
+
};
|
|
60
105
|
/**
|
|
61
106
|
* Schema for POST /api/sessions request body.
|
|
62
107
|
* Creates a new bridge session with a shared secret.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-requests.d.ts","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,8GAA8G;IAC9G,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2HAA2H;IAC3H,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;CAAG;AAEzC,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"api-requests.d.ts","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,29 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* 🔴 AUD-009 — field maxima at the public boundary.
|
|
4
|
+
*
|
|
5
|
+
* Every one of these had a minimum and no maximum, so a single caller could inflate memory, JSON
|
|
6
|
+
* parsing, disk, stored history and every WebSocket fan-out at once. The values are deliberately
|
|
7
|
+
* GENEROUS: the goal is to bound the blast radius of abuse, not to police ordinary use. An agent
|
|
8
|
+
* relaying a long file listing or a large answer must keep working, which is why MESSAGE_MAX sits
|
|
9
|
+
* at 1 MiB rather than something tidy.
|
|
10
|
+
*/
|
|
11
|
+
export const FIELD_LIMITS = {
|
|
12
|
+
/** A shared channel secret. Long passphrases are fine; novels are not. */
|
|
13
|
+
SECRET_MAX: 1024,
|
|
14
|
+
/** Org_ID. */
|
|
15
|
+
ORG_ID_MAX: 256,
|
|
16
|
+
/** Peer identifier. */
|
|
17
|
+
PEER_ID_MAX: 128,
|
|
18
|
+
/** Human-readable peer label. */
|
|
19
|
+
PEER_LABEL_MAX: 256,
|
|
20
|
+
/** Working directory — comfortably above PATH_MAX (4096) on every platform we support. */
|
|
21
|
+
CWD_MAX: 8192,
|
|
22
|
+
/** A single message body. */
|
|
23
|
+
MESSAGE_MAX: 1_048_576,
|
|
24
|
+
/** One platform-identity value (e.g. a Slack user id). */
|
|
25
|
+
PLATFORM_IDENTITY_VALUE_MAX: 512,
|
|
26
|
+
};
|
|
2
27
|
// --- Zod schemas (source of truth) ---
|
|
3
28
|
/**
|
|
4
29
|
* Schema for POST /api/sessions request body.
|
|
@@ -7,8 +32,8 @@ import { z } from "zod";
|
|
|
7
32
|
export const CreateSessionRequestSchema = z
|
|
8
33
|
.object({
|
|
9
34
|
label: z.string().regex(/^[a-z0-9][a-z0-9-]{1,30}[a-z0-9]$/).optional().describe("Optional human-readable session label (3-32 lowercase alphanumeric + hyphens)"),
|
|
10
|
-
secret: z.string().min(8).describe("Shared secret for joining the session (min 8 chars)"),
|
|
11
|
-
orgId: z.string().min(1).optional().describe("Optional Org_ID -- gates the channel to Business Edition orgs (multi-tenant relay only)"),
|
|
35
|
+
secret: z.string().min(8).max(FIELD_LIMITS.SECRET_MAX).describe("Shared secret for joining the session (min 8 chars)"),
|
|
36
|
+
orgId: z.string().min(1).max(FIELD_LIMITS.ORG_ID_MAX).optional().describe("Optional Org_ID -- gates the channel to Business Edition orgs (multi-tenant relay only)"),
|
|
12
37
|
})
|
|
13
38
|
.strict();
|
|
14
39
|
/**
|
|
@@ -38,13 +63,14 @@ export const ResolveSessionRequestSchema = z
|
|
|
38
63
|
*/
|
|
39
64
|
export const RegisterPeerRequestSchema = z
|
|
40
65
|
.object({
|
|
41
|
-
peerId: z.string().min(1).describe("Unique peer identifier"),
|
|
42
|
-
|
|
43
|
-
|
|
66
|
+
peerId: z.string().min(1).max(FIELD_LIMITS.PEER_ID_MAX).describe("Unique peer identifier"),
|
|
67
|
+
peerSecret: z.string().min(1).max(256).optional().describe("AUD-003: proof of ownership when reclaiming a peer from a different token"),
|
|
68
|
+
cwd: z.string().max(FIELD_LIMITS.CWD_MAX).describe("Peer working directory path"),
|
|
69
|
+
label: z.string().max(FIELD_LIMITS.PEER_LABEL_MAX).describe("Human-readable peer label"),
|
|
44
70
|
platform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini"]).optional().describe("Platform this peer belongs to"),
|
|
45
71
|
type: z.enum(["agent", "human"]).optional().describe("Peer type"),
|
|
46
72
|
transport: z.enum(["ws", "slack-bot", "gchat-bot", "websocket"]).optional().describe("Transport mechanism"),
|
|
47
|
-
platformIdentity: z.record(z.string(), z.string()).optional().describe("Platform-specific identity fields"),
|
|
73
|
+
platformIdentity: z.record(z.string().max(64), z.string().max(FIELD_LIMITS.PLATFORM_IDENTITY_VALUE_MAX)).optional().describe("Platform-specific identity fields"),
|
|
48
74
|
role: z.string().max(64).optional().describe("A2A role advertised by this peer (Agent Card)"),
|
|
49
75
|
capabilities: z.array(z.string().max(64)).max(16).optional().describe("Capability strings → A2A Agent Card skills[]"),
|
|
50
76
|
})
|
|
@@ -64,8 +90,11 @@ export const SendMessageRequestSchema = z
|
|
|
64
90
|
.object({
|
|
65
91
|
fromPeerId: z.string().min(1).describe("Sender peer ID"),
|
|
66
92
|
toPeerId: z.string().min(1).describe("Recipient peer ID (use '*' for broadcast)"),
|
|
67
|
-
message: z.string().min(1).describe("Message content"),
|
|
93
|
+
message: z.string().min(1).max(FIELD_LIMITS.MESSAGE_MAX).describe("Message content"),
|
|
68
94
|
originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini"]).optional().describe("Platform originating this message"),
|
|
95
|
+
success: z.boolean().optional().describe("Delivery outcome as reported by the sender"),
|
|
96
|
+
error: z.string().nullable().optional().describe("Failure code as reported by the sender"),
|
|
97
|
+
durationMs: z.number().int().nonnegative().nullable().optional().describe("Sender-measured duration"),
|
|
69
98
|
})
|
|
70
99
|
.strict();
|
|
71
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-requests.js","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"api-requests.js","sourceRoot":"","sources":["../../src/schemas/api-requests.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CreateSessionRequestSchema, type CreateSessionRequest, JoinSessionRequestSchema, type JoinSessionRequest, ResolveSessionRequestSchema, type ResolveSessionRequest, RegisterPeerRequestSchema, type RegisterPeerRequest, DeregisterPeerRequestSchema, type DeregisterPeerRequest, SendMessageRequestSchema, type SendMessageRequest, GetHistoryQuerySchema, type GetHistoryQuery, PollQuerySchema, type PollQuery, } from "./api-requests.js";
|
|
1
|
+
export { CreateSessionRequestSchema, type CreateSessionRequest, JoinSessionRequestSchema, type JoinSessionRequest, ResolveSessionRequestSchema, type ResolveSessionRequest, RegisterPeerRequestSchema, type RegisterPeerRequest, DeregisterPeerRequestSchema, type DeregisterPeerRequest, SendMessageRequestSchema, type SendMessageRequest, GetHistoryQuerySchema, type GetHistoryQuery, PollQuerySchema, type PollQuery, FIELD_LIMITS, } from "./api-requests.js";
|
|
2
2
|
export { CreateSessionResponseSchema, type CreateSessionResponse, JoinSessionResponseSchema, type JoinSessionResponse, RegisterPeerResponseSchema, ListPeersResponseSchema, type ListPeersResponse, SendMessageResponseSchema, type SendMessageResponse, GetHistoryResponseSchema, type GetHistoryResponse, HealthResponseSchema, type HealthResponse, PeerEventSchema, type PeerEvent, PollResponseSchema, type PollResponse, ErrorResponseSchema, } from "./api-responses.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,SAAS,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,KAAK,cAAc,EACnB,eAAe,EACf,KAAK,SAAS,EACd,kBAAkB,EAClB,KAAK,YAAY,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CreateSessionRequestSchema, JoinSessionRequestSchema, ResolveSessionRequestSchema, RegisterPeerRequestSchema, DeregisterPeerRequestSchema, SendMessageRequestSchema, GetHistoryQuerySchema, PollQuerySchema, } from "./api-requests.js";
|
|
1
|
+
export { CreateSessionRequestSchema, JoinSessionRequestSchema, ResolveSessionRequestSchema, RegisterPeerRequestSchema, DeregisterPeerRequestSchema, SendMessageRequestSchema, GetHistoryQuerySchema, PollQuerySchema, FIELD_LIMITS, } from "./api-requests.js";
|
|
2
2
|
export { CreateSessionResponseSchema, JoinSessionResponseSchema, RegisterPeerResponseSchema, ListPeersResponseSchema, SendMessageResponseSchema, GetHistoryResponseSchema, HealthResponseSchema, PeerEventSchema, PollResponseSchema, ErrorResponseSchema, } from "./api-responses.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAE1B,wBAAwB,EAExB,2BAA2B,EAE3B,yBAAyB,EAEzB,2BAA2B,EAE3B,wBAAwB,EAExB,qBAAqB,EAErB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAE1B,wBAAwB,EAExB,2BAA2B,EAE3B,yBAAyB,EAEzB,2BAA2B,EAE3B,wBAAwB,EAExB,qBAAqB,EAErB,eAAe,EAEf,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAE3B,yBAAyB,EAEzB,0BAA0B,EAC1B,uBAAuB,EAEvB,yBAAyB,EAEzB,wBAAwB,EAExB,oBAAoB,EAEpB,eAAe,EAEf,kBAAkB,EAElB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
|
package/dist/types/message.d.ts
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Cogent Mail M2.5 — an attachment REFERENCE carried on the wire (the byte transport is
|
|
4
|
+
* email; this is the reference layer). Either a public `url` (Discord/public links) OR a
|
|
5
|
+
* `mailMessageId` the recipient fetches with `cogent_fetch_mail`. `name`/`mimeType`/`size`
|
|
6
|
+
* are descriptive. Additive + optional → no-attachment messages are byte-for-byte unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export interface Attachment {
|
|
9
|
+
/** Fetchable ref: a public URL (pass-through) — mutually informative with mailMessageId. */
|
|
10
|
+
url?: string;
|
|
11
|
+
/** Fetchable ref: an IMAP message-id in the recipient's mailbox (fetch via cogent_fetch_mail). */
|
|
12
|
+
mailMessageId?: string;
|
|
13
|
+
/** Display name / filename. */
|
|
14
|
+
name?: string;
|
|
15
|
+
/** MIME type, e.g. "image/png". */
|
|
16
|
+
mimeType?: string;
|
|
17
|
+
/** Size in bytes, if known. */
|
|
18
|
+
size?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare const AttachmentSchema: z.ZodType<Attachment>;
|
|
2
21
|
/** Output shape for MessageRecord schema -- used for isolatedDeclarations compatibility. */
|
|
3
22
|
export interface MessageRecord {
|
|
4
23
|
id: string;
|
|
@@ -9,9 +28,19 @@ export interface MessageRecord {
|
|
|
9
28
|
timestamp: string;
|
|
10
29
|
durationMs: number | null;
|
|
11
30
|
success: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* A directed send that was delivered and acknowledged, but whose reply had not arrived within
|
|
33
|
+
* the fast-path window. `success: true` with `response: null` and `pending: true` means "the
|
|
34
|
+
* answer is still coming"; the same record WITHOUT pending means "nothing came back". Before
|
|
35
|
+
* 2026-09-03 the relay accepted this field on PATCH and silently dropped it, so history could
|
|
36
|
+
* not tell those two apart (AUD-005).
|
|
37
|
+
*/
|
|
38
|
+
pending?: boolean;
|
|
12
39
|
error: string | null;
|
|
13
40
|
/** Platform that originated this message -- used for echo suppression in multi-platform sessions. */
|
|
14
41
|
originPlatform?: "cc" | "codex" | "slack" | "gchat" | "web" | "gemini" | "whatsapp" | "telegram" | "discord";
|
|
42
|
+
/** Cogent Mail M2.5 — file REFERENCES (byte transport = email). Optional/additive. */
|
|
43
|
+
attachments?: Attachment[];
|
|
15
44
|
}
|
|
16
45
|
/**
|
|
17
46
|
* MessageRecord schema -- describes a message exchanged between peers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qGAAqG;IACrG,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAQiC,CAAC;AAErF,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qGAAqG;IACrG,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7G,sFAAsF;IACtF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAavD,CAAC"}
|
package/dist/types/message.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
export const AttachmentSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
url: z.string().optional().describe("Public/fetchable URL reference"),
|
|
5
|
+
mailMessageId: z.string().optional().describe("IMAP message-id in the recipient mailbox"),
|
|
6
|
+
name: z.string().optional().describe("Display name / filename"),
|
|
7
|
+
mimeType: z.string().optional().describe("MIME type"),
|
|
8
|
+
size: z.number().int().nonnegative().optional().describe("Size in bytes"),
|
|
9
|
+
})
|
|
10
|
+
.describe("A file reference carried alongside a message (byte transport = email)");
|
|
2
11
|
/**
|
|
3
12
|
* MessageRecord schema -- describes a message exchanged between peers.
|
|
4
13
|
* Migrated from cogent-bridge src/types.ts MessageRecord interface.
|
|
@@ -12,7 +21,9 @@ export const MessageRecordSchema = z.object({
|
|
|
12
21
|
timestamp: z.string().datetime().describe("ISO 8601 message timestamp"),
|
|
13
22
|
durationMs: z.number().nullable().describe("Round-trip duration in ms"),
|
|
14
23
|
success: z.boolean().describe("Whether delivery succeeded"),
|
|
24
|
+
pending: z.boolean().optional().describe("Delivered+acked; the reply is still expected"),
|
|
15
25
|
error: z.string().nullable().describe("Error message if delivery failed"),
|
|
16
26
|
originPlatform: z.enum(["cc", "codex", "slack", "gchat", "web", "gemini", "whatsapp", "telegram", "discord"]).optional().describe("Platform that originated this message"),
|
|
27
|
+
attachments: z.array(AttachmentSchema).optional().describe("Cogent Mail M2.5 — file references (byte transport = email)"),
|
|
17
28
|
});
|
|
18
29
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB,MAAM,CAAC,MAAM,gBAAgB,GAA0B,CAAC;KACrD,MAAM,CAAC;IACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;CAC1E,CAAC;KACD,QAAQ,CAAC,uEAAuE,CAAC,CAAC;AA2BrF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA6B,CAAC,CAAC,MAAM,CAAC;IACpE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACzE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC1K,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;CAC1H,CAAC,CAAC"}
|