@loom-framework/core 0.1.0-alpha.164 → 0.1.0-alpha.166

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 (57) hide show
  1. package/builtin-skills/loom/SKILL.md +9 -6
  2. package/builtin-skills/loom/references/eject.md +102 -0
  3. package/dist/cli/commands/eject.d.ts.map +1 -1
  4. package/dist/cli/commands/eject.js +52 -285
  5. package/dist/cli/commands/eject.js.map +1 -1
  6. package/dist/cli/commands/generate-system-settings.d.ts +3 -3
  7. package/dist/cli/commands/generate-system-settings.d.ts.map +1 -1
  8. package/dist/cli/commands/generate-system-settings.js +29 -204
  9. package/dist/cli/commands/generate-system-settings.js.map +1 -1
  10. package/dist/cli/commands/init.d.ts.map +1 -1
  11. package/dist/cli/commands/init.js +27 -44
  12. package/dist/cli/commands/init.js.map +1 -1
  13. package/dist/cli/helpers/app-tsx-utils.d.ts +12 -0
  14. package/dist/cli/helpers/app-tsx-utils.d.ts.map +1 -0
  15. package/dist/cli/helpers/app-tsx-utils.js +22 -0
  16. package/dist/cli/helpers/app-tsx-utils.js.map +1 -0
  17. package/dist/cli/helpers/app-tsx-wiring-engine.d.ts +70 -0
  18. package/dist/cli/helpers/app-tsx-wiring-engine.d.ts.map +1 -0
  19. package/dist/cli/helpers/app-tsx-wiring-engine.js +546 -0
  20. package/dist/cli/helpers/app-tsx-wiring-engine.js.map +1 -0
  21. package/dist/cli/helpers/app-tsx-wiring.d.ts +4 -39
  22. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -1
  23. package/dist/cli/helpers/app-tsx-wiring.js +5 -608
  24. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -1
  25. package/dist/cli/helpers/system-page-config.d.ts +27 -0
  26. package/dist/cli/helpers/system-page-config.d.ts.map +1 -0
  27. package/dist/cli/helpers/system-page-config.js +73 -0
  28. package/dist/cli/helpers/system-page-config.js.map +1 -0
  29. package/dist/cli/templates/login-page.d.ts +2 -3
  30. package/dist/cli/templates/login-page.d.ts.map +1 -1
  31. package/dist/cli/templates/login-page.js +18 -29
  32. package/dist/cli/templates/login-page.js.map +1 -1
  33. package/dist/cli/templates/model-management-page.d.ts +2 -3
  34. package/dist/cli/templates/model-management-page.d.ts.map +1 -1
  35. package/dist/cli/templates/model-management-page.js +11 -9
  36. package/dist/cli/templates/model-management-page.js.map +1 -1
  37. package/dist/cli/templates/notification-center-page.d.ts +2 -3
  38. package/dist/cli/templates/notification-center-page.d.ts.map +1 -1
  39. package/dist/cli/templates/notification-center-page.js +25 -62
  40. package/dist/cli/templates/notification-center-page.js.map +1 -1
  41. package/dist/cli/templates/notification-detail-page.d.ts +2 -3
  42. package/dist/cli/templates/notification-detail-page.d.ts.map +1 -1
  43. package/dist/cli/templates/notification-detail-page.js +13 -41
  44. package/dist/cli/templates/notification-detail-page.js.map +1 -1
  45. package/dist/cli/templates/process-management-page.d.ts +3 -3
  46. package/dist/cli/templates/process-management-page.d.ts.map +1 -1
  47. package/dist/cli/templates/process-management-page.js +75 -565
  48. package/dist/cli/templates/process-management-page.js.map +1 -1
  49. package/dist/cli/templates/skill-management-page.d.ts +2 -3
  50. package/dist/cli/templates/skill-management-page.d.ts.map +1 -1
  51. package/dist/cli/templates/skill-management-page.js +12 -15
  52. package/dist/cli/templates/skill-management-page.js.map +1 -1
  53. package/dist/cli/templates/user-management-page.d.ts +2 -4
  54. package/dist/cli/templates/user-management-page.d.ts.map +1 -1
  55. package/dist/cli/templates/user-management-page.js +21 -22
  56. package/dist/cli/templates/user-management-page.js.map +1 -1
  57. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"process-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/process-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+8BR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"process-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/process-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,6BAA6B;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqeP,CAAC;AACH,CAAC"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Skill Management page template
3
3
  *
4
- * Generates SkillManagement page as a local source file.
5
- * Page imports sub-components from @loom-framework/frontend-antd and
6
- * registers its own i18n keys via registerMessages().
4
+ * GENERATED by scripts/generate-templates.ts DO NOT EDIT MANUALLY.
5
+ * Source: packages/frontend-antd/src/components/pages/skill-management-page.tsx
7
6
  */
