expxagents 0.24.2 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/dashboard/assets/{BufferResource-RMf3hLtL.js → BufferResource-A8ncaeYI.js} +1 -1
  2. package/dist/dashboard/assets/{CanvasRenderer-By9CeUeH.js → CanvasRenderer-B9ePxyZx.js} +1 -1
  3. package/dist/dashboard/assets/{JarvisView-DCkJVL5f.js → JarvisView-BzSP9oge.js} +1 -1
  4. package/dist/dashboard/assets/{RenderTargetSystem-Du3lfljq.js → RenderTargetSystem-B6qE1bDj.js} +1 -1
  5. package/dist/dashboard/assets/{ThreeBackground-m9EgwJVc.js → ThreeBackground-Ds6SAxmB.js} +1 -1
  6. package/dist/dashboard/assets/{WebGLRenderer-BfDYJhYQ.js → WebGLRenderer-D5vXNoQg.js} +1 -1
  7. package/dist/dashboard/assets/{WebGPURenderer-CYzaDyV_.js → WebGPURenderer-CPOVD6U9.js} +1 -1
  8. package/dist/dashboard/assets/{browserAll-CFQKTPw8.js → browserAll-BXl_rCrX.js} +1 -1
  9. package/dist/dashboard/assets/{index-DPwnElYV.js → index--ULBmMcf.js} +206 -206
  10. package/dist/dashboard/assets/{webworkerAll-Cti2tnMb.js → webworkerAll-Dv96EAc4.js} +1 -1
  11. package/dist/dashboard/index.html +1 -1
  12. package/dist/server/api/permissions-routes.d.ts +8 -0
  13. package/dist/server/api/permissions-routes.d.ts.map +1 -0
  14. package/dist/server/api/permissions-routes.js +37 -0
  15. package/dist/server/api/permissions-routes.js.map +1 -0
  16. package/dist/server/api/squads-routes.d.ts +2 -0
  17. package/dist/server/api/squads-routes.d.ts.map +1 -1
  18. package/dist/server/api/squads-routes.js +9 -3
  19. package/dist/server/api/squads-routes.js.map +1 -1
  20. package/dist/server/app.d.ts.map +1 -1
  21. package/dist/server/app.js +3 -1
  22. package/dist/server/app.js.map +1 -1
  23. package/dist/server/auth/auth-routes.d.ts.map +1 -1
  24. package/dist/server/auth/auth-routes.js +4 -1
  25. package/dist/server/auth/auth-routes.js.map +1 -1
  26. package/dist/server/db/schema.d.ts +1 -1
  27. package/dist/server/db/schema.d.ts.map +1 -1
  28. package/dist/server/db/schema.js +12 -0
  29. package/dist/server/db/schema.js.map +1 -1
  30. package/dist/server/services/__tests__/permissions-service.test.d.ts +2 -0
  31. package/dist/server/services/__tests__/permissions-service.test.d.ts.map +1 -0
  32. package/dist/server/services/__tests__/permissions-service.test.js +46 -0
  33. package/dist/server/services/__tests__/permissions-service.test.js.map +1 -0
  34. package/dist/server/services/permissions-service.d.ts +10 -0
  35. package/dist/server/services/permissions-service.d.ts.map +1 -0
  36. package/dist/server/services/permissions-service.js +48 -0
  37. package/dist/server/services/permissions-service.js.map +1 -0
  38. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index-DPwnElYV.js";var M=`in vec2 aPosition;
