@mastra/factory 0.2.2-alpha.0 → 0.2.2-alpha.2

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 (174) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/auth.d.ts +2 -2
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +401 -314
  5. package/dist/auth.js.map +1 -1
  6. package/dist/capabilities/connection.js +1 -1
  7. package/dist/capabilities/intake.js +1 -1
  8. package/dist/capabilities/version-control.js +1 -1
  9. package/dist/factory.d.ts.map +1 -1
  10. package/dist/factory.js +441 -39455
  11. package/dist/factory.js.map +1 -1
  12. package/dist/index.js +2 -39466
  13. package/dist/integrations/base.js +1 -1
  14. package/dist/integrations/github/config.js +36 -22
  15. package/dist/integrations/github/config.js.map +1 -1
  16. package/dist/integrations/github/factory-session.js +33 -37
  17. package/dist/integrations/github/factory-session.js.map +1 -1
  18. package/dist/integrations/github/integration.js +1037 -3624
  19. package/dist/integrations/github/integration.js.map +1 -1
  20. package/dist/integrations/github/issue-triage.js +71 -71
  21. package/dist/integrations/github/issue-triage.js.map +1 -1
  22. package/dist/integrations/github/pat.js +47 -36
  23. package/dist/integrations/github/pat.js.map +1 -1
  24. package/dist/integrations/github/provenance.js +72 -101
  25. package/dist/integrations/github/provenance.js.map +1 -1
  26. package/dist/integrations/github/routes.d.ts.map +1 -1
  27. package/dist/integrations/github/routes.js +1272 -1833
  28. package/dist/integrations/github/routes.js.map +1 -1
  29. package/dist/integrations/github/rules.js +203 -471
  30. package/dist/integrations/github/rules.js.map +1 -1
  31. package/dist/integrations/github/sandbox.d.ts +2 -0
  32. package/dist/integrations/github/sandbox.d.ts.map +1 -1
  33. package/dist/integrations/github/sandbox.js +401 -326
  34. package/dist/integrations/github/sandbox.js.map +1 -1
  35. package/dist/integrations/github/session-subscriptions.js +165 -223
  36. package/dist/integrations/github/session-subscriptions.js.map +1 -1
  37. package/dist/integrations/github/subscriptions.js +43 -51
  38. package/dist/integrations/github/subscriptions.js.map +1 -1
  39. package/dist/integrations/github/token-refresh.js +15 -18
  40. package/dist/integrations/github/token-refresh.js.map +1 -1
  41. package/dist/integrations/github/webhook.js +359 -343
  42. package/dist/integrations/github/webhook.js.map +1 -1
  43. package/dist/integrations/linear/agent-tools.js +77 -100
  44. package/dist/integrations/linear/agent-tools.js.map +1 -1
  45. package/dist/integrations/linear/integration.js +611 -1309
  46. package/dist/integrations/linear/integration.js.map +1 -1
  47. package/dist/integrations/linear/routes.js +227 -230
  48. package/dist/integrations/linear/routes.js.map +1 -1
  49. package/dist/integrations/linear/rules.js +126 -346
  50. package/dist/integrations/linear/rules.js.map +1 -1
  51. package/dist/integrations/linear/storage.js +1 -1
  52. package/dist/integrations/platform/api-client.js +131 -135
  53. package/dist/integrations/platform/api-client.js.map +1 -1
  54. package/dist/integrations/platform/github/event-worker.js +275 -573
  55. package/dist/integrations/platform/github/event-worker.js.map +1 -1
  56. package/dist/integrations/platform/github/integration.d.ts.map +1 -1
  57. package/dist/integrations/platform/github/integration.js +845 -3942
  58. package/dist/integrations/platform/github/integration.js.map +1 -1
  59. package/dist/integrations/platform/linear/integration.js +457 -1309
  60. package/dist/integrations/platform/linear/integration.js.map +1 -1
  61. package/dist/integrations/workos/integration.js +80 -85
  62. package/dist/integrations/workos/integration.js.map +1 -1
  63. package/dist/routes/config.d.ts.map +1 -1
  64. package/dist/routes/config.js +933 -915
  65. package/dist/routes/config.js.map +1 -1
  66. package/dist/routes/custom-provider-source.js +110 -93
  67. package/dist/routes/custom-provider-source.js.map +1 -1
  68. package/dist/routes/fs.js +401 -349
  69. package/dist/routes/fs.js.map +1 -1
  70. package/dist/routes/intake.js +165 -165
  71. package/dist/routes/intake.js.map +1 -1
  72. package/dist/routes/oauth.js +447 -25166
  73. package/dist/routes/oauth.js.map +1 -1
  74. package/dist/routes/projects.js +437 -376
  75. package/dist/routes/projects.js.map +1 -1
  76. package/dist/routes/provider-credentials.js +76 -58
  77. package/dist/routes/provider-credentials.js.map +1 -1
  78. package/dist/routes/route.js +12 -8
  79. package/dist/routes/route.js.map +1 -1
  80. package/dist/routes/skills.js +160 -173
  81. package/dist/routes/skills.js.map +1 -1
  82. package/dist/routes/surface.js +250 -28618
  83. package/dist/routes/surface.js.map +1 -1
  84. package/dist/routes/tenant-credentials.js +141 -166
  85. package/dist/routes/tenant-credentials.js.map +1 -1
  86. package/dist/routes/work-items.js +654 -862
  87. package/dist/routes/work-items.js.map +1 -1
  88. package/dist/rules/binding-context.js +23 -35
  89. package/dist/rules/binding-context.js.map +1 -1
  90. package/dist/rules/defaults.js +200 -309
  91. package/dist/rules/defaults.js.map +1 -1
  92. package/dist/rules/dispatcher.d.ts.map +1 -1
  93. package/dist/rules/dispatcher.js +438 -677
  94. package/dist/rules/dispatcher.js.map +1 -1
  95. package/dist/rules/index.js +5 -599
  96. package/dist/rules/processor.js +344 -596
  97. package/dist/rules/processor.js.map +1 -1
  98. package/dist/rules/resolve.js +21 -18
  99. package/dist/rules/resolve.js.map +1 -1
  100. package/dist/rules/start-coordinator.js +168 -157
  101. package/dist/rules/start-coordinator.js.map +1 -1
  102. package/dist/rules/tools.js +50 -85
  103. package/dist/rules/tools.js.map +1 -1
  104. package/dist/rules/transition-service.js +183 -454
  105. package/dist/rules/transition-service.js.map +1 -1
  106. package/dist/rules/types.js +33 -29
  107. package/dist/rules/types.js.map +1 -1
  108. package/dist/rules/validation.js +266 -281
  109. package/dist/rules/validation.js.map +1 -1
  110. package/dist/sandbox/fleet.js +272 -250
  111. package/dist/sandbox/fleet.js.map +1 -1
  112. package/dist/sandbox/reattach.js +13 -6
  113. package/dist/sandbox/reattach.js.map +1 -1
  114. package/dist/server-error.js +12 -16
  115. package/dist/server-error.js.map +1 -1
  116. package/dist/skills/service.js +30 -35
  117. package/dist/skills/service.js.map +1 -1
  118. package/dist/spa-static.d.ts.map +1 -1
  119. package/dist/spa-static.js +91 -64
  120. package/dist/spa-static.js.map +1 -1
  121. package/dist/state-signing.js +73 -44
  122. package/dist/state-signing.js.map +1 -1
  123. package/dist/storage/domains/audit/agent-audit.js +60 -59
  124. package/dist/storage/domains/audit/agent-audit.js.map +1 -1
  125. package/dist/storage/domains/audit/base.js +169 -112
  126. package/dist/storage/domains/audit/base.js.map +1 -1
  127. package/dist/storage/domains/audit/domain.js +155 -153
  128. package/dist/storage/domains/audit/domain.js.map +1 -1
  129. package/dist/storage/domains/credentials/base.js +259 -243
  130. package/dist/storage/domains/credentials/base.js.map +1 -1
  131. package/dist/storage/domains/custom-providers/base.js +138 -143
  132. package/dist/storage/domains/custom-providers/base.js.map +1 -1
  133. package/dist/storage/domains/intake/base.js +75 -57
  134. package/dist/storage/domains/intake/base.js.map +1 -1
  135. package/dist/storage/domains/integrations/base.js +310 -245
  136. package/dist/storage/domains/integrations/base.js.map +1 -1
  137. package/dist/storage/domains/memory-settings/base.js +117 -102
  138. package/dist/storage/domains/memory-settings/base.js.map +1 -1
  139. package/dist/storage/domains/model-packs/base.js +89 -88
  140. package/dist/storage/domains/model-packs/base.js.map +1 -1
  141. package/dist/storage/domains/projects/base.js +97 -92
  142. package/dist/storage/domains/projects/base.js.map +1 -1
  143. package/dist/storage/domains/queue-health/base.js +111 -76
  144. package/dist/storage/domains/queue-health/base.js.map +1 -1
  145. package/dist/storage/domains/source-control/base.d.ts +9 -0
  146. package/dist/storage/domains/source-control/base.d.ts.map +1 -1
  147. package/dist/storage/domains/source-control/base.js +777 -702
  148. package/dist/storage/domains/source-control/base.js.map +1 -1
  149. package/dist/storage/domains/source-control/inmemory.d.ts +4 -0
  150. package/dist/storage/domains/source-control/inmemory.d.ts.map +1 -1
  151. package/dist/storage/domains/source-control/inmemory.js +322 -344
  152. package/dist/storage/domains/source-control/inmemory.js.map +1 -1
  153. package/dist/storage/domains/work-items/base.d.ts.map +1 -1
  154. package/dist/storage/domains/work-items/base.js +1266 -1132
  155. package/dist/storage/domains/work-items/base.js.map +1 -1
  156. package/dist/storage/domains/work-items/metrics.js +202 -184
  157. package/dist/storage/domains/work-items/metrics.js.map +1 -1
  158. package/dist/timing.d.ts +15 -0
  159. package/dist/timing.d.ts.map +1 -0
  160. package/dist/timing.js +34 -0
  161. package/dist/timing.js.map +1 -0
  162. package/dist/workspace.d.ts +2 -3
  163. package/dist/workspace.d.ts.map +1 -1
  164. package/dist/workspace.js +236 -438
  165. package/dist/workspace.js.map +1 -1
  166. package/factory-skills/factory-review/SKILL.md +9 -2
  167. package/package.json +9 -9
  168. package/dist/capabilities/connection.js.map +0 -1
  169. package/dist/capabilities/intake.js.map +0 -1
  170. package/dist/capabilities/version-control.js.map +0 -1
  171. package/dist/index.js.map +0 -1
  172. package/dist/integrations/base.js.map +0 -1
  173. package/dist/integrations/linear/storage.js.map +0 -1
  174. package/dist/rules/index.js.map +0 -1
