memax-sdk 0.7.0-alpha.170 → 0.7.0-alpha.186

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.
Files changed (45) hide show
  1. package/README.md +48 -0
  2. package/dist/client.d.ts +6 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +8 -1
  5. package/dist/client.js.map +1 -1
  6. package/dist/index.d.ts +11 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +10 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/resources/auth.d.ts +55 -5
  11. package/dist/resources/auth.d.ts.map +1 -1
  12. package/dist/resources/auth.js +128 -8
  13. package/dist/resources/auth.js.map +1 -1
  14. package/dist/transport.d.ts +41 -5
  15. package/dist/transport.d.ts.map +1 -1
  16. package/dist/transport.js +166 -0
  17. package/dist/transport.js.map +1 -1
  18. package/dist/types.d.ts +160 -24
  19. package/dist/types.d.ts.map +1 -1
  20. package/dist/types.js.map +1 -1
  21. package/dist/v2/export.d.ts +310 -0
  22. package/dist/v2/export.d.ts.map +1 -0
  23. package/dist/v2/export.js +517 -0
  24. package/dist/v2/export.js.map +1 -0
  25. package/dist/v2/resources.d.ts +831 -0
  26. package/dist/v2/resources.d.ts.map +1 -0
  27. package/dist/v2/resources.js +1269 -0
  28. package/dist/v2/resources.js.map +1 -0
  29. package/dist/v2/schema.gen.d.ts +10594 -0
  30. package/dist/v2/schema.gen.d.ts.map +1 -0
  31. package/dist/v2/schema.gen.js +7 -0
  32. package/dist/v2/schema.gen.js.map +1 -0
  33. package/dist/v2/sse.d.ts +31 -0
  34. package/dist/v2/sse.d.ts.map +1 -0
  35. package/dist/v2/sse.js +151 -0
  36. package/dist/v2/sse.js.map +1 -0
  37. package/dist/v2/types.d.ts +375 -0
  38. package/dist/v2/types.d.ts.map +1 -0
  39. package/dist/v2/types.js +2 -0
  40. package/dist/v2/types.js.map +1 -0
  41. package/dist/v2/verify.d.ts +96 -0
  42. package/dist/v2/verify.d.ts.map +1 -0
  43. package/dist/v2/verify.js +375 -0
  44. package/dist/v2/verify.js.map +1 -0
  45. package/package.json +3 -1