1
+ import{a1 as G,a3 as I,a4 as B,l as _,M as k,W as O,N as A,a9 as m,T as v,as as C,R as E,w as z,a8 as U,v as w}from"./index--ULBmMcf.js";var M=`in vec2 aPosition;
2
2
  out vec2 vTextureCoord;
3
3
 
4
4
  uniform vec4 uInputSize;
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>ExpxAgents — Mission Control</title>
7
- <script type="module" crossorigin src="/assets/index-DPwnElYV.js"></script>
7
+ <script type="module" crossorigin src="/assets/index--ULBmMcf.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-DtbIzZ5n.css">
9
9
  </head>
10
10
  <body>
@@ -0,0 +1,8 @@
1
+ import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
+ import type Database from 'better-sqlite3';
3
+ interface PermissionsRoutesOptions extends FastifyPluginOptions {
4
+ db: Database.Database;
5
+ }
6
+ export declare function permissionsRoutes(app: FastifyInstance, opts: PermissionsRoutesOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=permissions-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-routes.d.ts","sourceRoot":"","sources":["../../src/api/permissions-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC3G"}
@@ -0,0 +1,37 @@
1
+ import { getUserSquads, getUserPages, setUserSquads, setUserPages, VALID_PAGES } from '../services/permissions-service.js';
2
+ export async function permissionsRoutes(app, opts) {
3
+ const { db } = opts;
4
+ // GET /api/users/:id/permissions — get user's squad and page access
5
+ app.get('/api/users/:id/permissions', {
6
+ preHandler: [app.requireAuth, app.requireRole('admin')],
7
+ }, async (request, reply) => {
8
+ const { id } = request.params;
9
+ const user = db.prepare('SELECT id FROM users WHERE id = ?').get(id);
10
+ if (!user)
11
+ return reply.code(404).send({ error: 'User not found' });
12
+ return {
13
+ squads: getUserSquads(db, id),
14
+ pages: getUserPages(db, id),
15
+ validPages: VALID_PAGES,
16
+ };
17
+ });
18
+ // PUT /api/users/:id/permissions — set user's squad and page access
19
+ app.put('/api/users/:id/permissions', {
20
+ preHandler: [app.requireAuth, app.requireRole('admin')],
21
+ }, async (request, reply) => {
22
+ const { id } = request.params;
23
+ const { squads, pages } = request.body;
24
+ const user = db.prepare('SELECT id FROM users WHERE id = ?').get(id);
25
+ if (!user)
26
+ return reply.code(404).send({ error: 'User not found' });
27
+ if (Array.isArray(squads))
28
+ setUserSquads(db, id, squads);
29
+ if (Array.isArray(pages))
30
+ setUserPages(db, id, pages);
31
+ return {
32
+ squads: getUserSquads(db, id),
33
+ pages: getUserPages(db, id),
34
+ };
35
+ });
36
+ }
37
+ //# sourceMappingURL=permissions-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-routes.js","sourceRoot":"","sources":["../../src/api/permissions-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAM3H,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAoB,EAAE,IAA8B;IAC1F,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAA6B,4BAA4B,EAAE;QAChE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACxD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEpE,OAAO;YACL,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;YAC7B,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;YAC3B,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,GAAG,CAAC,GAAG,CAA4E,4BAA4B,EAAE;QAC/G,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACxD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAEvC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAEpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO;YACL,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;YAC7B,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import type { FastifyInstance, FastifyPluginOptions } from 'fastify';
2
+ import type Database from 'better-sqlite3';
2
3
  interface SquadsRoutesOptions extends FastifyPluginOptions {
3
4
  squadsDir: string;
5
+ db?: Database.Database;
4
6
  }
5
7
  export declare function squadsRoutes(app: FastifyInstance, opts: SquadsRoutesOptions): Promise<void>;
6
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"squads-routes.d.ts","sourceRoot":"","sources":["../../src/api/squads-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIrE,UAAU,mBAAoB,SAAQ,oBAAoB;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AA+HD,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
1
+ {"version":3,"file":"squads-routes.d.ts","sourceRoot":"","sources":["../../src/api/squads-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,UAAU,mBAAoB,SAAQ,oBAAoB;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACxB;AA+HD,wBAAsB,YAAY,CAChC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { parse as parseYaml } from 'yaml';
4
+ import { canAccessSquad } from '../services/permissions-service.js';
4
5
  function findSquadDir(squadsDir, code) {
5
6
  if (!fs.existsSync(squadsDir))
6
7
  return null;
@@ -117,10 +118,15 @@ function discoverSquads(squadsDir) {
117
118
  return squads;
118
119
  }
119
120
  export async function squadsRoutes(app, opts) {
120
- const { squadsDir } = opts;
121
+ const { squadsDir, db } = opts;
121
122
  // GET /api/squads
122
- app.get('/api/squads', { preHandler: [app.requireAuth] }, async () => {
123
- return { squads: discoverSquads(squadsDir) };
123
+ app.get('/api/squads', { preHandler: [app.requireAuth] }, async (request) => {
124
+ const squads = discoverSquads(squadsDir);
125
+ if (!db || request.user.role === 'admin') {
126
+ return { squads };
127
+ }
128
+ const filtered = squads.filter((s) => canAccessSquad(db, request.user.userId, request.user.role, s.code));
129
+ return { squads: filtered };
124
130
  });
125
131
  // GET /api/squads/:name
126
132
  app.get('/api/squads/:name', { preHandler: [app.requireAuth] }, async (request, reply) => {
@@ -1 +1 @@
1
- {"version":3,"file":"squads-routes.js","sourceRoot":"","sources":["../../src/api/squads-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"squads-routes.js","sourceRoot":"","sources":["../../src/api/squads-routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AA4BpE,SAAS,YAAY,CAAC,SAAiB,EAAE,IAAY;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QACjF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,IAAI,OAAoB,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS;YACnC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,0DAA0D;gBAC1D,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC9B,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC;oBACxB,IAAI,CAAC,EAAE,CAAC;wBACN,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;wBACnC,MAAM,KAAK,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;4BACvD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;gCACzB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;gCACf,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;gCACrB,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;gCACrB,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;6BAC3D,CAAC,CAAC;4BACL,CAAC,CAAC,EAAE,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;4BACtD,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC1D,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;4BACtD,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;4BACnE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;4BAChD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gCAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oCACxB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;oCACb,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;oCACzB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO;oCACvB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCAC1C,CAAC,CAAC;gCACL,CAAC,CAAC,EAAE;4BACN,QAAQ,EAAE,EAAE,KAAK,EAAE;yBACpB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,WAAW,EAAE,EAAE;wBACf,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;qBACxB,CAAC,CAAC;gBACL,CAAC;gBACD,iCAAiC;YACnC,CAAC;iBAAM,CAAC;gBACN,kDAAkD;gBAClD,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAoB,EACpB,IAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE/B,kBAAkB;IAClB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1G,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,GAAG,CAAC,GAAG,CACL,mBAAmB,EACnB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EACjC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAElD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAC3H,CAAC,CACF,CAAC;IAEF,8BAA8B;IAC9B,GAAG,CAAC,GAAG,CACL,yBAAyB,EACzB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EACjC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAgCtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoO/E"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiCtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAqO/E"}
@@ -45,6 +45,7 @@ import { getActiveActivityId, markTaskExecutingByPosition, markTaskDoneByPositio
45
45
  import { systemRoutes } from './api/system-routes.js';
46
46
  import { webhookRoutes } from './api/webhook-routes.js';
47
47
  import { dashboardRoutes } from './api/dashboard-routes.js';
48
+ import { permissionsRoutes } from './api/permissions-routes.js';
48
49
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
49
50
  export async function buildApp(opts) {
50
51
  const config = { ...loadConfig(), ...opts?.config };
@@ -72,7 +73,7 @@ export async function buildApp(opts) {
72
73
  // Routes
73
74
  await app.register(healthRoutes, { db });
74
75
  await app.register(authRoutes, { db, jwtSecret: config.jwtSecret });
75
- await app.register(squadsRoutes, { squadsDir: config.squadsDir });
76
+ await app.register(squadsRoutes, { squadsDir: config.squadsDir, db });
76
77
  await app.register(usersRoutes, { db });
77
78
  await app.register(conversationRoutes, { db });
78
79
  await app.register(activityRoutes, { db });
@@ -87,6 +88,7 @@ export async function buildApp(opts) {
87
88
  await app.register(knowledgeRoutes, { db });
88
89
  await app.register(costRoutes, { db });
89
90
  await app.register(logRoutes, { db });
91
+ await app.register(permissionsRoutes, { db });
90
92
  // Kill registry: populated after bridges are created below
91
93
  const killRegistry = { fn: (_squadCode) => { } };
92
94
  // Engine Manager (hot-swap support) — created before systemRoutes
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C,UAAU,iBAAkB,SAAQ,oBAAoB;IACtD,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAqNf"}
1
+ {"version":3,"file":"auth-routes.d.ts","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAM3C,UAAU,iBAAkB,SAAQ,oBAAoB;IACtD,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAsB,UAAU,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAuNf"}
@@ -1,6 +1,7 @@
1
1
  import crypto from 'node:crypto';
2
2
  import { hashPassword, verifyPassword } from './password.js';
3
3
  import { signAccessToken, signRefreshToken, verifyRefreshToken } from './jwt.js';
4
+ import { getUserSquads, getUserPages } from '../services/permissions-service.js';
4
5
  export async function authRoutes(app, opts) {
5
6
  const { db, jwtSecret } = opts;
6
7
  // --- POST /api/auth/login ---
@@ -143,7 +144,9 @@ export async function authRoutes(app, opts) {
143
144
  if (!user) {
144
145
  return { error: 'User not found' };
145
146
  }
146
- return { user };
147
+ const squads = user.role === 'admin' ? ['*'] : getUserSquads(db, user.id);
148
+ const pages = user.role === 'admin' ? ['*'] : getUserPages(db, user.id);
149
+ return { user: { ...user, squads, pages } };
147
150
  });
148
151
  }
149
152
  //# sourceMappingURL=auth-routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-routes.js","sourceRoot":"","sources":["../../src/auth/auth-routes.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const SCHEMA_SQL = "\nCREATE TABLE IF NOT EXISTS users (\n id TEXT PRIMARY KEY,\n username TEXT UNIQUE NOT NULL,\n email TEXT,\n password_hash TEXT NOT NULL,\n role TEXT NOT NULL DEFAULT 'operator',\n created_at TEXT NOT NULL,\n last_login TEXT\n);\n\nCREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n token_hash TEXT NOT NULL,\n expires_at TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS audit_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n user_id TEXT NOT NULL REFERENCES users(id),\n action TEXT NOT NULL,\n details TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS conversations (\n id TEXT PRIMARY KEY,\n squad_name TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS chat_messages (\n id TEXT PRIMARY KEY,\n conversation_id TEXT NOT NULL REFERENCES conversations(id),\n role TEXT NOT NULL,\n content TEXT NOT NULL,\n agent_id TEXT,\n agent_name TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS squad_activities (\n id TEXT PRIMARY KEY,\n squad_code TEXT NOT NULL,\n conversation_id TEXT,\n started_at TEXT NOT NULL,\n finished_at TEXT,\n duration_ms INTEGER,\n status TEXT NOT NULL DEFAULT 'running',\n user_message TEXT,\n result_summary TEXT,\n triggered_by TEXT DEFAULT 'dashboard',\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_squad_date\n ON squad_activities(squad_code, started_at);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_date\n ON squad_activities(started_at);\n\nCREATE TABLE IF NOT EXISTS scheduled_jobs (\n squad_name TEXT PRIMARY KEY,\n cron_expression TEXT NOT NULL,\n prompt TEXT NOT NULL,\n mode TEXT DEFAULT 'autonomous',\n timeout_minutes INTEGER DEFAULT 30,\n retry_on_failure INTEGER DEFAULT 0,\n timezone TEXT,\n status TEXT DEFAULT 'active',\n last_run_at TEXT,\n last_result TEXT,\n next_run_at TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_triggered_by\n ON squad_activities(triggered_by, squad_code);\n\nCREATE TABLE IF NOT EXISTS leads (\n id TEXT PRIMARY KEY,\n email TEXT UNIQUE NOT NULL,\n name TEXT,\n company TEXT,\n metadata TEXT,\n status TEXT DEFAULT 'active',\n source TEXT,\n source_detail TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS lead_tags (\n lead_id TEXT NOT NULL REFERENCES leads(id) ON DELETE CASCADE,\n tag TEXT NOT NULL,\n PRIMARY KEY (lead_id, tag)\n);\n\nCREATE TABLE IF NOT EXISTS lead_lists (\n lead_id TEXT NOT NULL REFERENCES leads(id) ON DELETE CASCADE,\n list_name TEXT NOT NULL,\n PRIMARY KEY (lead_id, list_name)\n);\n\nCREATE TABLE IF NOT EXISTS email_campaigns (\n id TEXT PRIMARY KEY,\n name TEXT,\n squad_name TEXT,\n subject TEXT,\n body_html TEXT,\n body_text TEXT,\n from_email TEXT,\n from_name TEXT,\n status TEXT DEFAULT 'draft',\n total_recipients INTEGER DEFAULT 0,\n sent_count INTEGER DEFAULT 0,\n failed_count INTEGER DEFAULT 0,\n bounce_count INTEGER DEFAULT 0,\n complaint_count INTEGER DEFAULT 0,\n created_at TEXT DEFAULT (datetime('now')),\n started_at TEXT,\n completed_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS email_queue (\n id TEXT PRIMARY KEY,\n campaign_id TEXT REFERENCES email_campaigns(id) ON DELETE CASCADE,\n lead_id TEXT REFERENCES leads(id) ON DELETE SET NULL,\n to_email TEXT NOT NULL,\n status TEXT DEFAULT 'pending',\n ses_message_id TEXT,\n error TEXT,\n attempts INTEGER DEFAULT 0,\n scheduled_at TEXT,\n sent_at TEXT,\n created_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_email_queue_status_scheduled\n ON email_queue(status, scheduled_at);\nCREATE INDEX IF NOT EXISTS idx_email_queue_ses_message_id\n ON email_queue(ses_message_id);\nCREATE INDEX IF NOT EXISTS idx_email_queue_campaign_status\n ON email_queue(campaign_id, status);\nCREATE INDEX IF NOT EXISTS idx_lead_tags_tag\n ON lead_tags(tag);\nCREATE INDEX IF NOT EXISTS idx_lead_lists_list_name\n ON lead_lists(list_name);\n\nCREATE TABLE IF NOT EXISTS team_members (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n role TEXT NOT NULL,\n email TEXT,\n phone TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS integrations (\n provider TEXT PRIMARY KEY,\n enabled INTEGER NOT NULL DEFAULT 0,\n config TEXT NOT NULL DEFAULT '{}',\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS kanban_tasks (\n id TEXT PRIMARY KEY,\n squad_code TEXT NOT NULL,\n title TEXT NOT NULL,\n description TEXT,\n status TEXT NOT NULL DEFAULT 'planned',\n position INTEGER NOT NULL DEFAULT 0,\n result TEXT,\n started_at TEXT,\n finished_at TEXT,\n step_id TEXT,\n agent_id TEXT,\n agent_name TEXT,\n activity_id TEXT REFERENCES squad_activities(id) ON DELETE SET NULL,\n triggered_by TEXT DEFAULT 'dashboard',\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_kanban_tasks_squad_status\n ON kanban_tasks(squad_code, status);\n\nCREATE TABLE IF NOT EXISTS squad_states (\n squad_code TEXT PRIMARY KEY,\n status TEXT NOT NULL DEFAULT 'idle',\n current_step INTEGER NOT NULL DEFAULT 0,\n total_steps INTEGER NOT NULL DEFAULT 0,\n step_label TEXT DEFAULT '',\n started_at TEXT,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS agent_states (\n id TEXT NOT NULL,\n squad_code TEXT NOT NULL REFERENCES squad_states(squad_code) ON DELETE CASCADE,\n name TEXT NOT NULL,\n icon TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'idle',\n step_index INTEGER NOT NULL DEFAULT 0,\n step_label TEXT DEFAULT '',\n deliver_to TEXT,\n desk_col INTEGER NOT NULL,\n desk_row INTEGER NOT NULL,\n message TEXT,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (squad_code, id)\n);\n\nCREATE TABLE IF NOT EXISTS handoffs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n squad_code TEXT NOT NULL REFERENCES squad_states(squad_code),\n from_agent TEXT NOT NULL,\n to_agent TEXT NOT NULL,\n message TEXT NOT NULL,\n completed_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_handoffs_squad ON handoffs(squad_code, completed_at);\nCREATE INDEX IF NOT EXISTS idx_agent_states_status ON agent_states(squad_code, status);\n\nCREATE TABLE IF NOT EXISTS cost_entries (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n squad_code TEXT NOT NULL,\n activity_id TEXT REFERENCES squad_activities(id) ON DELETE SET NULL,\n agent_id TEXT NOT NULL,\n agent_name TEXT,\n step_index INTEGER,\n model TEXT NOT NULL,\n input_chars INTEGER NOT NULL,\n output_chars INTEGER NOT NULL,\n estimated_tokens_in INTEGER NOT NULL,\n estimated_tokens_out INTEGER NOT NULL,\n estimated_cost_usd REAL NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_cost_squad_date ON cost_entries(squad_code, created_at);\nCREATE INDEX IF NOT EXISTS idx_cost_agent ON cost_entries(squad_code, agent_id);\nCREATE INDEX IF NOT EXISTS idx_cost_activity ON cost_entries(activity_id);\n\nCREATE TABLE IF NOT EXISTS event_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n level TEXT NOT NULL DEFAULT 'info',\n squad_code TEXT,\n source TEXT NOT NULL,\n message TEXT NOT NULL,\n detail TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_event_log_created ON event_log(created_at);\nCREATE INDEX IF NOT EXISTS idx_event_log_squad ON event_log(squad_code, created_at);\nCREATE INDEX IF NOT EXISTS idx_event_log_level ON event_log(level, created_at);\n\nCREATE TABLE IF NOT EXISTS execution_logs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n activity_id TEXT NOT NULL REFERENCES squad_activities(id) ON DELETE CASCADE,\n squad_code TEXT NOT NULL,\n chunk TEXT NOT NULL,\n source TEXT NOT NULL DEFAULT 'output',\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_execution_logs_activity ON execution_logs(activity_id, created_at);\n";
1
+ export declare const SCHEMA_SQL = "\nCREATE TABLE IF NOT EXISTS users (\n id TEXT PRIMARY KEY,\n username TEXT UNIQUE NOT NULL,\n email TEXT,\n password_hash TEXT NOT NULL,\n role TEXT NOT NULL DEFAULT 'operator',\n created_at TEXT NOT NULL,\n last_login TEXT\n);\n\nCREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n token_hash TEXT NOT NULL,\n expires_at TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS audit_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n user_id TEXT NOT NULL REFERENCES users(id),\n action TEXT NOT NULL,\n details TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS conversations (\n id TEXT PRIMARY KEY,\n squad_name TEXT NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS chat_messages (\n id TEXT PRIMARY KEY,\n conversation_id TEXT NOT NULL REFERENCES conversations(id),\n role TEXT NOT NULL,\n content TEXT NOT NULL,\n agent_id TEXT,\n agent_name TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS squad_activities (\n id TEXT PRIMARY KEY,\n squad_code TEXT NOT NULL,\n conversation_id TEXT,\n started_at TEXT NOT NULL,\n finished_at TEXT,\n duration_ms INTEGER,\n status TEXT NOT NULL DEFAULT 'running',\n user_message TEXT,\n result_summary TEXT,\n triggered_by TEXT DEFAULT 'dashboard',\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_squad_date\n ON squad_activities(squad_code, started_at);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_date\n ON squad_activities(started_at);\n\nCREATE TABLE IF NOT EXISTS scheduled_jobs (\n squad_name TEXT PRIMARY KEY,\n cron_expression TEXT NOT NULL,\n prompt TEXT NOT NULL,\n mode TEXT DEFAULT 'autonomous',\n timeout_minutes INTEGER DEFAULT 30,\n retry_on_failure INTEGER DEFAULT 0,\n timezone TEXT,\n status TEXT DEFAULT 'active',\n last_run_at TEXT,\n last_result TEXT,\n next_run_at TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_squad_activities_triggered_by\n ON squad_activities(triggered_by, squad_code);\n\nCREATE TABLE IF NOT EXISTS leads (\n id TEXT PRIMARY KEY,\n email TEXT UNIQUE NOT NULL,\n name TEXT,\n company TEXT,\n metadata TEXT,\n status TEXT DEFAULT 'active',\n source TEXT,\n source_detail TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS lead_tags (\n lead_id TEXT NOT NULL REFERENCES leads(id) ON DELETE CASCADE,\n tag TEXT NOT NULL,\n PRIMARY KEY (lead_id, tag)\n);\n\nCREATE TABLE IF NOT EXISTS lead_lists (\n lead_id TEXT NOT NULL REFERENCES leads(id) ON DELETE CASCADE,\n list_name TEXT NOT NULL,\n PRIMARY KEY (lead_id, list_name)\n);\n\nCREATE TABLE IF NOT EXISTS email_campaigns (\n id TEXT PRIMARY KEY,\n name TEXT,\n squad_name TEXT,\n subject TEXT,\n body_html TEXT,\n body_text TEXT,\n from_email TEXT,\n from_name TEXT,\n status TEXT DEFAULT 'draft',\n total_recipients INTEGER DEFAULT 0,\n sent_count INTEGER DEFAULT 0,\n failed_count INTEGER DEFAULT 0,\n bounce_count INTEGER DEFAULT 0,\n complaint_count INTEGER DEFAULT 0,\n created_at TEXT DEFAULT (datetime('now')),\n started_at TEXT,\n completed_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS email_queue (\n id TEXT PRIMARY KEY,\n campaign_id TEXT REFERENCES email_campaigns(id) ON DELETE CASCADE,\n lead_id TEXT REFERENCES leads(id) ON DELETE SET NULL,\n to_email TEXT NOT NULL,\n status TEXT DEFAULT 'pending',\n ses_message_id TEXT,\n error TEXT,\n attempts INTEGER DEFAULT 0,\n scheduled_at TEXT,\n sent_at TEXT,\n created_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_email_queue_status_scheduled\n ON email_queue(status, scheduled_at);\nCREATE INDEX IF NOT EXISTS idx_email_queue_ses_message_id\n ON email_queue(ses_message_id);\nCREATE INDEX IF NOT EXISTS idx_email_queue_campaign_status\n ON email_queue(campaign_id, status);\nCREATE INDEX IF NOT EXISTS idx_lead_tags_tag\n ON lead_tags(tag);\nCREATE INDEX IF NOT EXISTS idx_lead_lists_list_name\n ON lead_lists(list_name);\n\nCREATE TABLE IF NOT EXISTS team_members (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n role TEXT NOT NULL,\n email TEXT,\n phone TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS integrations (\n provider TEXT PRIMARY KEY,\n enabled INTEGER NOT NULL DEFAULT 0,\n config TEXT NOT NULL DEFAULT '{}',\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE TABLE IF NOT EXISTS kanban_tasks (\n id TEXT PRIMARY KEY,\n squad_code TEXT NOT NULL,\n title TEXT NOT NULL,\n description TEXT,\n status TEXT NOT NULL DEFAULT 'planned',\n position INTEGER NOT NULL DEFAULT 0,\n result TEXT,\n started_at TEXT,\n finished_at TEXT,\n step_id TEXT,\n agent_id TEXT,\n agent_name TEXT,\n activity_id TEXT REFERENCES squad_activities(id) ON DELETE SET NULL,\n triggered_by TEXT DEFAULT 'dashboard',\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_kanban_tasks_squad_status\n ON kanban_tasks(squad_code, status);\n\nCREATE TABLE IF NOT EXISTS squad_states (\n squad_code TEXT PRIMARY KEY,\n status TEXT NOT NULL DEFAULT 'idle',\n current_step INTEGER NOT NULL DEFAULT 0,\n total_steps INTEGER NOT NULL DEFAULT 0,\n step_label TEXT DEFAULT '',\n started_at TEXT,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS agent_states (\n id TEXT NOT NULL,\n squad_code TEXT NOT NULL REFERENCES squad_states(squad_code) ON DELETE CASCADE,\n name TEXT NOT NULL,\n icon TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'idle',\n step_index INTEGER NOT NULL DEFAULT 0,\n step_label TEXT DEFAULT '',\n deliver_to TEXT,\n desk_col INTEGER NOT NULL,\n desk_row INTEGER NOT NULL,\n message TEXT,\n updated_at TEXT NOT NULL,\n PRIMARY KEY (squad_code, id)\n);\n\nCREATE TABLE IF NOT EXISTS handoffs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n squad_code TEXT NOT NULL REFERENCES squad_states(squad_code),\n from_agent TEXT NOT NULL,\n to_agent TEXT NOT NULL,\n message TEXT NOT NULL,\n completed_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_handoffs_squad ON handoffs(squad_code, completed_at);\nCREATE INDEX IF NOT EXISTS idx_agent_states_status ON agent_states(squad_code, status);\n\nCREATE TABLE IF NOT EXISTS cost_entries (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n squad_code TEXT NOT NULL,\n activity_id TEXT REFERENCES squad_activities(id) ON DELETE SET NULL,\n agent_id TEXT NOT NULL,\n agent_name TEXT,\n step_index INTEGER,\n model TEXT NOT NULL,\n input_chars INTEGER NOT NULL,\n output_chars INTEGER NOT NULL,\n estimated_tokens_in INTEGER NOT NULL,\n estimated_tokens_out INTEGER NOT NULL,\n estimated_cost_usd REAL NOT NULL,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_cost_squad_date ON cost_entries(squad_code, created_at);\nCREATE INDEX IF NOT EXISTS idx_cost_agent ON cost_entries(squad_code, agent_id);\nCREATE INDEX IF NOT EXISTS idx_cost_activity ON cost_entries(activity_id);\n\nCREATE TABLE IF NOT EXISTS event_log (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n level TEXT NOT NULL DEFAULT 'info',\n squad_code TEXT,\n source TEXT NOT NULL,\n message TEXT NOT NULL,\n detail TEXT,\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_event_log_created ON event_log(created_at);\nCREATE INDEX IF NOT EXISTS idx_event_log_squad ON event_log(squad_code, created_at);\nCREATE INDEX IF NOT EXISTS idx_event_log_level ON event_log(level, created_at);\n\nCREATE TABLE IF NOT EXISTS execution_logs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n activity_id TEXT NOT NULL REFERENCES squad_activities(id) ON DELETE CASCADE,\n squad_code TEXT NOT NULL,\n chunk TEXT NOT NULL,\n source TEXT NOT NULL DEFAULT 'output',\n created_at TEXT NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_execution_logs_activity ON execution_logs(activity_id, created_at);\n\nCREATE TABLE IF NOT EXISTS user_squad_access (\n user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n squad_code TEXT NOT NULL,\n PRIMARY KEY (user_id, squad_code)\n);\n\nCREATE TABLE IF NOT EXISTS user_page_access (\n user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n page TEXT NOT NULL,\n PRIMARY KEY (user_id, page)\n);\n";
2
2
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,q+PAkRtB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,00QA8RtB,CAAC"}
@@ -272,5 +272,17 @@ CREATE TABLE IF NOT EXISTS execution_logs (
272
272
  );
273
273
 
274
274
  CREATE INDEX IF NOT EXISTS idx_execution_logs_activity ON execution_logs(activity_id, created_at);
275
+
276
+ CREATE TABLE IF NOT EXISTS user_squad_access (
277
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
278
+ squad_code TEXT NOT NULL,
279
+ PRIMARY KEY (user_id, squad_code)
280
+ );
281
+
282
+ CREATE TABLE IF NOT EXISTS user_page_access (
283
+ user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
284
+ page TEXT NOT NULL,
285
+ PRIMARY KEY (user_id, page)
286
+ );
275
287
  `;