@@ -1,96 +1,91 @@
1
- // src/integrations/workos/integration.ts
2
1
  import { WorkOSAdminPortal } from "@mastra/auth-workos";
3
2
  import { registerApiRoute } from "@mastra/core/server";
4
- var UNKNOWN_LOCATION = "unknown";
3
+ //#region src/integrations/workos/integration.ts
4
+ const UNKNOWN_LOCATION = "unknown";
5
5
  function loose(c) {
6
- return c;
6
+ return c;
7
7
  }
8
8
  function flattenMetadata(metadata) {
9
- const flat = {};
10
- for (const [key, value] of Object.entries(metadata)) {
11
- if (value === void 0 || value === null) continue;
12
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
13
- flat[key] = value;
14
- continue;
15
- }
16
- try {
17
- flat[key] = JSON.stringify(value);
18
- } catch {
19
- }
20
- }
21
- return flat;
9
+ const flat = {};
10
+ for (const [key, value] of Object.entries(metadata)) {
11
+ if (value === void 0 || value === null) continue;
12
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
13
+ flat[key] = value;
14
+ continue;
15
+ }
16
+ try {
17
+ flat[key] = JSON.stringify(value);
18
+ } catch {}
19
+ }
20
+ return flat;
22
21
  }
23
22
  function toWorkOSEvent(event) {
24
- return {
25
- action: event.action,
26
- occurredAt: event.occurredAt,
27
- actor: { type: event.actorType === "agent" ? "agent" : "user", id: event.actorId },
28
- targets: event.targets.map((target) => ({
29
- type: target.type,
30
- id: target.id,
31
- ...target.name !== void 0 ? { name: target.name } : {}
32
- })),
33
- context: {
34
- location: event.context.location ?? UNKNOWN_LOCATION,
35
- ...event.context.userAgent !== void 0 ? { userAgent: event.context.userAgent } : {}
36
- },
37
- metadata: flattenMetadata(event.metadata)
38
- };
23
+ return {
24
+ action: event.action,
25
+ occurredAt: event.occurredAt,
26
+ actor: {
27
+ type: event.actorType === "agent" ? "agent" : "user",
28
+ id: event.actorId
29
+ },
30
+ targets: event.targets.map((target) => ({
31
+ type: target.type,
32
+ id: target.id,
33
+ ...target.name !== void 0 ? { name: target.name } : {}
34
+ })),
35
+ context: {
36
+ location: event.context.location ?? UNKNOWN_LOCATION,
37
+ ...event.context.userAgent !== void 0 ? { userAgent: event.context.userAgent } : {}
38
+ },
39
+ metadata: flattenMetadata(event.metadata)
40
+ };
39
41
  }