package/README.md CHANGED
@@ -79,6 +79,54 @@ for (const c of citations) {
79
79
  - **Typed errors** — `MemaxError` with `code`, `status`, `retryable` for clean client handling
80
80
  - **Runtime-portable** — works wherever `fetch` works
81
81
 
82
+ ## V2 API (preview)
83
+
84
+ `memax.v2` talks to the `/v2` API, the V2 record: every change is a
85
+ command with a receipt, agents propose and people keep. Its types are
86
+ generated from the API contract and live under the `V2` namespace.
87
+
88
+ ```ts
89
+ import { Memax, refusalOf, type V2 } from "memax-sdk";
90
+
91
+ const memax = new Memax({ apiKey: process.env.MEMAX_API_KEY });
92
+
93
+ // Commands need an Idempotency-Key: choose one per intent, reuse it on retry.
94
+ const res: V2.CommandResult = await memax.v2.memories.remember(
95
+ "memax-v2", // space id or slug
96
+ { statement: "River is our queue, not Kafka.", section: "decisions" },
97
+ { idempotencyKey: crypto.randomUUID() },
98
+ );
99
+ res.outcome; // "applied" for a member or owner, "proposed" for an API key
100
+
101
+ // Display IDs repeat across tenants, so they travel with their space.
102
+ const { memory, versions, receipts } = await memax.v2.memories.get("M-0219", {
103
+ space: "memax-v2",
104
+ });
105
+
106
+ // Edits send the version they started from; a newer one is 412 edit_clash.
107
+ await memax.v2.memories.edit(
108
+ memory.id,
109
+ { statement: "River is our only queue." },
110
+ { idempotencyKey: crypto.randomUUID(), ifMatch: memory.version },
111
+ );
112
+
113
+ try {
114
+ await memax.v2.memories.keep(
115
+ "M-0220",
116
+ {},
117
+ { space: "memax-v2", idempotencyKey: crypto.randomUUID() },
118
+ );
119
+ } catch (err) {
120
+ refusalOf(err)?.code; // "person_must_review": API keys never keep
121
+ }
122
+
123
+ const queue = await memax.v2.review.list("memax-v2"); // queue.total waiting
124
+ const activity = await memax.v2.receipts.list("memax-v2", { limit: 50 });
125
+ ```
126
+
127
+ The types are regenerated from `packages/server/openapi/v2.yaml` with
128
+ `pnpm --filter memax-sdk gen:v2`; `pnpm lint` fails when they are stale.
129
+
82
130
  ## Authentication
83
131
 
84
132
  Get an API key at [memax.app → Settings → API Keys](https://memax.app/settings/api-keys). For browser / user-session auth (OAuth flow), pass a bearer token instead:
package/dist/client.d.ts CHANGED
@@ -17,6 +17,7 @@ import { AccountResource } from "./resources/account.js";
17
17
  import { EventsResource } from "./resources/events.js";
18
18
  import { BarResource } from "./resources/bar.js";
19
19
  import { ChatsResource } from "./resources/chats.js";
20
+ import { V2Resource } from "./v2/resources.js";
20
21
  export declare class Memax {
21
22
  readonly memories: MemoriesResource;
22
23
  readonly configs: ConfigsResource;
@@ -36,6 +37,11 @@ export declare class Memax {
36
37
  readonly events: EventsResource;
37
38
  readonly bar: BarResource;
38
39
  readonly chats: ChatsResource;
40
+ /**
41
+ * The /v2 API: the V2 record (spaces, memories, Review, receipts).
42
+ * Types are under the `V2` namespace export.
43
+ */
44
+ readonly v2: V2Resource;
39
45
  constructor(config: MemaxConfig);
40
46
  push(...args: Parameters<MemoriesResource["push"]>): Promise<import("./types.js").Memory>;
41
47
  recall(...args: Parameters<MemoriesResource["recall"]>): Promise<import("./types.js").RecallResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,qBAAa,KAAK;IAChB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;gBAElB,MAAM,EAAE,WAAW;IA+BzB,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAIlD,MAAM,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAItD,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAGvD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,qBAAa,KAAK;IAChB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;gBAEZ,MAAM,EAAE,WAAW;IAgCzB,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAIlD,MAAM,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAItD,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAGvD"}
package/dist/client.js CHANGED
@@ -17,6 +17,7 @@ import { AccountResource } from "./resources/account.js";
17
17
  import { EventsResource } from "./resources/events.js";
18
18
  import { BarResource } from "./resources/bar.js";
19
19
  import { ChatsResource } from "./resources/chats.js";
20
+ import { V2Resource } from "./v2/resources.js";
20
21
  export class Memax {
21
22
  memories;
22
23
  configs;
@@ -36,6 +37,11 @@ export class Memax {
36
37
  events;
37
38
  bar;
38
39
  chats;
40
+ /**
41
+ * The /v2 API: the V2 record (spaces, memories, Review, receipts).
42
+ * Types are under the `V2` namespace export.
43
+ */
44
+ v2;
39
45
  constructor(config) {
40
46
  const transport = new ApiTransport(config);
41
47
  const req = transport.request.bind(transport);
@@ -49,7 +55,7 @@ export class Memax {
49
55
  this.memories = new MemoriesResource(req, stream, download);
50
56
  this.configs = new ConfigsResource(req);
51
57
  this.uploads = new UploadsResource(req);
52
- this.auth = new AuthResource(req, apiUrl);
58
+ this.auth = new AuthResource(req, apiUrl, transport.form.bind(transport));
53
59
  this.account = new AccountResource(req);
54
60
  this.hubs = new HubsResource(req);
55
61
  this.invites = new InvitesResource(req);
@@ -64,6 +70,7 @@ export class Memax {
64
70
  this.events = new EventsResource(stream);
65
71
  this.bar = new BarResource(req);
66
72
  this.chats = new ChatsResource(req, stream);
73
+ this.v2 = new V2Resource(req, transport.open.bind(transport));
67
74
  }
68
75
  async push(...args) {
69
76
  return this.memories.push(...args);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,5 +6,15 @@ export type { Item, ChecklistItem, DigestItem, ItemProgress, PinContext, Checkli
6
6
  export { SUPER_NOTIF_KINDS } from "./notifications/items.js";
7
7
  export { actionToResolution, resolveFromAction, } from "./notifications/action-to-resolution.js";
8
8
  export { MemaxError } from "./errors.js";
9
- export type { MemaxConfig, AuthProvider, PushOptions, RecallOptions, AskOptions, ListMemoriesOptions, HubUpdateParams, MemoryKind, MemoryStability, Memory, MemoryAttachment, AttachmentViewURL, MemoryLifecycle, MemoryUpdateInput, DreamActionRef, DreamTopicRef, ShareMemoryResult, BatchMoveResult, BatchAttributeResult, BatchMoveSkippedMemory, BatchMoveSkipReason, BatchDeleteResult, BatchDeleteSkippedMemory, BatchDeleteSkipReason, AgentConfigBatchDeleteResult, AgentConfigDeleteSkippedItem, AgentConfigDeleteSkipReason, RelatedMemory, RecalledMemory, RecallResult, SearchResult, BarSearchResult, BarTopicMatch, BarHubMatch, AskResult, ListMemoriesResult, Scope, AgentConfigClass, AgentConfig, Persona, PersonaRevision, PersonaRestoreResult, BoardKind, BoardStatus, BoardSlotState, BoardSlotAction, BoardFeedbackVerdict, Board, BoardSlotResolution, BoardSlot, BoardSlotVersion, BoardWithSlots, AgentConfigListResult, DeletedAgentConfig, SyncAction, SyncPlanAction, SyncManifestEntry, ConfigSyncRequest, AgentConfigSyncAck, ConfigSyncAckRequest, ConfigLocalDeleteRequest, RestoreDeletedConfigRequest, ConfigUpsertRequest, ConfigMergeRequest, UploadIntent, AuthProviderName, User, MeResponse, AuthTokenPair, ImpersonationResult, AuthIdentity, UnlinkProviderResult, RequestEmailOtpOptions, RequestEmailOtpResponse, VerifyEmailOtpOptions, VerifyEmailOtpResponse, ApiKeyCreateOptions, ApiKey, ApiKeyListItem, UpdateApiKeyPayload, UpdateApiKeyResult, OAuthConsentHub, OAuthConsentPermission, OAuthConsentRequest, UpdateProfileResult, DeleteAllDataResult, Hub, HubSettings, HubSettingsInput, HubWithRole, HubMember, HubInvite, HubInviteeInput, HubOwnershipTransfer, HubDetailResult, HubSummary, HubSummaryStats, HubSummaryHeader, HubSummaryMember, HubAccent, HubRole, HubType, HubHeaderState, HubHeaderAuroraMode, HubTimeBucket, HubGreetingKey, ContributorDeletePolicy, InviteDetails, InviteAcceptResult, DevFlagsSettings, Settings, SettingsUpdateInput, Usage, UsageWithLimits, PlanScope, PlanDefinition, UserLimits, Topic, TopicLifecycle, TopicDeltaSummary, TopicTree, TopicListResponse, TopicArchivedListResponse, TopicArchiveResult, TopicCreateParams, TopicUpdateParams, TopicUpdateErrorCode, TopicReorderOperation, TopicMemoriesResponse, DreamRun, DreamAction, DreamLatestRunSummary, DreamPendingReviewSummary, DreamIntelligenceSummary, DreamReport, DreamRunListOptions, DreamRunListResponse, DreamUsage, DreamUsageOptions, ReviewTopicMergePayload, ReviewTopicRestructurePayload, ReviewTopicRef, Notification, NotificationAudience, NotificationStatus, NotificationResolution, NotificationKind, NeedsActionNotificationKind, UpdateNotificationKind, NotificationKindCount, NotificationSummary, NotificationListQuery, NotificationListResponse, NotificationBulkQuery, NotificationBulkResult, NotificationResolveAction, NotificationResolveResult, ReviewContradictionPayload, ReviewMemoryRef, DreamRunCompletedPayload, DreamRunCounts, HubInvitePayload, HubInviteHubRef, HubInviteInviterRef, HubMemberJoinedPayload, HubMemberRef, HubInviteAcceptedPayload, HubInviteDeclinedPayload, HubInviteDeclinedByYouPayload, HubOwnershipTransferPayload, HubOwnershipTransferredPayload, SystemNoticePayload, GiftInviteLinkPayload, ConnectedAgent, ConnectedAgentWithStats, ConnectedAgentUpdate, DisconnectAgentResult, AgentDisconnectSkipReason, AgentDisconnectSkippedItem, ApiKeyRevokeResult, ApiKeyRevokeSkipReason, ApiKeyRevokeSkippedItem, ChatScopeType, ChatSessionStatus, ChatMessageRole, ChatMessageStatus, ChatSession, ChatMessage, ChatToolDescriptor, CreateChatSessionInput, PatchChatSessionInput, ListChatSessionsOptions, ListChatSessionsResult, ListChatMessagesOptions, ListChatMessagesResult, ChatTurnOutcome, SendChatMessageInput, SendChatMessageResult, CancelChatMessageResult, RegenerateChatMessageResult, DecideApprovalResult, ChatStreamOptions, ChatStreamEventName, } from "./types.js";
9
+ export * as V2 from "./v2/types.js";
10
+ export { V2Resource, V2SpacesResource, V2MemoriesResource, V2ReviewResource, V2ReceiptsResource, V2ReadsResource, V2AgentsResource, V2BriefsResource, V2TargetsResource, V2GatesResource, V2NoticesResource, V2SessionsResource, V2DreamResource, V2SettingsResource, V2AccountResource, V2PasskeysResource, undoableAction, refusalOf, forgetCarriesOf, askEventOf, } from "./v2/resources.js";
11
+ export { EventStreamParser, readEventStream } from "./v2/sse.js";
12
+ export type { ServerSentEvent } from "./v2/sse.js";
13
+ export { verifyReceiptChain, canonicalReceipt, checkpointStatement, receiptLeaf, genesisHash, merkleRoot, } from "./v2/verify.js";
14
+ export type { ChainReceipt, ChainReport, ChainProblem, ChainProblemKind, ChainCrypto, VerifyChainInput, } from "./v2/verify.js";
15
+ export { EXPORT_FORMAT, ExportFormatError, parseExport, parseFrontmatter, parseReceipts, splitDocument, verifyExport, } from "./v2/export.js";
16
+ export type { ExportFiles, ExportManifest, ExportManifestFile, ExportCheckpoints, ExportReceiptStamp, ExportedMemory, ExportedTombstone, ExportedBrief, ParsedExport, ExportProblem, ExportProblemKind, ExportReport, VerifyExportInput, } from "./v2/export.js";
17
+ export type { CommandOptions as V2CommandOptions, MemoryRefOptions as V2MemoryRefOptions, ReviewOptions as V2ReviewOptions, EditOptions as V2EditOptions, PageOptions as V2PageOptions, VersionedCommandOptions as V2VersionedCommandOptions, ListMemoriesOptions as V2ListMemoriesOptions, ListReceiptsOptions as V2ListReceiptsOptions, GetMemoryOptions as V2GetMemoryOptions, ListGatesOptions as V2ListGatesOptions, GateRefOptions as V2GateRefOptions, GateCommandOptions as V2GateCommandOptions, AskOptions as V2AskOptions, SpaceExport as V2SpaceExport, SettingsEditOptions as V2SettingsEditOptions, SessionCommandOptions as V2SessionCommandOptions, AccountCommandOptions as V2AccountCommandOptions, } from "./v2/resources.js";
18
+ export { passkeyCheckOf, encodePasskeyAnswer } from "./transport.js";
19
+ export type { MemaxConfig, AuthProvider, PasskeyCheck, PasskeyCheckHandler, PushOptions, RecallOptions, AskOptions, ListMemoriesOptions, HubUpdateParams, MemoryKind, MemoryStability, Memory, MemoryAttachment, AttachmentViewURL, MemoryLifecycle, MemoryUpdateInput, DreamActionRef, DreamTopicRef, ShareMemoryResult, BatchMoveResult, BatchAttributeResult, BatchMoveSkippedMemory, BatchMoveSkipReason, BatchDeleteResult, BatchDeleteSkippedMemory, BatchDeleteSkipReason, AgentConfigBatchDeleteResult, AgentConfigDeleteSkippedItem, AgentConfigDeleteSkipReason, RelatedMemory, RecalledMemory, RecallResult, SearchResult, BarSearchResult, BarTopicMatch, BarHubMatch, AskResult, ListMemoriesResult, Scope, AgentConfigClass, AgentConfig, Persona, PersonaRevision, PersonaRestoreResult, BoardKind, BoardStatus, BoardSlotState, BoardSlotAction, BoardFeedbackVerdict, Board, BoardSlotResolution, BoardSlot, BoardSlotVersion, BoardWithSlots, AgentConfigListResult, DeletedAgentConfig, SyncAction, SyncPlanAction, SyncManifestEntry, ConfigSyncRequest, AgentConfigSyncAck, ConfigSyncAckRequest, ConfigLocalDeleteRequest, RestoreDeletedConfigRequest, ConfigUpsertRequest, ConfigMergeRequest, UploadIntent, AuthProviderName, User, MeResponse, WebUi, AuthTokenPair, ExchangedTokens, DeviceSignIn, DeviceSignInOptions, DeviceSignInPoll, ImpersonationResult, AuthIdentity, UnlinkProviderResult, RequestEmailOtpOptions, RequestEmailOtpResponse, VerifyEmailOtpOptions, VerifyEmailOtpResponse, ApiKeyCreateOptions, ApiKey, ApiKeyListItem, UpdateApiKeyPayload, UpdateApiKeyResult, OAuthAutonomy, OAuthDecision, OAuthDecisionInput, OAuthRequest, OAuthRequestSpace, OAuthConsentTarget, UpdateProfileResult, DeleteAllDataResult, Hub, HubSettings, HubSettingsInput, HubWithRole, HubMember, HubInvite, HubInviteeInput, HubOwnershipTransfer, HubDetailResult, HubSummary, HubSummaryStats, HubSummaryHeader, HubSummaryMember, HubAccent, HubRole, HubType, HubHeaderState, HubHeaderAuroraMode, HubTimeBucket, HubGreetingKey, ContributorDeletePolicy, InviteDetails, InviteAcceptResult, DevFlagsSettings, Settings, SettingsUpdateInput, Usage, UsageWithLimits, PlanScope, PlanDefinition, UserLimits, Topic, TopicLifecycle, TopicDeltaSummary, TopicTree, TopicListResponse, TopicArchivedListResponse, TopicArchiveResult, TopicCreateParams, TopicUpdateParams, TopicUpdateErrorCode, TopicReorderOperation, TopicMemoriesResponse, DreamRun, DreamAction, DreamLatestRunSummary, DreamPendingReviewSummary, DreamIntelligenceSummary, DreamReport, DreamRunListOptions, DreamRunListResponse, DreamUsage, DreamUsageOptions, ReviewTopicMergePayload, ReviewTopicRestructurePayload, ReviewTopicRef, Notification, NotificationAudience, NotificationStatus, NotificationResolution, NotificationKind, NeedsActionNotificationKind, UpdateNotificationKind, NotificationKindCount, NotificationSummary, NotificationListQuery, NotificationListResponse, NotificationBulkQuery, NotificationBulkResult, NotificationResolveAction, NotificationResolveResult, ReviewContradictionPayload, ReviewMemoryRef, DreamRunCompletedPayload, DreamRunCounts, HubInvitePayload, HubInviteHubRef, HubInviteInviterRef, HubMemberJoinedPayload, HubMemberRef, HubInviteAcceptedPayload, HubInviteDeclinedPayload, HubInviteDeclinedByYouPayload, HubOwnershipTransferPayload, HubOwnershipTransferredPayload, SystemNoticePayload, GiftInviteLinkPayload, ConnectedAgent, ConnectedAgentWithStats, ConnectedAgentUpdate, DisconnectAgentResult, AgentDisconnectSkipReason, AgentDisconnectSkippedItem, ApiKeyRevokeResult, ApiKeyRevokeSkipReason, ApiKeyRevokeSkippedItem, ChatScopeType, ChatSessionStatus, ChatMessageRole, ChatMessageStatus, ChatSession, ChatMessage, ChatToolDescriptor, CreateChatSessionInput, PatchChatSessionInput, ListChatSessionsOptions, ListChatSessionsResult, ListChatMessagesOptions, ListChatMessagesResult, ChatTurnOutcome, SendChatMessageInput, SendChatMessageResult, CancelChatMessageResult, RegenerateChatMessageResult, DecideApprovalResult, ChatStreamOptions, ChatStreamEventName, } from "./types.js";
10
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,4 +9,14 @@ export { actionToResolution, resolveFromAction, } from "./notifications/action-t
9
9
  // Admin APIs are an internal, web-only surface and are intentionally not
10
10
  // exported by this public SDK.
11
11
  export { MemaxError } from "./errors.js";
12
+ // /v2 — the V2 record. Types are generated from
13
+ // packages/server/openapi/v2.yaml; use them as `V2.Memory`, `V2.PolicyCode`…
14
+ // (`export * as`, not `export type * as`, so the .d.ts parses on
15
+ // TypeScript before 5.0; the module holds only types.)
16
+ export * as V2 from "./v2/types.js";
17
+ export { V2Resource, V2SpacesResource, V2MemoriesResource, V2ReviewResource, V2ReceiptsResource, V2ReadsResource, V2AgentsResource, V2BriefsResource, V2TargetsResource, V2GatesResource, V2NoticesResource, V2SessionsResource, V2DreamResource, V2SettingsResource, V2AccountResource, V2PasskeysResource, undoableAction, refusalOf, forgetCarriesOf, askEventOf, } from "./v2/resources.js";
18
+ export { EventStreamParser, readEventStream } from "./v2/sse.js";
19
+ export { verifyReceiptChain, canonicalReceipt, checkpointStatement, receiptLeaf, genesisHash, merkleRoot, } from "./v2/verify.js";
20
+ export { EXPORT_FORMAT, ExportFormatError, parseExport, parseFrontmatter, parseReceipts, splitDocument, verifyExport, } from "./v2/export.js";
21
+ export { passkeyCheckOf, encodePasskeyAnswer } from "./transport.js";
12
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,mEAAmE;AACnE,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAiBpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yCAAyC,CAAC;AACjD,yEAAyE;AACzE,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,mEAAmE;AACnE,gFAAgF;AAEhF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAiBpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yCAAyC,CAAC;AACjD,yEAAyE;AACzE,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,gDAAgD;AAChD,6EAA6E;AAC7E,iEAAiE;AACjE,uDAAuD;AACvD,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,eAAe,EACf,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,gBAAgB,CAAC;AASxB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,gBAAgB,CAAC;AAmCxB,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,9 +1,40 @@
1
- import type { ApiKey, ApiKeyCreateOptions, ApiKeyListItem, ApiKeyRevokeResult, AuthIdentity, AuthProviderName, AuthTokenPair, ImpersonationResult, MeResponse, OAuthConsentRequest, RequestEmailOtpOptions, RequestEmailOtpResponse, UnlinkProviderResult, UpdateApiKeyPayload, UpdateApiKeyResult, UpdateProfileResult, VerifyEmailOtpOptions, VerifyEmailOtpResponse } from "../types.js";
2
- import type { RequestFn } from "../transport.js";
1
+ import type { ApiKey, ApiKeyCreateOptions, ApiKeyListItem, ApiKeyRevokeResult, AuthIdentity, AuthProviderName, AuthTokenPair, DeviceSignIn, DeviceSignInOptions, DeviceSignInPoll, ExchangedTokens, ImpersonationResult, MeResponse, OAuthDecision, OAuthDecisionInput, OAuthRequest, RequestEmailOtpOptions, RequestEmailOtpResponse, UnlinkProviderResult, UpdateApiKeyPayload, UpdateApiKeyResult, UpdateProfileResult, VerifyEmailOtpOptions, VerifyEmailOtpResponse } from "../types.js";
2
+ import type { FormFn, RequestFn } from "../transport.js";
3
3
  export declare class AuthResource {
4
4
  private readonly req;
5
5
  private readonly apiUrl;
6
- constructor(req: RequestFn, apiUrl: string);
6
+ private readonly form?;
7
+ constructor(req: RequestFn, apiUrl: string, form?: FormFn | undefined);
8
+ /**
9
+ * Ask for a device code (RFC 8628 §3.1), for signing the memax CLI in
10
+ * where no browser can open. Show the person `userCode` and
11
+ * `verificationUri` (or open `verificationUriComplete`), then poll with
12
+ * {@link pollDeviceSignIn} every `interval` seconds until it ends.
13
+ * Throws MemaxError `rate_limited` (too many codes from this address),
14
+ * `invalid_client`, or the network's errors.
15
+ */
16
+ startDeviceSignIn(options?: DeviceSignInOptions): Promise<DeviceSignIn>;
17
+ /**
18
+ * Poll once for a device code's session (RFC 8628 §3.4). `pending` and
19
+ * `slow_down` mean keep polling (`slow_down`: 5 seconds longer between
20
+ * polls from now on); `signed_in` carries the person's CLI session, which
21
+ * the server issues once; `denied`, `expired` and `invalid` end it.
22
+ */
23
+ pollDeviceSignIn(deviceCode: string, options?: {
24
+ signal?: AbortSignal;
25
+ }): Promise<DeviceSignInPoll>;
26
+ /**
27
+ * Sign a session out (RFC 7009, `POST /oauth/revoke`): pass its refresh
28
+ * token, which ends the session even if that token was just replaced, or
29
+ * one of its access tokens. Its refresh token stops working at once, and
30
+ * the access tokens it minted within the hour. A token that names nothing
31
+ * succeeds too, so signing out twice is fine. Throws on a network error
32
+ * or a refusal (`invalid_request`, `rate_limited`).
33
+ */
34
+ revoke(token: string, options?: {
35
+ signal?: AbortSignal;
36
+ }): Promise<void>;
37
+ private oauthForm;
7
38
  me(): Promise<MeResponse>;
8
39
  createKey(options: ApiKeyCreateOptions): Promise<ApiKey>;
9
40
  listKeys(): Promise<ApiKeyListItem[]>;
@@ -28,8 +59,27 @@ export declare class AuthResource {
28
59
  updateKey(id: string, payload: UpdateApiKeyPayload): Promise<UpdateApiKeyResult>;
29
60
  updateProfile(displayName: string): Promise<UpdateProfileResult>;
30
61
  refresh(refreshToken: string): Promise<AuthTokenPair>;
31
- exchangeCode(code: string): Promise<AuthTokenPair>;
32
- getOAuthConsentRequest(requestId: string, consentToken: string): Promise<OAuthConsentRequest>;
62
+ /**
63
+ * Trades a sign-in's one-time code for its session. A session issued to
64
+ * the web app also says which web UI the person sees (`ui`).
65
+ */
66
+ exchangeCode(code: string): Promise<ExchangedTokens>;
67
+ /**
68
+ * An MCP client's pending authorization request (OAuthConsent), for the
69
+ * person signed in on the web: the first person to open it is bound to
70
+ * it, and anyone else gets 404. Needs a session the web app was issued.
71
+ */
72
+ openOAuthRequest(requestId: string): Promise<OAuthRequest>;
73
+ /**
74
+ * The bound person's answer: approve (one space) or deny. Answers where
75
+ * to send the browser: the client's registered redirect_uri with a code,
76
+ * or with access_denied.
77
+ */
78
+ decideOAuthRequest(requestId: string, decision: OAuthDecisionInput): Promise<OAuthDecision>;
79
+ /** "Not you?": the bound person lets go of the request. */
80
+ releaseOAuthRequest(requestId: string): Promise<{
81
+ released: boolean;
82
+ }>;
33
83
  githubLoginURL(redirectURI: string): string;
34
84
  googleLoginURL(redirectURI: string): string;
35
85
  providerLoginURL(provider: AuthProviderName, redirectURI: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM;IAG3B,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzB,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBxD,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI3C;;;;;;;;;OASG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWxD;;;;;;OAMG;IACG,SAAS,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAMxB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMhE,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAMrD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAMlD,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAS/B,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAezE;;;;;;;;;OASG;IACG,eAAe,CACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;;;;;;OASG;IACG,cAAc,CAClB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IASlC,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAIlE,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzC,cAAc,CAClB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAIhC,+FAA+F;IACzF,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAKjC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA0BrE,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAFL,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhC;;;;;;;OAOG;IACG,iBAAiB,CACrB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC;IA4BxB;;;;;OAKG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACrC,OAAO,CAAC,gBAAgB,CAAC;IAmC5B;;;;;;;OAOG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACrC,OAAO,CAAC,IAAI,CAAC;YAWF,SAAS;IAejB,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzB,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBxD,QAAQ,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI3C;;;;;;;;;OASG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWxD;;;;;;OAMG;IACG,SAAS,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAMxB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMhE,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAM3D;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAM1D;;;;OAIG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhE;;;;OAIG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,aAAa,CAAC;IAQzB,2DAA2D;IACrD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAO5E,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAezE;;;;;;;;;OASG;IACG,eAAe,CACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;;;;;;OASG;IACG,cAAc,CAClB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IASlC,eAAe,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAIlE,cAAc,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzC,cAAc,CAClB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAIhC,+FAA+F;IACzF,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAKjC"}
@@ -1,9 +1,113 @@
1
+ import { MemaxError } from "../errors.js";
2
+ /** An OAuth error answer as a MemaxError (`code` is OAuth's `error`). */
3
+ function oauthFailure(status, body, retryAfter) {
4
+ const code = status === 429
5
+ ? "rate_limited"
6
+ : typeof body.error === "string"
7
+ ? body.error
8
+ : "invalid_response";
9
+ const message = typeof body.error_description === "string"
10
+ ? body.error_description
11
+ : `The sign-in server answered ${status}.`;
12
+ return new MemaxError(message, code, status, undefined, retryAfter);
13
+ }
14
+ /** The memax CLI's OAuth client id; only it signs in with a device code. */
15
+ const DEVICE_CLIENT_ID = "memax-cli";
16
+ const DEVICE_GRANT = "urn:ietf:params:oauth:grant-type:device_code";
1
17
  export class AuthResource {
2
18
  req;
3
19
  apiUrl;
4
- constructor(req, apiUrl) {
20
+ form;
21
+ constructor(req, apiUrl, form) {
5
22
  this.req = req;
6
23
  this.apiUrl = apiUrl;
24
+ this.form = form;
25
+ }
26
+ /**
27
+ * Ask for a device code (RFC 8628 §3.1), for signing the memax CLI in
28
+ * where no browser can open. Show the person `userCode` and
29
+ * `verificationUri` (or open `verificationUriComplete`), then poll with
30
+ * {@link pollDeviceSignIn} every `interval` seconds until it ends.
31
+ * Throws MemaxError `rate_limited` (too many codes from this address),
32
+ * `invalid_client`, or the network's errors.
33
+ */
34
+ async startDeviceSignIn(options = {}) {
35
+ const { status, body, retryAfter } = await this.oauthForm("/oauth/device_authorization", {
36
+ client_id: DEVICE_CLIENT_ID,
37
+ client_version: options.clientVersion,
38
+ device_name: options.deviceName,
39
+ device_os: options.deviceOs,
40
+ space: options.space,
41
+ }, options.signal);
42
+ if (status !== 200 || typeof body.device_code !== "string") {
43
+ throw oauthFailure(status, body, retryAfter);
44
+ }
45
+ return {
46
+ deviceCode: body.device_code,
47
+ userCode: String(body.user_code ?? ""),
48
+ verificationUri: String(body.verification_uri ?? ""),
49
+ verificationUriComplete: typeof body.verification_uri_complete === "string"
50
+ ? body.verification_uri_complete
51
+ : undefined,
52
+ expiresIn: Number(body.expires_in ?? 600),
53
+ interval: Math.max(1, Number(body.interval ?? 5)),
54
+ };
55
+ }
56
+ /**
57
+ * Poll once for a device code's session (RFC 8628 §3.4). `pending` and
58
+ * `slow_down` mean keep polling (`slow_down`: 5 seconds longer between
59
+ * polls from now on); `signed_in` carries the person's CLI session, which
60
+ * the server issues once; `denied`, `expired` and `invalid` end it.
61
+ */
62
+ async pollDeviceSignIn(deviceCode, options = {}) {
63
+ const { status, body, retryAfter } = await this.oauthForm("/oauth/token", {
64
+ grant_type: DEVICE_GRANT,
65
+ client_id: DEVICE_CLIENT_ID,
66
+ device_code: deviceCode,
67
+ }, options.signal);
68
+ if (status === 200 && typeof body.access_token === "string") {
69
+ return {
70
+ status: "signed_in",
71
+ tokens: {
72
+ access_token: body.access_token,
73
+ refresh_token: String(body.refresh_token ?? ""),
74
+ expires_in: Number(body.expires_in ?? 3600),
75
+ },
76
+ };
77
+ }
78
+ switch (body.error) {
79
+ case "authorization_pending":
80
+ return { status: "pending" };
81
+ case "slow_down":
82
+ return { status: "slow_down" };
83
+ case "access_denied":
84
+ return { status: "denied" };
85
+ case "expired_token":
86
+ return { status: "expired" };
87
+ case "invalid_grant":
88
+ return { status: "invalid" };
89
+ }
90
+ throw oauthFailure(status, body, retryAfter);
91
+ }
92
+ /**
93
+ * Sign a session out (RFC 7009, `POST /oauth/revoke`): pass its refresh
94
+ * token, which ends the session even if that token was just replaced, or
95
+ * one of its access tokens. Its refresh token stops working at once, and
96
+ * the access tokens it minted within the hour. A token that names nothing
97
+ * succeeds too, so signing out twice is fine. Throws on a network error
98
+ * or a refusal (`invalid_request`, `rate_limited`).
99
+ */
100
+ async revoke(token, options = {}) {
101
+ const { status, body, retryAfter } = await this.oauthForm("/oauth/revoke", { token }, options.signal);
102
+ if (status !== 200) {
103
+ throw oauthFailure(status, body, retryAfter);
104
+ }
105
+ }
106
+ async oauthForm(path, fields, signal) {
107
+ if (!this.form) {
108
+ throw new MemaxError("This client can't send OAuth forms.", "invalid_request", 0);
109
+ }
110
+ return this.form(path, fields, signal);
7
111
  }
8
112
  async me() {
9
113
  return this.req("GET", "/v1/auth/me");
@@ -65,18 +169,34 @@ export class AuthResource {
65
169
  body: { refresh_token: refreshToken },
66
170
  });
67
171
  }
172
+ /**
173
+ * Trades a sign-in's one-time code for its session. A session issued to
174
+ * the web app also says which web UI the person sees (`ui`).
175
+ */
68
176
  async exchangeCode(code) {
69
177
  return this.req("POST", "/v1/auth/exchange", {
70
178
  body: { code },
71
179
  });
72
180
  }
73
- async getOAuthConsentRequest(requestId, consentToken) {
74
- return this.req("GET", "/oauth/authorize/consent-request", {
75
- query: {
76
- request_id: requestId,
77
- consent_token: consentToken,
78
- },
79
- });
181
+ /**
182
+ * An MCP client's pending authorization request (OAuthConsent), for the
183
+ * person signed in on the web: the first person to open it is bound to
184
+ * it, and anyone else gets 404. Needs a session the web app was issued.
185
+ */
186
+ async openOAuthRequest(requestId) {
187
+ return this.req("GET", `/oauth/authorize/requests/${encodeURIComponent(requestId)}`);
188
+ }
189
+ /**
190
+ * The bound person's answer: approve (one space) or deny. Answers where
191
+ * to send the browser: the client's registered redirect_uri with a code,
192
+ * or with access_denied.
193
+ */
194
+ async decideOAuthRequest(requestId, decision) {
195
+ return this.req("POST", `/oauth/authorize/requests/${encodeURIComponent(requestId)}/decision`, { body: { ...decision } });
196
+ }
197
+ /** "Not you?": the bound person lets go of the request. */
198
+ async releaseOAuthRequest(requestId) {
199
+ return this.req("POST", `/oauth/authorize/requests/${encodeURIComponent(requestId)}/release`);
80
200
  }
81
201
  githubLoginURL(redirectURI) {
82
202
  return `${this.apiUrl}/v1/auth/github?redirect_uri=${encodeURIComponent(redirectURI)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/resources/auth.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,yEAAyE;AACzE,SAAS,YAAY,CACnB,MAAc,EACd,IAA6B,EAC7B,UAAmB;IAEnB,MAAM,IAAI,GACR,MAAM,KAAK,GAAG;QACZ,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAC9B,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,kBAAkB,CAAC;IAC3B,MAAM,OAAO,GACX,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ;QACxC,CAAC,CAAC,IAAI,CAAC,iBAAiB;QACxB,CAAC,CAAC,+BAA+B,MAAM,GAAG,CAAC;IAC/C,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACtE,CAAC;AAED,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,YAAY,GAAG,8CAA8C,CAAC;AAEpE,MAAM,OAAO,YAAY;IAEJ;IACA;IACA;IAHnB,YACmB,GAAc,EACd,MAAc,EACd,IAAa;QAFb,QAAG,GAAH,GAAG,CAAW;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;IAC7B,CAAC;IAEJ;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,UAA+B,EAAE;QAEjC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CACvD,6BAA6B,EAC7B;YACE,SAAS,EAAE,gBAAgB;YAC3B,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,WAAW,EAAE,OAAO,CAAC,UAAU;YAC/B,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,EACD,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3D,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;YACtC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;YACpD,uBAAuB,EACrB,OAAO,IAAI,CAAC,yBAAyB,KAAK,QAAQ;gBAChD,CAAC,CAAC,IAAI,CAAC,yBAAyB;gBAChC,CAAC,CAAC,SAAS;YACf,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;SAClD,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,UAAoC,EAAE;QAEtC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CACvD,cAAc,EACd;YACE,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,gBAAgB;YAC3B,WAAW,EAAE,UAAU;SACxB,EACD,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE;oBACN,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;oBAC/C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;iBAC5C;aACF,CAAC;QACJ,CAAC;QACD,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,KAAK,WAAW;gBACd,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACjC,KAAK,eAAe;gBAClB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC9B,KAAK,eAAe;gBAClB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,KAAK,eAAe;gBAClB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,UAAoC,EAAE;QAEtC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CACvD,eAAe,EACf,EAAE,KAAK,EAAE,EACT,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,IAAY,EACZ,MAA0C,EAC1C,MAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,qCAAqC,EACrC,iBAAiB,EACjB,CAAC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,EAAE;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA4B;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE;YAC3C,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,eAAe,EAAE,OAAO,CAAC,aAAa;gBACtC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,OAAO,CAAC,UAAU;aAChC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,QAAQ,EACR,qBAAqB,EAAE,EAAE,CAC1B,CAAC;QACF,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,KAAK;YAC9B,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CACb,EAAU,EACV,OAA4B;QAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE;YAClD,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE;YACtC,IAAI,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,YAAoB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE;YAC1C,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE;YAC3C,IAAI,EAAE,EAAE,IAAI,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,OAAO,IAAI,CAAC,GAAG,CACb,KAAK,EACL,6BAA6B,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC7D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CACtB,SAAiB,EACjB,QAA4B;QAE5B,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,6BAA6B,kBAAkB,CAAC,SAAS,CAAC,WAAW,EACrE,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,GAAG,CACb,MAAM,EACN,6BAA6B,kBAAkB,CAAC,SAAS,CAAC,UAAU,CACrE,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,GAAG,IAAI,CAAC,MAAM,gCAAgC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,OAAO,GAAG,IAAI,CAAC,MAAM,gCAAgC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,gBAAgB,CAAC,QAA0B,EAAE,WAAmB;QAC9D,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC1C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC1C,KAAK,OAAO;gBACV,+DAA+D;gBAC/D,+DAA+D;gBAC/D,8DAA8D;gBAC9D,wCAAwC;gBACxC,OAAO,GAAG,IAAI,CAAC,MAAM,uBAAuB,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CACnB,OAA+B;QAE/B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE;YAChD,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAClB,OAA8B;QAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE;YAC/C,IAAI,EAAE;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,QAA0B,EAAE,WAAmB;QAC7D,OAAO,GAAG,IAAI,CAAC,MAAM,iBAAiB,QAAQ,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAA0B;QAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,WAAW,CAAC,MAGjB;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE;YAC9C,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { MemaxConfig } from "./types.js";
1
+ import type { MemaxConfig, PasskeyCheck } from "./types.js";
2
2
  /**
3
3
  * A value that can be serialized into a query string. Arrays produce
4
4
  * repeated `?key=a&key=b` pairs — required by the /v1/notifications
@@ -17,12 +17,9 @@ export interface RequestOptions {
17
17
  * cancellation; we never wrap them as `network_error`.
18
18
  */
19
19
  signal?: AbortSignal;
20
- }
21
- export interface StreamOptions extends RequestOptions {
22
- onEvent: (event: string, data: unknown) => void;
23
- onClose?: () => void;
24
20
  /**
25
21
  * Per-call header overrides. Use cases:
22
+ * - /v2 commands send `Idempotency-Key` and `If-Match`.
26
23
  * - Chat stream resume sends `Last-Event-ID` so the server
27
24
  * replays only events past the last seq the client saw.
28
25
  * Static `headers` on `MemaxConfig` are still merged; this map
@@ -30,6 +27,10 @@ export interface StreamOptions extends RequestOptions {
30
27
  */
31
28
  extraHeaders?: Record<string, string>;
32
29
  }
30
+ export interface StreamOptions extends RequestOptions {
31
+ onEvent: (event: string, data: unknown) => void;
32
+ onClose?: () => void;
33
+ }
33
34
  export interface DownloadOptions {
34
35
  hubId?: string;
35
36
  signal?: AbortSignal;
@@ -37,6 +38,25 @@ export interface DownloadOptions {
37
38
  export type RequestFn = <T>(method: string, path: string, options?: RequestOptions) => Promise<T>;
38
39
  export type StreamFn = (method: string, path: string, options: StreamOptions) => AbortController;
39
40
  export type DownloadFn = (path: string, options?: DownloadOptions) => Promise<Response>;
41
+ /** An OAuth protocol answer: its status and JSON body, unwrapped. */
42
+ export interface FormResult {
43
+ status: number;
44
+ body: Record<string, unknown>;
45
+ /** Seconds, from Retry-After, when the server sent one. */
46
+ retryAfter?: number;
47
+ }
48
+ /** Posts an OAuth form; see {@link ApiTransport.form}. */
49
+ export type FormFn = (path: string, fields: Record<string, string | undefined>, signal?: AbortSignal) => Promise<FormResult>;
50
+ /** Opens an event stream; see {@link ApiTransport.open}. */
51
+ export type OpenFn = (method: string, path: string, options?: RequestOptions) => Promise<Response>;
52
+ /** The challenge a 403 `needs_passkey` carries, when it carries one. */
53
+ export declare function passkeyCheckOf(message: string, details: Record<string, unknown> | undefined): PasskeyCheck | undefined;
54
+ /**
55
+ * A passkey's answer as the `X-Memax-Passkey` header carries it: its JSON
56
+ * (AuthenticationResponseJSON), base64url. The JSON is ASCII (its binary
57
+ * members are base64url already), so btoa takes it as it is.
58
+ */
59
+ export declare function encodePasskeyAnswer(answer: unknown): string;
40
60
  export declare class ApiTransport {
41
61
  readonly apiUrl: string;
42
62
  private readonly getAuth;
@@ -45,8 +65,24 @@ export declare class ApiTransport {
45
65
  private readonly maxRetries;
46
66
  private readonly retryDelayMs;
47
67
  private readonly onWarning?;
68
+ private readonly passkeyCheck?;
48
69
  constructor(config: MemaxConfig);
49
70
  request<T>(method: string, path: string, options?: RequestOptions): Promise<T>;
71
+ /**
72
+ * Posts an OAuth protocol form (`application/x-www-form-urlencoded`) with
73
+ * no credentials and returns its status and JSON body as they are: OAuth
74
+ * answers in its own JSON (`{error, error_description}`), not the
75
+ * `{data}` envelope, and its 400s are expected answers, not failures.
76
+ * Only a network failure or a body that isn't JSON throws.
77
+ */
78
+ form(path: string, fields: Record<string, string | undefined>, signal?: AbortSignal): Promise<FormResult>;
79
+ /**
80
+ * Opens a server-sent event stream (`Accept: text/event-stream`) and
81
+ * returns the response once its status is a success, body unread. An
82
+ * error response is JSON, as on every other call, and throws the same
83
+ * MemaxError `request` would; an abort throws an AbortError.
84
+ */
85
+ open(method: string, path: string, options?: RequestOptions): Promise<Response>;
50
86
  download(path: string, options?: DownloadOptions): Promise<Response>;
51
87
  stream(method: string, path: string, options: StreamOptions): AbortController;
52
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAc9C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,QAAQ,GAAG,CACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,KACnB,eAAe,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,QAAQ,CAAC,CAAC;AA0HvB,qBAAa,YAAY;IAKvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA4B;gBAE3C,MAAM,EAAE,WAAW;IAUzB,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC;IAyIP,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoF1E,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,GACrB,eAAe;CAmInB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}