@amtp/protocol 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -89,6 +89,43 @@ server.register("GET", "/products/:id", async (req, res) => {
89
89
  server.start();
90
90
  ```
91
91
 
92
+ ### Authenticated Agents (Website Chatbot)
93
+
94
+ For website chatbots and agents that act on behalf of logged-in users, AMTP
95
+ auto-bridges your existing web auth — no separate token ceremony for end users.
96
+
97
+ ```typescript
98
+ import { AMTPServer, WebSessionAdapter, SessionManager } from "@amtp/protocol";
99
+
100
+ const server = new AMTPServer({ port: 3000 });
101
+
102
+ const adapter = new WebSessionAdapter({
103
+ sessionManager: server.getSessionManager(),
104
+ resolveUser: (req) => {
105
+ // req.user is populated by Passport, Express session, JWT, etc.
106
+ if (!req.user) return null;
107
+ return {
108
+ id: req.user.id,
109
+ username: req.user.displayName,
110
+ role: req.user.role,
111
+ // Only fields you project here reach the agent — never raw secrets
112
+ };
113
+ },
114
+ });
115
+
116
+ // Mount AFTER your auth middleware (Passport, session, etc.)
117
+ server.useWebSession(adapter);
118
+
119
+ server.register("POST", "/api/orders", (req, res) => {
120
+ const session = (req as any).amtpContext?.session;
121
+ // session.userId is the authenticated user —
122
+ // no token config needed from the end user
123
+ res.json({ userId: session.userId });
124
+ });
125
+
126
+ server.start();
127
+ ```
128
+
92
129
  ### Crawling AMTP Sites
93
130
 
94
131
  ```typescript
@@ -137,11 +174,15 @@ AMTP/
137
174
  │ │ └── amtp.types.ts # TypeScript type definitions
138
175
  │ ├── server/
139
176
  │ │ ├── amtp-server.ts # Express server & middleware
177
+ │ │ ├── web-session-adapter.ts # Web auth → AMTP session bridge
140
178
  │ │ └── markdown-parser.ts # AMTP markdown parser
141
179
  │ ├── client/
142
180
  │ │ └── amtp-client.ts # Agent client SDK
143
181
  │ └── crawler/
144
182
  │ └── amtp-crawler.ts # Website crawler & indexer
183
+ ├── reference/
184
+ │ ├── server/ # Runnable demo server (for developers)
185
+ │ └── client/ # Runnable demo client (for developers)
145
186
  ├── reference-implementations/
146
187
  │ └── EXAMPLES.md # Real-world examples
147
188
  ├── docs/ # Additional documentation
@@ -222,6 +263,7 @@ AMTP includes built-in security features:
222
263
 
223
264
  - **Input Validation** - Type, format, range, injection prevention
224
265
  - **Authentication** - Session tokens, JWT, Bearer tokens, API keys
266
+ - **Auto-Session Bridge** - Derives AMTP sessions from existing web auth; raw `req.user` is never exposed to agents/LLMs
225
267
  - **Authorization** - Permission-based action execution
226
268
  - **CSRF Protection** - Token-based protection
227
269
  - **Rate Limiting** - Per-agent, per-action rate limits
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export { AMTPQLExecutor, AMTPQLExecutionError, executeAMTPQL } from "./server/am
6
6
  export { NotificationBus, notificationBus } from "./server/notifications";
7
7
  export { PermissionGuard } from "./server/permissions";
8
8
  export type { PermissionCheckResult, PermissionGuardConfig } from "./server/permissions";
9
+ export { WebSessionAdapter } from "./server/web-session-adapter";
10
+ export type { AMTPUserProfile, UserResolver, WebSessionAdapterConfig } from "./server/web-session-adapter";
9
11
  export { AMTPClient, AMTPMarkdownParser as ClientMarkdownParser, AutonomousAgent } from "./client/amtp-client";
10
12
  export type { AMTPClientConfig } from "./client/amtp-client";
11
13
  export { AMTPCrawler, SearchIndexer } from "./crawler/amtp-crawler";
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LinkType = exports.FormFieldType = exports.ParameterType = exports.MarkdownNodeType = exports.AgentCapability = exports.StatusCode = exports.HTTPMethod = exports.MIMEType = exports.AMTP_SECURITY_HEADERS = exports.DEFAULT_MAX_BODY_SIZE = exports.MAX_SESSION_LIFETIME_MS = exports.DEFAULT_SESSION_TIMEOUT_MS = exports.readBodyWithLimit = exports.SecurityError = exports.sanitizeFreeText = exports.sanitizeHttpMethod = exports.sanitizeEndpoint = exports.sanitizeActionId = exports.isValidCsrfToken = exports.generateCsrfToken = exports.csrfHeaderName = exports.isValidSessionId = exports.InMemoryRateLimiter = exports.validateTextField = exports.sanitizeHtml = exports.validateUrl = exports.generateSecureRequestId = exports.generateSecureSessionId = exports.secureRandomString = exports.SearchIndexer = exports.AMTPCrawler = exports.AutonomousAgent = exports.ClientMarkdownParser = exports.AMTPClient = exports.PermissionGuard = exports.notificationBus = exports.NotificationBus = exports.executeAMTPQL = exports.AMTPQLExecutionError = exports.AMTPQLExecutor = exports.parseAMTPQL = exports.AMTPQLSyntaxError = exports.AMTPQLParser = exports.AMTPMarkdownParser = exports.AMTPResponseBuilder = exports.AMTPRequestParser = exports.ContentNegotiator = exports.SessionManager = exports.AMTPMiddlewareFactory = exports.AMTPServer = void 0;
4
- exports.AMTPError = exports.ErrorCode = exports.NotificationEventType = exports.StreamUpdateType = exports.AuthMethod = void 0;
3
+ exports.FormFieldType = exports.ParameterType = exports.MarkdownNodeType = exports.AgentCapability = exports.StatusCode = exports.HTTPMethod = exports.MIMEType = exports.AMTP_SECURITY_HEADERS = exports.DEFAULT_MAX_BODY_SIZE = exports.MAX_SESSION_LIFETIME_MS = exports.DEFAULT_SESSION_TIMEOUT_MS = exports.readBodyWithLimit = exports.SecurityError = exports.sanitizeFreeText = exports.sanitizeHttpMethod = exports.sanitizeEndpoint = exports.sanitizeActionId = exports.isValidCsrfToken = exports.generateCsrfToken = exports.csrfHeaderName = exports.isValidSessionId = exports.InMemoryRateLimiter = exports.validateTextField = exports.sanitizeHtml = exports.validateUrl = exports.generateSecureRequestId = exports.generateSecureSessionId = exports.secureRandomString = exports.SearchIndexer = exports.AMTPCrawler = exports.AutonomousAgent = exports.ClientMarkdownParser = exports.AMTPClient = exports.WebSessionAdapter = exports.PermissionGuard = exports.notificationBus = exports.NotificationBus = exports.executeAMTPQL = exports.AMTPQLExecutionError = exports.AMTPQLExecutor = exports.parseAMTPQL = exports.AMTPQLSyntaxError = exports.AMTPQLParser = exports.AMTPMarkdownParser = exports.AMTPResponseBuilder = exports.AMTPRequestParser = exports.ContentNegotiator = exports.SessionManager = exports.AMTPMiddlewareFactory = exports.AMTPServer = void 0;
4
+ exports.AMTPError = exports.ErrorCode = exports.NotificationEventType = exports.StreamUpdateType = exports.AuthMethod = exports.LinkType = void 0;
5
5
  var amtp_server_1 = require("./server/amtp-server");
6
6
  Object.defineProperty(exports, "AMTPServer", { enumerable: true, get: function () { return amtp_server_1.AMTPServer; } });
7
7
  Object.defineProperty(exports, "AMTPMiddlewareFactory", { enumerable: true, get: function () { return amtp_server_1.AMTPMiddlewareFactory; } });
@@ -24,6 +24,8 @@ Object.defineProperty(exports, "NotificationBus", { enumerable: true, get: funct
24
24
  Object.defineProperty(exports, "notificationBus", { enumerable: true, get: function () { return notifications_1.notificationBus; } });
25
25
  var permissions_1 = require("./server/permissions");
26
26
  Object.defineProperty(exports, "PermissionGuard", { enumerable: true, get: function () { return permissions_1.PermissionGuard; } });
27
+ var web_session_adapter_1 = require("./server/web-session-adapter");
28
+ Object.defineProperty(exports, "WebSessionAdapter", { enumerable: true, get: function () { return web_session_adapter_1.WebSessionAdapter; } });
27
29
  var amtp_client_1 = require("./client/amtp-client");
28
30
  Object.defineProperty(exports, "AMTPClient", { enumerable: true, get: function () { return amtp_client_1.AMTPClient; } });
29
31
  Object.defineProperty(exports, "ClientMarkdownParser", { enumerable: true, get: function () { return amtp_client_1.AMTPMarkdownParser; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAAoJ;AAA3I,yGAAA,UAAU,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAErH,4DAA8D;AAArD,qHAAA,kBAAkB,OAAA;AAC3B,0DAAuF;AAA9E,8GAAA,YAAY,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,6GAAA,WAAW,OAAA;AACrD,8DAAgG;AAAvF,kHAAA,cAAc,OAAA;AAAE,wHAAA,oBAAoB,OAAA;AAAE,iHAAA,aAAa,OAAA;AAC5D,wDAA0E;AAAjE,gHAAA,eAAe,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzC,oDAAuD;AAA9C,8GAAA,eAAe,OAAA;AAExB,oDAA+G;AAAtG,yGAAA,UAAU,OAAA;AAAE,mHAAA,kBAAkB,OAAwB;AAAE,8GAAA,eAAe,OAAA;AAEhF,uDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,6GAAA,aAAa,OAAA;AAEnC,8CAsB2B;AArBzB,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AAClB,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AACb,6GAAA,iBAAiB,OAAA;AACjB,sHAAA,0BAA0B,OAAA;AAC1B,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAEvB,iDAe4B;AAb1B,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AACV,wGAAA,UAAU,OAAA;AACV,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,mHAAA,qBAAqB,OAAA;AACrB,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAAoJ;AAA3I,yGAAA,UAAU,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AAErH,4DAA8D;AAArD,qHAAA,kBAAkB,OAAA;AAC3B,0DAAuF;AAA9E,8GAAA,YAAY,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,6GAAA,WAAW,OAAA;AACrD,8DAAgG;AAAvF,kHAAA,cAAc,OAAA;AAAE,wHAAA,oBAAoB,OAAA;AAAE,iHAAA,aAAa,OAAA;AAC5D,wDAA0E;AAAjE,gHAAA,eAAe,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzC,oDAAuD;AAA9C,8GAAA,eAAe,OAAA;AAExB,oEAAiE;AAAxD,wHAAA,iBAAiB,OAAA;AAE1B,oDAA+G;AAAtG,yGAAA,UAAU,OAAA;AAAE,mHAAA,kBAAkB,OAAwB;AAAE,8GAAA,eAAe,OAAA;AAEhF,uDAAoE;AAA3D,2GAAA,WAAW,OAAA;AAAE,6GAAA,aAAa,OAAA;AAEnC,8CAsB2B;AArBzB,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,mHAAA,uBAAuB,OAAA;AACvB,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA;AAChB,8GAAA,kBAAkB,OAAA;AAClB,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AACb,6GAAA,iBAAiB,OAAA;AACjB,sHAAA,0BAA0B,OAAA;AAC1B,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAEvB,iDAe4B;AAb1B,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AACV,wGAAA,UAAU,OAAA;AACV,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,sGAAA,QAAQ,OAAA;AACR,wGAAA,UAAU,OAAA;AACV,8GAAA,gBAAgB,OAAA;AAChB,mHAAA,qBAAqB,OAAA;AACrB,uGAAA,SAAS,OAAA;AACT,uGAAA,SAAS,OAAA"}
@@ -142,6 +142,7 @@ export declare class AMTPServer {
142
142
  private config;
143
143
  private middlewareFactory;
144
144
  private router;
145
+ private customMiddleware;
145
146
  constructor(config?: Partial<AMTPServerConfig>);
146
147
  private setupMiddleware;
147
148
  /**
@@ -154,6 +155,18 @@ export declare class AMTPServer {
154
155
  * Returns { data } or { errors } per AMTPQLQueryResponse.
155
156
  */
156
157
  handleAMTPQL(body: AMTPQLQueryRequest, getDocument: () => AMTPDocument | Promise<AMTPDocument>): Promise<AMTPQLQueryResponse>;
158
+ /**
159
+ * Mount custom middleware before routes.
160
+ * Runs after AMTP context but before route handlers.
161
+ */
162
+ use(mw: (req: Request, res: Response, next: NextFunction) => void): void;
163
+ /**
164
+ * Convenience: mount a WebSessionAdapter to auto-bridge web auth to AMTP.
165
+ * Equivalent to `server.use(adapter.autoSession())`.
166
+ */
167
+ useWebSession(adapter: {
168
+ autoSession: () => (req: Request, res: Response, next: NextFunction) => void;
169
+ }): void;
157
170
  /**
158
171
  * Return the fully configured Express app with routes and middleware mounted.
159
172
  * Does NOT start the HTTP listener — useful for testing with supertest.
@@ -516,6 +516,7 @@ exports.AMTPMiddlewareFactory = AMTPMiddlewareFactory;
516
516
  */
517
517
  class AMTPServer {
518
518
  constructor(config = {}) {
519
+ this.customMiddleware = [];
519
520
  this.app = (0, express_1.default)();
520
521
  this.config = {
521
522
  port: 3000,
@@ -564,8 +565,6 @@ class AMTPServer {
564
565
  if (this.config.csrfProtection !== false) {
565
566
  this.app.use(this.middlewareFactory.csrfGuard());
566
567
  }
567
- // AMTP context
568
- this.app.use(this.middlewareFactory.middleware());
569
568
  }
570
569
  /**
571
570
  * Register a route handler
@@ -597,12 +596,34 @@ class AMTPServer {
597
596
  };
598
597
  }
599
598
  }
599
+ /**
600
+ * Mount custom middleware before routes.
601
+ * Runs after AMTP context but before route handlers.
602
+ */
603
+ use(mw) {
604
+ this.customMiddleware.push(mw);
605
+ }
606
+ /**
607
+ * Convenience: mount a WebSessionAdapter to auto-bridge web auth to AMTP.
608
+ * Equivalent to `server.use(adapter.autoSession())`.
609
+ */
610
+ useWebSession(adapter) {
611
+ this.use(adapter.autoSession());
612
+ }
600
613
  /**
601
614
  * Return the fully configured Express app with routes and middleware mounted.
602
615
  * Does NOT start the HTTP listener — useful for testing with supertest.
603
616
  */
604
617
  getConfiguredApp() {
618
+ // Mount AMTP context (was deferred from setupMiddleware to allow injection)
619
+ this.app.use(this.middlewareFactory.middleware());
620
+ // Mount user-added middleware (web session bridge, custom auth, etc.)
621
+ for (const mw of this.customMiddleware) {
622
+ this.app.use(mw);
623
+ }
624
+ // Mount routes
605
625
  this.app.use("/", this.router);
626
+ // Response sender and error handler
606
627
  this.app.use(this.middlewareFactory.responseSender());
607
628
  this.app.use(this.middlewareFactory.errorHandler());
608
629
  return this.app;
@@ -1 +1 @@
1
- {"version":3,"file":"amtp-server.js","sourceRoot":"","sources":["../../src/server/amtp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amtp-server.js","sourceRoot":"","sources":["../../src/server/amtp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { Request, Response, NextFunction } from "express";
2
+ import { SessionManager } from "./amtp-server";
3
+ /**
4
+ * Projection of user data that is safe to expose to agents/LLMs.
5
+ * Never includes sensitive fields like password hashes, OAuth tokens, etc.
6
+ */
7
+ export interface AMTPUserProfile {
8
+ id: string;
9
+ username: string;
10
+ email?: string;
11
+ role?: string;
12
+ permissions?: string[];
13
+ capabilities?: string[];
14
+ preferences?: Record<string, unknown>;
15
+ metadata?: Record<string, unknown>;
16
+ }
17
+ /**
18
+ * User resolver that extracts a safe profile from the web request.
19
+ * Return `null` for unauthenticated requests.
20
+ */
21
+ export type UserResolver = (req: Request) => AMTPUserProfile | null | Promise<AMTPUserProfile | null>;
22
+ export interface WebSessionAdapterConfig {
23
+ sessionManager: SessionManager;
24
+ resolveUser: UserResolver;
25
+ sessionTTLMs?: number;
26
+ }
27
+ /**
28
+ * WebSessionAdapter — bridges web framework auth to AMTP.
29
+ *
30
+ * Auto-creates and loads AMTP sessions from existing web auth (Passport, Express
31
+ * sessions, JWT) without requiring a separate token ceremony for end users.
32
+ *
33
+ * ## Security
34
+ *
35
+ * Only projects allowed fields into the AMTP session via `resolveUser`. Even if
36
+ * the underlying `req.user` contains sensitive data (password hashes, API keys,
37
+ * OAuth tokens), those are NEVER exposed to the agent or LLM.
38
+ *
39
+ * ## Usage
40
+ *
41
+ * ```ts
42
+ * const server = new AMTPServer({ port: 3000 });
43
+ *
44
+ * // Auth middleware (Passport, session, JWT, etc.)
45
+ * app.use(passport.session());
46
+ *
47
+ * // Bridge web auth to AMTP
48
+ * server.useWebSession({
49
+ * resolveUser: (req) => {
50
+ * if (!req.user) return null;
51
+ * return {
52
+ * id: req.user.id,
53
+ * username: req.user.displayName || req.user.username,
54
+ * email: req.user.email,
55
+ * role: req.user.role,
56
+ * permissions: req.user.permissions,
57
+ * };
58
+ * },
59
+ * });
60
+ *
61
+ * await server.start();
62
+ * ```
63
+ */
64
+ export declare class WebSessionAdapter {
65
+ private config;
66
+ constructor(config: WebSessionAdapterConfig);
67
+ /**
68
+ * Express middleware that auto-creates or loads an AMTP session from the
69
+ * existing web auth context.
70
+ *
71
+ * Mount this AFTER your auth middleware and AFTER the AMTP context middleware.
72
+ */
73
+ autoSession(): (req: Request, _res: Response, next: NextFunction) => Promise<void>;
74
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebSessionAdapter = void 0;
4
+ /**
5
+ * WebSessionAdapter — bridges web framework auth to AMTP.
6
+ *
7
+ * Auto-creates and loads AMTP sessions from existing web auth (Passport, Express
8
+ * sessions, JWT) without requiring a separate token ceremony for end users.
9
+ *
10
+ * ## Security
11
+ *
12
+ * Only projects allowed fields into the AMTP session via `resolveUser`. Even if
13
+ * the underlying `req.user` contains sensitive data (password hashes, API keys,
14
+ * OAuth tokens), those are NEVER exposed to the agent or LLM.
15
+ *
16
+ * ## Usage
17
+ *
18
+ * ```ts
19
+ * const server = new AMTPServer({ port: 3000 });
20
+ *
21
+ * // Auth middleware (Passport, session, JWT, etc.)
22
+ * app.use(passport.session());
23
+ *
24
+ * // Bridge web auth to AMTP
25
+ * server.useWebSession({
26
+ * resolveUser: (req) => {
27
+ * if (!req.user) return null;
28
+ * return {
29
+ * id: req.user.id,
30
+ * username: req.user.displayName || req.user.username,
31
+ * email: req.user.email,
32
+ * role: req.user.role,
33
+ * permissions: req.user.permissions,
34
+ * };
35
+ * },
36
+ * });
37
+ *
38
+ * await server.start();
39
+ * ```
40
+ */
41
+ class WebSessionAdapter {
42
+ constructor(config) {
43
+ this.config = {
44
+ sessionManager: config.sessionManager,
45
+ resolveUser: config.resolveUser,
46
+ sessionTTLMs: config.sessionTTLMs ?? 24 * 60 * 60 * 1000,
47
+ };
48
+ }
49
+ /**
50
+ * Express middleware that auto-creates or loads an AMTP session from the
51
+ * existing web auth context.
52
+ *
53
+ * Mount this AFTER your auth middleware and AFTER the AMTP context middleware.
54
+ */
55
+ autoSession() {
56
+ return async (req, _res, next) => {
57
+ try {
58
+ const user = await this.config.resolveUser(req);
59
+ if (!user) {
60
+ return next();
61
+ }
62
+ const amtpContext = req.amtpContext;
63
+ if (!amtpContext) {
64
+ return next();
65
+ }
66
+ let session;
67
+ const existingSessionId = amtpContext.request?.sessionId;
68
+ if (existingSessionId) {
69
+ const loaded = this.config.sessionManager.getSession(existingSessionId);
70
+ if (loaded) {
71
+ session = loaded;
72
+ }
73
+ else {
74
+ session = this.config.sessionManager.createSession(user.id, user.username, this.config.sessionTTLMs);
75
+ }
76
+ }
77
+ else {
78
+ session = this.config.sessionManager.createSession(user.id, user.username, this.config.sessionTTLMs);
79
+ }
80
+ // Only project allowed fields — raw req.user is NEVER stored
81
+ amtpContext.session = {
82
+ sessionId: session.sessionId,
83
+ userId: user.id,
84
+ username: user.username,
85
+ email: user.email,
86
+ createdAt: session.createdAt,
87
+ expiresAt: session.expiresAt,
88
+ lastActivityAt: session.lastActivityAt,
89
+ capabilities: user.capabilities ?? ["read"],
90
+ permissions: user.permissions ?? [],
91
+ preferences: user.preferences,
92
+ metadata: {
93
+ ...(user.role && { role: user.role }),
94
+ ...user.metadata,
95
+ },
96
+ };
97
+ amtpContext.user = {
98
+ id: user.id,
99
+ username: user.username,
100
+ ...(user.email && { email: user.email }),
101
+ ...(user.role && { role: user.role }),
102
+ ...(user.preferences && { preferences: user.preferences }),
103
+ };
104
+ }
105
+ catch {
106
+ // If the resolver fails, proceed unauthenticated
107
+ }
108
+ next();
109
+ };
110
+ }
111
+ }
112
+ exports.WebSessionAdapter = WebSessionAdapter;
113
+ //# sourceMappingURL=web-session-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-session-adapter.js","sourceRoot":"","sources":["../../src/server/web-session-adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amtp/protocol",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "AMTP: Agent Markdown Transfer Protocol - HTTP for the Agentic Web",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",