42
+ /** Optional WorkOS mirror and Admin Portal route, independent of the auth adapter. */
40
43
  var WorkOSAuditIntegration = class {
41
- id = "workos";
42
- #client;
43
- #returnUrl;
44
- constructor({ client, returnUrl }) {
45
- this.#client = client;
46
- this.#returnUrl = returnUrl;
47
- }
48
- async audit({ event }) {
49
- try {
50
- await this.#client.auditLogs.createEvent(event.orgId, toWorkOSEvent(event));
51
- } catch (err) {
52
- console.warn("[Audit] Failed to forward audit event to WorkOS", {
53
- action: event.action,
54
- error: err instanceof Error ? err.message : String(err)
55
- });
56
- }
57
- }
58
- routes(ctx) {
59
- const { auth } = ctx;
60
- return [
61
- registerApiRoute("/web/audit/portal-link", {
62
- method: "GET",
63
- handler: async (cc) => {
64
- const c = loose(cc);
65
- await auth.ensureUser(c);
66
- const tenant = auth.tenant(c);
67
- if (!tenant) return c.json({ error: "unauthorized" }, 401);
68
- if (!tenant.orgId) {
69
- return c.json(
70
- { error: "organization_required", message: "The audit trail requires a WorkOS organization." },
71
- 403
72
- );
73
- }
74
- try {
75
- const portal = new WorkOSAdminPortal(this.#client, { returnUrl: this.#returnUrl });
76
- const url = await portal.getPortalLink(tenant.orgId, "audit_logs");
77
- return c.json({ url });
78
- } catch (err) {
79
- console.warn("[Audit] Failed to generate WorkOS Admin Portal link", {
80
- error: err instanceof Error ? err.message : String(err)
81
- });
82
- return c.json({ error: "portal_link_failed" }, 502);
83
- }
84
- }
85
- })
86
- ];
87
- }
88
- diagnostics() {
89
- return { configured: true };
90
- }
91
- };
92
- export {
93
- WorkOSAuditIntegration,
94
- toWorkOSEvent
44
+ id = "workos";
45
+ #client;
46
+ #returnUrl;
47
+ constructor({ client, returnUrl }) {
48
+ this.#client = client;
49
+ this.#returnUrl = returnUrl;
50
+ }
51
+ async audit({ event }) {
52
+ try {
53
+ await this.#client.auditLogs.createEvent(event.orgId, toWorkOSEvent(event));
54
+ } catch (err) {
55
+ console.warn("[Audit] Failed to forward audit event to WorkOS", {
56
+ action: event.action,
57
+ error: err instanceof Error ? err.message : String(err)
58
+ });
59
+ }
60
+ }
61
+ routes(ctx) {
62
+ const { auth } = ctx;
63
+ return [registerApiRoute("/web/audit/portal-link", {
64
+ method: "GET",
65
+ handler: async (cc) => {
66
+ const c = loose(cc);
67
+ await auth.ensureUser(c);
68
+ const tenant = auth.tenant(c);
69
+ if (!tenant) return c.json({ error: "unauthorized" }, 401);
70
+ if (!tenant.orgId) return c.json({
71
+ error: "organization_required",
72
+ message: "The audit trail requires a WorkOS organization."
73
+ }, 403);
74
+ try {
75
+ const url = await new WorkOSAdminPortal(this.#client, { returnUrl: this.#returnUrl }).getPortalLink(tenant.orgId, "audit_logs");
76
+ return c.json({ url });
77
+ } catch (err) {
78
+ console.warn("[Audit] Failed to generate WorkOS Admin Portal link", { error: err instanceof Error ? err.message : String(err) });
79
+ return c.json({ error: "portal_link_failed" }, 502);
80
+ }
81
+ }
82
+ })];
83
+ }
84
+ diagnostics() {
85
+ return { configured: true };
86
+ }
95
87
  };
88
+ //#endregion
89
+ export { WorkOSAuditIntegration, toWorkOSEvent };
90
+
96
91
  //# sourceMappingURL=integration.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/integrations/workos/integration.ts"],"sourcesContent":["import { WorkOSAdminPortal } from '@mastra/auth-workos';\nimport type { ApiRoute } from '@mastra/core/server';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { Context } from 'hono';\n\nimport type { AuditEventRow } from '../../storage/domains/audit/base.js';\nimport type { FactoryIntegration, IntegrationContext } from '../base.js';\n\ntype WorkOSClient = ConstructorParameters<typeof WorkOSAdminPortal>[0];\n\nconst UNKNOWN_LOCATION = 'unknown';\n\nfunction loose(c: unknown): Context {\n return c as Context;\n}\n\nfunction flattenMetadata(metadata: Record<string, unknown>): Record<string, string | number | boolean> {\n const flat: Record<string, string | number | boolean> = {};\n for (const [key, value] of Object.entries(metadata)) {\n if (value === undefined || value === null) continue;\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n flat[key] = value;\n continue;\n }\n try {\n flat[key] = JSON.stringify(value);\n } catch {\n // Drop unserializable metadata rather than the event.\n }\n }\n return flat;\n}\n\nexport function toWorkOSEvent(event: AuditEventRow): {\n action: string;\n occurredAt: Date;\n actor: { type: string; id: string };\n targets: Array<{ type: string; id: string; name?: string }>;\n context: { location: string; userAgent?: string };\n metadata: Record<string, string | number | boolean>;\n} {\n return {\n action: event.action,\n occurredAt: event.occurredAt,\n actor: { type: event.actorType === 'agent' ? 'agent' : 'user', id: event.actorId },\n targets: event.targets.map(target => ({\n type: target.type,\n id: target.id,\n ...(target.name !== undefined ? { name: target.name } : {}),\n })),\n context: {\n location: event.context.location ?? UNKNOWN_LOCATION,\n ...(event.context.userAgent !== undefined ? { userAgent: event.context.userAgent } : {}),\n },\n metadata: flattenMetadata(event.metadata),\n };\n}\n\n/** Optional WorkOS mirror and Admin Portal route, independent of the auth adapter. */\nexport class WorkOSAuditIntegration implements FactoryIntegration {\n readonly id = 'workos';\n readonly #client: WorkOSClient;\n readonly #returnUrl: string;\n\n constructor({ client, returnUrl }: { client: WorkOSClient; returnUrl: string }) {\n this.#client = client;\n this.#returnUrl = returnUrl;\n }\n\n async audit({ event }: { event: AuditEventRow }): Promise<void> {\n try {\n await this.#client.auditLogs.createEvent(event.orgId, toWorkOSEvent(event));\n } catch (err) {\n console.warn('[Audit] Failed to forward audit event to WorkOS', {\n action: event.action,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n routes(ctx: IntegrationContext): ApiRoute[] {\n const { auth } = ctx;\n return [\n registerApiRoute('/web/audit/portal-link', {\n method: 'GET',\n handler: async cc => {\n const c = loose(cc);\n await auth.ensureUser(c);\n const tenant = auth.tenant(c);\n if (!tenant) return c.json({ error: 'unauthorized' }, 401);\n if (!tenant.orgId) {\n return c.json(\n { error: 'organization_required', message: 'The audit trail requires a WorkOS organization.' },\n 403,\n );\n }\n\n try {\n const portal = new WorkOSAdminPortal(this.#client, { returnUrl: this.#returnUrl });\n const url = await portal.getPortalLink(tenant.orgId, 'audit_logs');\n return c.json({ url });\n } catch (err) {\n console.warn('[Audit] Failed to generate WorkOS Admin Portal link', {\n error: err instanceof Error ? err.message : String(err),\n });\n return c.json({ error: 'portal_link_failed' }, 502);\n }\n },\n }),\n ];\n }\n\n diagnostics(): Record<string, unknown> {\n return { configured: true };\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"integration.js","names":["#client","#returnUrl"],"sources":["../../../src/integrations/workos/integration.ts"],"sourcesContent":["import { WorkOSAdminPortal } from '@mastra/auth-workos';\nimport type { ApiRoute } from '@mastra/core/server';\nimport { registerApiRoute } from '@mastra/core/server';\nimport type { Context } from 'hono';\n\nimport type { AuditEventRow } from '../../storage/domains/audit/base.js';\nimport type { FactoryIntegration, IntegrationContext } from '../base.js';\n\ntype WorkOSClient = ConstructorParameters<typeof WorkOSAdminPortal>[0];\n\nconst UNKNOWN_LOCATION = 'unknown';\n\nfunction loose(c: unknown): Context {\n return c as Context;\n}\n\nfunction flattenMetadata(metadata: Record<string, unknown>): Record<string, string | number | boolean> {\n const flat: Record<string, string | number | boolean> = {};\n for (const [key, value] of Object.entries(metadata)) {\n if (value === undefined || value === null) continue;\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n flat[key] = value;\n continue;\n }\n try {\n flat[key] = JSON.stringify(value);\n } catch {\n // Drop unserializable metadata rather than the event.\n }\n }\n return flat;\n}\n\nexport function toWorkOSEvent(event: AuditEventRow): {\n action: string;\n occurredAt: Date;\n actor: { type: string; id: string };\n targets: Array<{ type: string; id: string; name?: string }>;\n context: { location: string; userAgent?: string };\n metadata: Record<string, string | number | boolean>;\n} {\n return {\n action: event.action,\n occurredAt: event.occurredAt,\n actor: { type: event.actorType === 'agent' ? 'agent' : 'user', id: event.actorId },\n targets: event.targets.map(target => ({\n type: target.type,\n id: target.id,\n ...(target.name !== undefined ? { name: target.name } : {}),\n })),\n context: {\n location: event.context.location ?? UNKNOWN_LOCATION,\n ...(event.context.userAgent !== undefined ? { userAgent: event.context.userAgent } : {}),\n },\n metadata: flattenMetadata(event.metadata),\n };\n}\n\n/** Optional WorkOS mirror and Admin Portal route, independent of the auth adapter. */\nexport class WorkOSAuditIntegration implements FactoryIntegration {\n readonly id = 'workos';\n readonly #client: WorkOSClient;\n readonly #returnUrl: string;\n\n constructor({ client, returnUrl }: { client: WorkOSClient; returnUrl: string }) {\n this.#client = client;\n this.#returnUrl = returnUrl;\n }\n\n async audit({ event }: { event: AuditEventRow }): Promise<void> {\n try {\n await this.#client.auditLogs.createEvent(event.orgId, toWorkOSEvent(event));\n } catch (err) {\n console.warn('[Audit] Failed to forward audit event to WorkOS', {\n action: event.action,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n routes(ctx: IntegrationContext): ApiRoute[] {\n const { auth } = ctx;\n return [\n registerApiRoute('/web/audit/portal-link', {\n method: 'GET',\n handler: async cc => {\n const c = loose(cc);\n await auth.ensureUser(c);\n const tenant = auth.tenant(c);\n if (!tenant) return c.json({ error: 'unauthorized' }, 401);\n if (!tenant.orgId) {\n return c.json(\n { error: 'organization_required', message: 'The audit trail requires a WorkOS organization.' },\n 403,\n );\n }\n\n try {\n const portal = new WorkOSAdminPortal(this.#client, { returnUrl: this.#returnUrl });\n const url = await portal.getPortalLink(tenant.orgId, 'audit_logs');\n return c.json({ url });\n } catch (err) {\n console.warn('[Audit] Failed to generate WorkOS Admin Portal link', {\n error: err instanceof Error ? err.message : String(err),\n });\n return c.json({ error: 'portal_link_failed' }, 502);\n }\n },\n }),\n ];\n }\n\n diagnostics(): Record<string, unknown> {\n return { configured: true };\n }\n}\n"],"mappings":";;;AAUA,MAAM,mBAAmB;AAEzB,SAAS,MAAM,GAAqB;CAClC,OAAO;AACT;AAEA,SAAS,gBAAgB,UAA8E;CACrG,MAAM,OAAkD,CAAC;CACzD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,GAAG;EACnD,IAAI,UAAU,KAAA,KAAa,UAAU,MAAM;EAC3C,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;GACxF,KAAK,OAAO;GACZ;EACF;EACA,IAAI;GACF,KAAK,OAAO,KAAK,UAAU,KAAK;EAClC,QAAQ,CAER;CACF;CACA,OAAO;AACT;AAEA,SAAgB,cAAc,OAO5B;CACA,OAAO;EACL,QAAQ,MAAM;EACd,YAAY,MAAM;EAClB,OAAO;GAAE,MAAM,MAAM,cAAc,UAAU,UAAU;GAAQ,IAAI,MAAM;EAAQ;EACjF,SAAS,MAAM,QAAQ,KAAI,YAAW;GACpC,MAAM,OAAO;GACb,IAAI,OAAO;GACX,GAAI,OAAO,SAAS,KAAA,IAAY,EAAE,MAAM,OAAO,KAAK,IAAI,CAAC;EAC3D,EAAE;EACF,SAAS;GACP,UAAU,MAAM,QAAQ,YAAY;GACpC,GAAI,MAAM,QAAQ,cAAc,KAAA,IAAY,EAAE,WAAW,MAAM,QAAQ,UAAU,IAAI,CAAC;EACxF;EACA,UAAU,gBAAgB,MAAM,QAAQ;CAC1C;AACF;;AAGA,IAAa,yBAAb,MAAkE;CAChE,KAAc;CACd;CACA;CAEA,YAAY,EAAE,QAAQ,aAA0D;EAC9E,KAAKA,UAAU;EACf,KAAKC,aAAa;CACpB;CAEA,MAAM,MAAM,EAAE,SAAkD;EAC9D,IAAI;GACF,MAAM,KAAKD,QAAQ,UAAU,YAAY,MAAM,OAAO,cAAc,KAAK,CAAC;EAC5E,SAAS,KAAK;GACZ,QAAQ,KAAK,mDAAmD;IAC9D,QAAQ,MAAM;IACd,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;GACxD,CAAC;EACH;CACF;CAEA,OAAO,KAAqC;EAC1C,MAAM,EAAE,SAAS;EACjB,OAAO,CACL,iBAAiB,0BAA0B;GACzC,QAAQ;GACR,SAAS,OAAM,OAAM;IACnB,MAAM,IAAI,MAAM,EAAE;IAClB,MAAM,KAAK,WAAW,CAAC;IACvB,MAAM,SAAS,KAAK,OAAO,CAAC;IAC5B,IAAI,CAAC,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,eAAe,GAAG,GAAG;IACzD,IAAI,CAAC,OAAO,OACV,OAAO,EAAE,KACP;KAAE,OAAO;KAAyB,SAAS;IAAkD,GAC7F,GACF;IAGF,IAAI;KAEF,MAAM,MAAM,MAAM,IADC,kBAAkB,KAAKA,SAAS,EAAE,WAAW,KAAKC,WAAW,CACzD,CAAC,CAAC,cAAc,OAAO,OAAO,YAAY;KACjE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;IACvB,SAAS,KAAK;KACZ,QAAQ,KAAK,uDAAuD,EAClE,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,EACxD,CAAC;KACD,OAAO,EAAE,KAAK,EAAE,OAAO,qBAAqB,GAAG,GAAG;IACpD;GACF;EACF,CAAC,CACH;CACF;CAEA,cAAuC;EACrC,OAAO,EAAE,YAAY,KAAK;CAC5B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}