8
7
  export declare function skillManagementPageTemplate(): string;
9
8
  //# sourceMappingURL=skill-management-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-management-page.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/skill-management-page.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,wBAAgB,2BAA2B,IAAI,MAAM,CAmdpD"}
1
+ {"version":3,"file":"skill-management-page.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/skill-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,2BAA2B,IAAI,MAAM,CAidpD"}
@@ -1,12 +1,15 @@
1
1
  /**
2
2
  * Skill Management page template
3
3
  *
4
- * Generates SkillManagement page as a local source file.
5
- * Page imports sub-components from @loom-framework/frontend-antd and
6
- * registers its own i18n keys via registerMessages().
4
+ * GENERATED by scripts/generate-templates.ts DO NOT EDIT MANUALLY.
5
+ * Source: packages/frontend-antd/src/components/pages/skill-management-page.tsx
7
6
  */
8
7
  export function skillManagementPageTemplate() {
9
- return `import React, { useState, useEffect, useCallback, useMemo } from 'react';
8
+ return `/**
9
+ * SkillManagementPage - Loom skill management with tree view
10
+ */
11
+
12
+ import React, { useState, useEffect, useCallback, useMemo } from 'react';
10
13
  import {
11
14
  Card,
12
15
  Tree,
@@ -21,6 +24,8 @@ import {
21
24
  theme,
22
25
  } from 'antd';
23
26
  import {
27
+ import type { SkillInfo, SkillDetail, FileContent, SkillTreeNode } from '@loom-framework/frontend-antd';
28
+ import { useLocale, registerMessages, useLoomTheme, useAppShell, SkillFileViewer, SkillUploadModal, fetchSkillsList, fetchSkillDetail, fetchSkillFile, deleteSkill, downloadSkill, getFileIcon } from '@loom-framework/frontend-antd';
24
29
  FolderOutlined,
25
30
  ReloadOutlined,
26
31
  UploadOutlined,
@@ -31,13 +36,6 @@ import {
31
36
  CodeOutlined,
32
37
  HomeOutlined,
33
38
  } from '@ant-design/icons';
34
- import {
35
- useLocale, useLoomTheme, useAppShell, registerMessages,
36
- SkillFileViewer, SkillUploadModal,
37
- fetchSkillsList, fetchSkillDetail, fetchSkillFile, deleteSkill, downloadSkill,
38
- getFileIcon,
39
- } from '@loom-framework/frontend-antd';
40
- import type { SkillInfo, SkillDetail, FileContent, SkillTreeNode } from '@loom-framework/frontend-antd';
41
39
 
42
40
  registerMessages('zh-CN', {
43
41
  'skill.title': '技能管理',
@@ -147,7 +145,7 @@ registerMessages('en-US', {
147
145
  'skill.fileStructure': 'File structure:',
148
146
  });
149
147
 
150
- export default function SkillManagementPage(): React.ReactElement {
148
+ function SkillManagementPage(): React.ReactElement {
151
149
  const { mode } = useLoomTheme();
152
150
  const { t } = useLocale();
153
151
  const { breadcrumbs, onNavClick } = useAppShell();
@@ -356,7 +354,7 @@ export default function SkillManagementPage(): React.ReactElement {
356
354
  return (
357
355
  <div style={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}>
358
356
  <Flex justify="space-between" align="center" style={{ marginBottom: 12 }}>
359
- <Breadcrumb items={[{ title: <HomeOutlined onClick={() => onNavClick?.('')} style={{ cursor: 'pointer' }} /> }, ...(breadcrumbs || []).map(b => ({ title: b.path ? <a onClick={() => onNavClick?.(b.path!)}>{b.title}</a> : b.title }))]} />
357
+ <Breadcrumb items={[{ title: <HomeOutlined onClick={() => onNavClick?.('')} style={{ cursor: 'pointer' }} /> }, ...(breadcrumbs || []).map((b: { title: string; path?: string }) => ({ title: b.path ? <a onClick={() => onNavClick?.(b.path!)}>{b.title}</a> : b.title }))]} />
360
358
  <Space>
361
359
  <Button icon={<ReloadOutlined />} onClick={refreshSkills} loading={loading}>
362
360
  {t('skill.refresh')}
@@ -470,7 +468,6 @@ export default function SkillManagementPage(): React.ReactElement {
470
468
  />
471
469
  </div>
472
470
  );
473
- }
474
- `;
471
+ }`;
475
472
  }
476
473
  //# sourceMappingURL=skill-management-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/skill-management-page.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAidR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"skill-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/skill-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+cP,CAAC;AACH,CAAC"}
@@ -1,10 +1,8 @@
1
1
  /**
2
2
  * User Management page template
3
3
  *
4
- * Generates UserManagement page as a local source file.
5
- * Contains Users tab and Roles tab with full CRUD.
6
- * Page imports useUsers/useRoles hooks from @loom-framework/frontend-antd
7
- * and registers its own i18n keys via registerMessages().
4
+ * GENERATED by scripts/generate-templates.ts DO NOT EDIT MANUALLY.
5
+ * Source: packages/frontend-antd/src/auth/user-management-page.tsx
8
6
  */
9
7
  export declare function userManagementPageTemplate(): string;
10
8
  //# sourceMappingURL=user-management-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-management-page.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/user-management-page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,0BAA0B,IAAI,MAAM,CAqenD"}
1
+ {"version":3,"file":"user-management-page.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/user-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,0BAA0B,IAAI,MAAM,CAsenD"}
@@ -1,16 +1,22 @@
1
1
  /**
2
2
  * User Management page template
3
3
  *
4
- * Generates UserManagement page as a local source file.
5
- * Contains Users tab and Roles tab with full CRUD.
6
- * Page imports useUsers/useRoles hooks from @loom-framework/frontend-antd
7
- * and registers its own i18n keys via registerMessages().
4
+ * GENERATED by scripts/generate-templates.ts DO NOT EDIT MANUALLY.
5
+ * Source: packages/frontend-antd/src/auth/user-management-page.tsx
8
6
  */
9
7
  export function userManagementPageTemplate() {
10
- return `import React, { useState, useCallback, useEffect } from 'react';
11
- import { Card, Table, Button, Modal, Form, Input, Select, Space, message, Popconfirm, Tag, Typography, theme, Breadcrumb, Flex, Tabs, Descriptions } from 'antd';
8
+ return `/**
9
+ * UserManagementPage - Admin user & role management
10
+ *
11
+ * Users tab: user list + add/delete/edit + role assignment
12
+ * Roles tab: role list + add/edit/delete with permission configuration
13
+ * Uses useUsers and useRoles hooks.
14
+ */
15
+
16
+ import React, { useState, useCallback, useEffect } from 'react';
17
+ import { Table, Button, Modal, Form, Input, Select, Space, message, Popconfirm, Tag, Typography, theme, Breadcrumb, Flex, Tabs, Card } from 'antd';
12
18
  import { PlusOutlined, EditOutlined, DeleteOutlined, UserOutlined, HomeOutlined, SafetyOutlined } from '@ant-design/icons';
13
- import { useLocale, useAppShell, useUsers, useRoles, registerMessages } from '@loom-framework/frontend-antd';
19
+ import { useUsers, useRoles, useLocale, registerMessages, useAppShell } from '@loom-framework/frontend-antd';
14
20
 
15
21
  registerMessages('zh-CN', {
16
22
  'user.title': '用户管理',
@@ -116,8 +122,7 @@ const LEVEL_OPTIONS = [
116
122
  { value: 'admin', label: 'Admin' },
117
123
  ];
118
124
 
119
- export default function UserManagementPage(): React.ReactElement {
120
- const { token } = theme.useToken();
125
+ function UserManagementPage() {
121
126
  const { t } = useLocale();
122
127
  const { breadcrumbs, onNavClick } = useAppShell();
123
128
  const [activeTab, setActiveTab] = useState('users');
@@ -133,7 +138,7 @@ export default function UserManagementPage(): React.ReactElement {
133
138
  return (
134
139
  <div style={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}>
135
140
  <Flex justify="space-between" align="center" style={{ marginBottom: 12 }}>
136
- <Breadcrumb items={[{ title: <HomeOutlined onClick={() => onNavClick?.('')} style={{ cursor: 'pointer' }} /> }, ...(breadcrumbs || []).map(b => ({ title: b.path ? <a onClick={() => onNavClick?.(b.path!)}>{b.title}</a> : b.title }))]} />
141
+ <Breadcrumb items={[{ title: <HomeOutlined onClick={() => onNavClick?.('')} style={{ cursor: 'pointer' }} /> }, ...(breadcrumbs || []).map((b: { title: string; path?: string }) => ({ title: b.path ? <a onClick={() => onNavClick?.(b.path!)}>{b.title}</a> : b.title }))]} />
137
142
  </Flex>
138
143
  <Tabs
139
144
  activeKey={activeTab}
@@ -154,7 +159,7 @@ export default function UserManagementPage(): React.ReactElement {
154
159
  );
155
160
  }
156
161
 
157
- function UsersTab({ addUserModalOpen, onAddUserModalClose }: { addUserModalOpen: boolean; onAddUserModalClose: () => void }): React.ReactElement {
162
+ function UsersTab({ addUserModalOpen, onAddUserModalClose }: { addUserModalOpen: boolean; onAddUserModalClose: () => void }) {
158
163
  const { token } = theme.useToken();
159
164
  const { t } = useLocale();
160
165
  const { users, loading, addUser, deleteUser, updateUser } = useUsers();
@@ -290,20 +295,16 @@ function UsersTab({ addUserModalOpen, onAddUserModalClose }: { addUserModalOpen:
290
295
  );
291
296
  }
292
297
 
293
- function RolesTab({ addRoleModalOpen, onAddRoleModalClose }: { addRoleModalOpen: boolean; onAddRoleModalClose: () => void }): React.ReactElement {
298
+ function RolesTab({ addRoleModalOpen, onAddRoleModalClose }: { addRoleModalOpen: boolean; onAddRoleModalClose: () => void }) {
294
299
  const { token } = theme.useToken();
295
300
  const { t } = useLocale();
296
301
  const { users } = useUsers();
297
- const { rolesData, loading, createRole, updateRole, deleteRole, refresh } = useRoles();
302
+ const { rolesData, loading, createRole, updateRole, deleteRole } = useRoles();
298
303
  const [editModalOpen, setEditModalOpen] = useState(false);
299
304
  const [editingRole, setEditingRole] = useState<{ role: string; permissions: Array<{ model: string; level: string }> } | null>(null);
300
305
  const [roleForm] = Form.useForm();
301
306
  const [permRows, setPermRows] = useState<Array<{ model: string; level: string }>>([]);
302
307
 
303
- const modelOptions = rolesData
304
- ? [...rolesData.models.map(m => ({ value: m, label: m })), { value: '*', label: t('user.wildcard') || 'All Models' }]
305
- : [];
306
-
307
308
  const buildPermRows = useCallback((permissions: Array<{ model: string; level: string }>, models: string[]) => {
308
309
  const rows: Array<{ model: string; level: string }> = [];
309
310
  const covered = new Set(permissions.map(p => p.model));
@@ -312,8 +313,7 @@ function RolesTab({ addRoleModalOpen, onAddRoleModalClose }: { addRoleModalOpen:
312
313
  rows.push({ model: m, level: existing?.level || 'none' });
313
314
  }
314
315
  if (!covered.has('*')) {
315
- const wildcard = permissions.find(p => p.model === '*');
316
- rows.push({ model: '*', level: wildcard?.level || 'none' });
316
+ rows.push({ model: '*', level: permissions.find(p => p.model === '*')?.level || 'none' });
317
317
  } else {
318
318
  rows.push({ model: '*', level: permissions.find(p => p.model === '*')?.level || 'none' });
319
319
  }
@@ -409,7 +409,7 @@ function RolesTab({ addRoleModalOpen, onAddRoleModalClose }: { addRoleModalOpen:
409
409
  title: t('user.action') || 'Action',
410
410
  key: 'action',
411
411
  width: 100,
412
- render: (_: unknown, record: { role: string }) => (
412
+ render: (_: unknown, record: { role: string; permissions: Array<{ model: string; level: string }> }) => (
413
413
  <Space size={0}>
414
414
  <Button type="text" size="small" icon={<EditOutlined />} onClick={() => openEditModal(record as { role: string; permissions: Array<{ model: string; level: string }> })} />
415
415
  <Popconfirm
@@ -489,7 +489,6 @@ function RolesTab({ addRoleModalOpen, onAddRoleModalClose }: { addRoleModalOpen:
489
489
  </Modal>
490
490
  </>
491
491
  );
492
- }
493
- `;
492
+ }`;
494
493
  }
495
494
  //# sourceMappingURL=user-management-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/user-management-page.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmeR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"user-management-page.js","sourceRoot":"","sources":["../../../src/cli/templates/user-management-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,UAAU,0BAA0B;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoeP,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loom-framework/core",
3
- "version": "0.1.0-alpha.164",
3
+ "version": "0.1.0-alpha.166",
4
4
  "description": "Loom framework - DataAdapter, Capability Generator, config system, backend server, CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,7 +24,9 @@
24
24
  "build": "tsc",
25
25
  "dev": "tsc --watch",
26
26
  "clean": "rm -rf dist",
27
- "lint": "tsc --noEmit"
27
+ "lint": "tsc --noEmit",
28
+ "generate-templates": "tsx scripts/generate-templates.ts",
29
+ "check-template-freshness": "tsx scripts/check-template-freshness.ts"
28
30
  },
29
31
  "dependencies": {
30
32
  "@fastify/cors": "^10.0.0",