276
288
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkRzB,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8RzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=permissions-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-service.test.d.ts","sourceRoot":"","sources":["../../../src/services/__tests__/permissions-service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import Database from 'better-sqlite3';
3
+ import { runMigrations } from '../../db/migrations.js';
4
+ import { getUserSquads, getUserPages, canAccessSquad, canAccessPage, setUserSquads, setUserPages, } from '../permissions-service.js';
5
+ describe('permissions-service', () => {
6
+ let db;
7
+ beforeEach(() => {
8
+ db = new Database(':memory:');
9
+ runMigrations(db);
10
+ db.prepare("INSERT INTO users (id, username, password_hash, role, created_at) VALUES ('u1', 'user1', 'hash', 'operator', '2026-01-01')").run();
11
+ });
12
+ afterEach(() => db.close());
13
+ it('getUserSquads returns empty for new user', () => {
14
+ expect(getUserSquads(db, 'u1')).toEqual([]);
15
+ });
16
+ it('setUserSquads and getUserSquads round-trip', () => {
17
+ setUserSquads(db, 'u1', ['squad-a', 'squad-b']);
18
+ expect(getUserSquads(db, 'u1')).toEqual(['squad-a', 'squad-b']);
19
+ });
20
+ it('setUserSquads replaces previous access', () => {
21
+ setUserSquads(db, 'u1', ['squad-a']);
22
+ setUserSquads(db, 'u1', ['squad-b']);
23
+ expect(getUserSquads(db, 'u1')).toEqual(['squad-b']);
24
+ });
25
+ it('canAccessSquad returns true for admin', () => {
26
+ expect(canAccessSquad(db, 'u1', 'admin', 'any-squad')).toBe(true);
27
+ });
28
+ it('canAccessSquad returns false without access', () => {
29
+ expect(canAccessSquad(db, 'u1', 'operator', 'squad-a')).toBe(false);
30
+ });
31
+ it('canAccessSquad returns true with access', () => {
32
+ setUserSquads(db, 'u1', ['squad-a']);
33
+ expect(canAccessSquad(db, 'u1', 'operator', 'squad-a')).toBe(true);
34
+ });
35
+ it('setUserPages filters invalid pages', () => {
36
+ setUserPages(db, 'u1', ['chat', 'kanban', 'invalid-page']);
37
+ expect(getUserPages(db, 'u1')).toEqual(['chat', 'kanban']);
38
+ });
39
+ it('canAccessPage returns true for admin', () => {
40
+ expect(canAccessPage(db, 'u1', 'admin', 'settings')).toBe(true);
41
+ });
42
+ it('canAccessPage returns false without access', () => {
43
+ expect(canAccessPage(db, 'u1', 'operator', 'settings')).toBe(false);
44
+ });
45
+ });
46
+ //# sourceMappingURL=permissions-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/permissions-service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type Database from 'better-sqlite3';
2
+ declare const VALID_PAGES: string[];
3
+ export declare function getUserSquads(db: Database.Database, userId: string): string[];
4
+ export declare function getUserPages(db: Database.Database, userId: string): string[];
5
+ export declare function canAccessSquad(db: Database.Database, userId: string, role: string, squadCode: string): boolean;
6
+ export declare function canAccessPage(db: Database.Database, userId: string, role: string, page: string): boolean;
7
+ export declare function setUserSquads(db: Database.Database, userId: string, squadCodes: string[]): void;
8
+ export declare function setUserPages(db: Database.Database, userId: string, pages: string[]): void;
9
+ export { VALID_PAGES };
10
+ //# sourceMappingURL=permissions-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-service.d.ts","sourceRoot":"","sources":["../../src/services/permissions-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,QAAA,MAAM,WAAW,UAIhB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAG7E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAI9G;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxG;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAS/F;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAUzF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,48 @@
1
+ const VALID_PAGES = [
2
+ 'office', 'chat', 'kanban', 'marketplace', 'dashboard',
3
+ 'scheduler', 'email', 'orgchart', 'graph', 'files',
4
+ 'knowledge', 'settings', 'logs',
5
+ ];
6
+ export function getUserSquads(db, userId) {
7
+ const rows = db.prepare('SELECT squad_code FROM user_squad_access WHERE user_id = ?').all(userId);
8
+ return rows.map((r) => r.squad_code);
9
+ }
10
+ export function getUserPages(db, userId) {
11
+ const rows = db.prepare('SELECT page FROM user_page_access WHERE user_id = ?').all(userId);
12
+ return rows.map((r) => r.page);
13
+ }
14
+ export function canAccessSquad(db, userId, role, squadCode) {
15
+ if (role === 'admin')
16
+ return true;
17
+ const row = db.prepare('SELECT 1 FROM user_squad_access WHERE user_id = ? AND squad_code = ?').get(userId, squadCode);
18
+ return !!row;
19
+ }
20
+ export function canAccessPage(db, userId, role, page) {
21
+ if (role === 'admin')
22
+ return true;
23
+ const row = db.prepare('SELECT 1 FROM user_page_access WHERE user_id = ? AND page = ?').get(userId, page);
24
+ return !!row;
25
+ }
26
+ export function setUserSquads(db, userId, squadCodes) {
27
+ const tx = db.transaction(() => {
28
+ db.prepare('DELETE FROM user_squad_access WHERE user_id = ?').run(userId);
29
+ const insert = db.prepare('INSERT INTO user_squad_access (user_id, squad_code) VALUES (?, ?)');
30
+ for (const code of squadCodes) {
31
+ insert.run(userId, code);
32
+ }
33
+ });
34
+ tx();
35
+ }
36
+ export function setUserPages(db, userId, pages) {
37
+ const filtered = pages.filter((p) => VALID_PAGES.includes(p));
38
+ const tx = db.transaction(() => {
39
+ db.prepare('DELETE FROM user_page_access WHERE user_id = ?').run(userId);
40
+ const insert = db.prepare('INSERT INTO user_page_access (user_id, page) VALUES (?, ?)');
41
+ for (const page of filtered) {
42
+ insert.run(userId, page);
43
+ }
44
+ });
45
+ tx();
46
+ }
47
+ export { VALID_PAGES };
48
+ //# sourceMappingURL=permissions-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-service.js","sourceRoot":"","sources":["../../src/services/permissions-service.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW;IACtD,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO;IAClD,WAAW,EAAE,UAAU,EAAE,MAAM;CAChC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,MAAc;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IAC9H,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAqB,EAAE,MAAc;IAChE,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAuB,CAAC;IACjH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,SAAiB;IACnG,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtH,OAAO,CAAC,CAAC,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,MAAc,EAAE,IAAY,EAAE,IAAY;IAC7F,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1G,OAAO,CAAC,CAAC,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,MAAc,EAAE,UAAoB;IACvF,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;QAC/F,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAqB,EAAE,MAAc,EAAE,KAAe;IACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;QACxF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxagents",
3
- "version": "0.24.2",
3
+ "version": "0.25.0",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",