@loom-framework/core 0.1.0-alpha.140 → 0.1.0-alpha.142

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 (98) hide show
  1. package/dist/backend/ai/button-resolver.d.ts +1 -1
  2. package/dist/backend/ai/button-resolver.d.ts.map +1 -1
  3. package/dist/backend/ai/engine.d.ts +1 -1
  4. package/dist/backend/ai/engine.d.ts.map +1 -1
  5. package/dist/backend/ai/output-parser.d.ts +1 -1
  6. package/dist/backend/ai/output-parser.d.ts.map +1 -1
  7. package/dist/backend/ai/session-manager.d.ts +1 -1
  8. package/dist/backend/ai/session-manager.d.ts.map +1 -1
  9. package/dist/backend/index.d.ts +3 -5
  10. package/dist/backend/index.d.ts.map +1 -1
  11. package/dist/backend/index.js +3 -15
  12. package/dist/backend/index.js.map +1 -1
  13. package/dist/backend/observe/logger.d.ts +1 -4
  14. package/dist/backend/observe/logger.d.ts.map +1 -1
  15. package/dist/backend/observe/logger.js +3 -18
  16. package/dist/backend/observe/logger.js.map +1 -1
  17. package/dist/backend/routes/chat-sse.d.ts +17 -0
  18. package/dist/backend/routes/chat-sse.d.ts.map +1 -0
  19. package/dist/backend/routes/chat-sse.js +60 -0
  20. package/dist/backend/routes/chat-sse.js.map +1 -0
  21. package/dist/backend/routes/chat.d.ts +2 -6
  22. package/dist/backend/routes/chat.d.ts.map +1 -1
  23. package/dist/backend/routes/chat.js +4 -137
  24. package/dist/backend/routes/chat.js.map +1 -1
  25. package/dist/backend/routes/data.d.ts +2 -1
  26. package/dist/backend/routes/data.d.ts.map +1 -1
  27. package/dist/backend/routes/data.js +1 -1
  28. package/dist/backend/routes/data.js.map +1 -1
  29. package/dist/backend/routes/health.d.ts +1 -1
  30. package/dist/backend/routes/health.d.ts.map +1 -1
  31. package/dist/backend/routes/index.d.ts +2 -0
  32. package/dist/backend/routes/index.d.ts.map +1 -1
  33. package/dist/backend/routes/index.js +1 -0
  34. package/dist/backend/routes/index.js.map +1 -1
  35. package/dist/backend/routes/session-routes.d.ts +20 -0
  36. package/dist/backend/routes/session-routes.d.ts.map +1 -0
  37. package/dist/backend/routes/session-routes.js +94 -0
  38. package/dist/backend/routes/session-routes.js.map +1 -0
  39. package/dist/backend/routes/skill-archive.d.ts +13 -0
  40. package/dist/backend/routes/skill-archive.d.ts.map +1 -0
  41. package/dist/backend/routes/skill-archive.js +84 -0
  42. package/dist/backend/routes/skill-archive.js.map +1 -0
  43. package/dist/backend/routes/skill-parser.d.ts +41 -0
  44. package/dist/backend/routes/skill-parser.d.ts.map +1 -0
  45. package/dist/backend/routes/skill-parser.js +184 -0
  46. package/dist/backend/routes/skill-parser.js.map +1 -0
  47. package/dist/backend/routes/skill-service.d.ts +113 -0
  48. package/dist/backend/routes/skill-service.d.ts.map +1 -0
  49. package/dist/backend/routes/skill-service.js +265 -0
  50. package/dist/backend/routes/skill-service.js.map +1 -0
  51. package/dist/backend/routes/skills.d.ts +3 -0
  52. package/dist/backend/routes/skills.d.ts.map +1 -1
  53. package/dist/backend/routes/skills.js +33 -456
  54. package/dist/backend/routes/skills.js.map +1 -1
  55. package/dist/cli/commands/data.d.ts.map +1 -1
  56. package/dist/cli/commands/data.js +3 -1
  57. package/dist/cli/commands/data.js.map +1 -1
  58. package/dist/cli/commands/dev.d.ts.map +1 -1
  59. package/dist/cli/commands/dev.js +2 -1
  60. package/dist/cli/commands/dev.js.map +1 -1
  61. package/dist/cli/commands/generate-capabilities.d.ts.map +1 -1
  62. package/dist/cli/commands/generate-capabilities.js +2 -1
  63. package/dist/cli/commands/generate-capabilities.js.map +1 -1
  64. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -1
  65. package/dist/cli/commands/generate-dashboard.js +2 -2
  66. package/dist/cli/commands/generate-dashboard.js.map +1 -1
  67. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  68. package/dist/cli/commands/generate-page.js +8 -6
  69. package/dist/cli/commands/generate-page.js.map +1 -1
  70. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -1
  71. package/dist/cli/helpers/app-tsx-wiring.js +39 -24
  72. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -1
  73. package/dist/cli/helpers/column-template.d.ts +3 -1
  74. package/dist/cli/helpers/column-template.d.ts.map +1 -1
  75. package/dist/cli/helpers/column-template.js +5 -5
  76. package/dist/cli/helpers/column-template.js.map +1 -1
  77. package/dist/cli/helpers/duration.d.ts +2 -2
  78. package/dist/cli/helpers/duration.d.ts.map +1 -1
  79. package/dist/cli/helpers/duration.js +2 -16
  80. package/dist/cli/helpers/duration.js.map +1 -1
  81. package/dist/cli/helpers/field-template.d.ts +1 -1
  82. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  83. package/dist/cli/helpers/field-template.js +1 -1
  84. package/dist/cli/helpers/field-template.js.map +1 -1
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/types/chat.d.ts +33 -32
  89. package/dist/types/chat.d.ts.map +1 -1
  90. package/dist/types/chat.js +4 -1
  91. package/dist/types/chat.js.map +1 -1
  92. package/dist/types/index.d.ts +1 -1
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/utils/duration.d.ts +8 -0
  95. package/dist/utils/duration.d.ts.map +1 -0
  96. package/dist/utils/duration.js +22 -0
  97. package/dist/utils/duration.js.map +1 -0
  98. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/backend/routes/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/backend/routes/data.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@
2
2
  * Health Check Route
3
3
  */
4
4
  import type { FastifyInstance } from 'fastify';
5
- import type { DataAdapter } from '../../index.js';
5
+ import type { DataAdapter } from '../../types/adapter.js';
6
6
  export declare function registerHealthRoute(fastify: FastifyInstance, adapter: DataAdapter): void;
7
7
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAWxF"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAWxF"}
@@ -9,4 +9,6 @@ export type { ChatRouteOptions } from './chat.js';
9
9
  export { registerSkillRoutes } from './skills.js';
10
10
  export type { SkillRouteOptions } from './skills.js';
11
11
  export { registerAIConfigRoutes } from './ai-config.js';
12
+ export { registerSessionRoutes } from './session-routes.js';
13
+ export type { SessionRouteOptions } from './session-routes.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -7,4 +7,5 @@ export { registerUploadRoutes, saveUploadedFile } from './upload.js';
7
7
  export { registerChatRoutes } from './chat.js';
8
8
  export { registerSkillRoutes } from './skills.js';
9
9
  export { registerAIConfigRoutes } from './ai-config.js';
10
+ export { registerSessionRoutes } from './session-routes.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backend/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backend/routes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Session REST Routes - CRUD for chat sessions
3
+ *
4
+ * GET /api/v1/sessions — List sessions
5
+ * POST /api/v1/sessions — Create session
6
+ * GET /api/v1/sessions/:id — Load session
7
+ * DELETE /api/v1/sessions/:id — Delete session
8
+ * DELETE /api/v1/sessions/:id/messages/:messageId — Delete a message
9
+ * POST /api/v1/sessions/:id/truncate — Truncate messages from index
10
+ */
11
+ import type { FastifyInstance } from 'fastify';
12
+ import { SessionManager } from '../ai/session-manager.js';
13
+ export interface SessionRouteOptions {
14
+ sessionManager: SessionManager;
15
+ }
16
+ /**
17
+ * Register session REST routes
18
+ */
19
+ export declare function registerSessionRoutes(fastify: FastifyInstance, options: SessionRouteOptions): void;
20
+ //# sourceMappingURL=session-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-routes.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/session-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;CAChC;AA6BD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,mBAAmB,GAC3B,IAAI,CA0DN"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Session REST Routes - CRUD for chat sessions
3
+ *
4
+ * GET /api/v1/sessions — List sessions
5
+ * POST /api/v1/sessions — Create session
6
+ * GET /api/v1/sessions/:id — Load session
7
+ * DELETE /api/v1/sessions/:id — Delete session
8
+ * DELETE /api/v1/sessions/:id/messages/:messageId — Delete a message
9
+ * POST /api/v1/sessions/:id/truncate — Truncate messages from index
10
+ */
11
+ // ── Shared Schemas ──
12
+ const sessionParamsSchema = {
13
+ type: 'object',
14
+ required: ['id'],
15
+ properties: {
16
+ id: { type: 'string', minLength: 1 },
17
+ },
18
+ };
19
+ const messageParamsSchema = {
20
+ type: 'object',
21
+ required: ['id', 'messageId'],
22
+ properties: {
23
+ id: { type: 'string', minLength: 1 },
24
+ messageId: { type: 'string', minLength: 1 },
25
+ },
26
+ };
27
+ const truncateBodySchema = {
28
+ type: 'object',
29
+ required: ['fromIndex'],
30
+ properties: {
31
+ fromIndex: { type: 'integer', minimum: 0 },
32
+ },
33
+ };
34
+ /**
35
+ * Register session REST routes
36
+ */
37
+ export function registerSessionRoutes(fastify, options) {
38
+ const { sessionManager } = options;
39
+ // GET /api/v1/sessions — List sessions
40
+ fastify.get('/api/v1/sessions', async (_request, reply) => {
41
+ const sessions = await sessionManager.listSessions();
42
+ return reply.send(sessions);
43
+ });
44
+ // POST /api/v1/sessions — Create session
45
+ fastify.post('/api/v1/sessions', {
46
+ schema: { body: { type: 'object', properties: { id: { type: 'string' } } } },
47
+ }, async (request, reply) => {
48
+ const body = request.body;
49
+ const session = await sessionManager.createSession(body?.id);
50
+ return reply.code(201).send(session);
51
+ });
52
+ // GET /api/v1/sessions/:id — Load session
53
+ fastify.get('/api/v1/sessions/:id', {
54
+ schema: { params: sessionParamsSchema },
55
+ }, async (request, reply) => {
56
+ const { id } = request.params;
57
+ const session = await sessionManager.readSession(id);
58
+ if (!session)
59
+ return reply.status(404).send({ error: 'Session not found' });
60
+ return reply.send(session);
61
+ });
62
+ // DELETE /api/v1/sessions/:id — Delete session
63
+ fastify.delete('/api/v1/sessions/:id', {
64
+ schema: { params: sessionParamsSchema },
65
+ }, async (request, reply) => {
66
+ const { id } = request.params;
67
+ const success = await sessionManager.deleteSession(id);
68
+ if (!success)
69
+ return reply.status(404).send({ error: 'Session not found' });
70
+ return reply.send({ success: true });
71
+ });
72
+ // DELETE /api/v1/sessions/:id/messages/:messageId — Delete a single message
73
+ fastify.delete('/api/v1/sessions/:id/messages/:messageId', {
74
+ schema: { params: messageParamsSchema },
75
+ }, async (request, reply) => {
76
+ const { id, messageId } = request.params;
77
+ const session = await sessionManager.deleteMessage(id, messageId);
78
+ if (!session)
79
+ return reply.status(404).send({ error: 'Session or message not found' });
80
+ return reply.send(session);
81
+ });
82
+ // POST /api/v1/sessions/:id/truncate — Truncate messages from a given index
83
+ fastify.post('/api/v1/sessions/:id/truncate', {
84
+ schema: { params: sessionParamsSchema, body: truncateBodySchema },
85
+ }, async (request, reply) => {
86
+ const { id } = request.params;
87
+ const body = request.body;
88
+ const session = await sessionManager.truncateMessagesFromIndex(id, body.fromIndex);
89
+ if (!session)
90
+ return reply.status(404).send({ error: 'Session not found or invalid index' });
91
+ return reply.send(session);
92
+ });
93
+ }
94
+ //# sourceMappingURL=session-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-routes.js","sourceRoot":"","sources":["../../../src/backend/routes/session-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Skill ZIP archive parsing and creation utilities */
2
+ /**
3
+ * Parse a zip archive buffer and extract skill structure.
4
+ */
5
+ export declare function parseZipArchive(buffer: Buffer): {
6
+ skillName: string;
7
+ skillMd: string;
8
+ files: Array<{
9
+ path: string;
10
+ content: string;
11
+ }>;
12
+ };
13
+ //# sourceMappingURL=skill-archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-archive.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/skill-archive.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAMvD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAgFvI"}
@@ -0,0 +1,84 @@
1
+ /** Skill ZIP archive parsing and creation utilities */
2
+ import path from 'node:path';
3
+ import AdmZip from 'adm-zip';
4
+ import { parseFrontmatter, isValidSkillName, isTextFile } from './skill-parser.js';
5
+ /**
6
+ * Parse a zip archive buffer and extract skill structure.
7
+ */
8
+ export function parseZipArchive(buffer) {
9
+ const zip = new AdmZip(buffer);
10
+ const entries = zip.getEntries();
11
+ // Collect valid file entries
12
+ const validEntries = entries.filter((entry) => {
13
+ if (entry.isDirectory)
14
+ return false;
15
+ const entryPath = entry.entryName;
16
+ // Skip macOS metadata
17
+ if (entryPath.startsWith('__MACOSX/'))
18
+ return false;
19
+ // Skip .DS_Store and hidden files in root
20
+ const parts = entryPath.split('/');
21
+ if (parts.some((p) => p.startsWith('.') && p !== '.gitkeep' && p !== '.gitignore'))
22
+ return false;
23
+ return true;
24
+ });
25
+ if (validEntries.length === 0) {
26
+ throw new Error('压缩包中没有任何有效文件');
27
+ }
28
+ // Detect common top-level directory prefix
29
+ let prefix = '';
30
+ const firstEntry = validEntries[0].entryName;
31
+ const slashIdx = firstEntry.indexOf('/');
32
+ if (slashIdx > 0) {
33
+ const candidate = firstEntry.substring(0, slashIdx + 1);
34
+ if (validEntries.every((e) => e.entryName.startsWith(candidate))) {
35
+ prefix = candidate;
36
+ }
37
+ }
38
+ // Strip prefix and collect files
39
+ const allFiles = [];
40
+ for (const entry of validEntries) {
41
+ let relPath = entry.entryName;
42
+ if (prefix && relPath.startsWith(prefix)) {
43
+ relPath = relPath.substring(prefix.length);
44
+ }
45
+ // Skip if empty after stripping prefix
46
+ if (!relPath)
47
+ continue;
48
+ // Only keep text files
49
+ if (!isTextFile(relPath))
50
+ continue;
51
+ const content = entry.getData().toString('utf-8');
52
+ allFiles.push({ path: relPath, content });
53
+ }
54
+ // Find SKILL.md
55
+ const skillMdEntry = allFiles.find((f) => f.path === 'SKILL.md');
56
+ if (!skillMdEntry) {
57
+ throw new Error('压缩包中未找到 SKILL.md 文件');
58
+ }
59
+ // Check for duplicate SKILL.md in subdirectories
60
+ const skillMdCount = allFiles.filter((f) => path.basename(f.path) === 'SKILL.md').length;
61
+ if (skillMdCount > 1) {
62
+ throw new Error('压缩包中包含多个 SKILL.md 文件,请确保只有一个');
63
+ }
64
+ // Extract skill name from frontmatter or directory name
65
+ const { metadata } = parseFrontmatter(skillMdEntry.content);
66
+ let skillName = metadata.name;
67
+ if (!skillName || typeof skillName !== 'string') {
68
+ // Fallback to directory name from prefix
69
+ if (prefix) {
70
+ skillName = prefix.replace(/\/$/, '');
71
+ }
72
+ else {
73
+ throw new Error('无法确定 Skill 名称,请在 SKILL.md 的 frontmatter 中指定 name 字段');
74
+ }
75
+ }
76
+ // Validate skill name
77
+ if (!isValidSkillName(skillName)) {
78
+ throw new Error(`Skill 名称 "${skillName}" 不合法,只能包含字母、数字、中划线和下划线,且以字母开头`);
79
+ }
80
+ // Separate SKILL.md from other files
81
+ const files = allFiles.filter((f) => f.path !== 'SKILL.md');
82
+ return { skillName, skillMd: skillMdEntry.content, files };
83
+ }
84
+ //# sourceMappingURL=skill-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-archive.js","sourceRoot":"","sources":["../../../src/backend/routes/skill-archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /** Skill file parsing utilities */
2
+ export interface SkillMetadata {
3
+ name?: string;
4
+ description?: string;
5
+ version?: string;
6
+ 'allowed-tools'?: string[];
7
+ [key: string]: unknown;
8
+ }
9
+ /**
10
+ * Parse YAML frontmatter from markdown content using simple regex.
11
+ */
12
+ export declare function parseFrontmatter(content: string): {
13
+ metadata: SkillMetadata;
14
+ body: string;
15
+ };
16
+ /**
17
+ * Recursively scan a directory for files, returning relative paths.
18
+ * Excludes SKILL.md (handled separately).
19
+ */
20
+ export declare function scanDirFiles(dir: string, base: string): Promise<string[]>;
21
+ /**
22
+ * Safely resolve a file path within a directory. Rejects '..' traversal.
23
+ */
24
+ export declare function safeResolve(baseDir: string, filePath: string): string | null;
25
+ /**
26
+ * Validate skill name.
27
+ */
28
+ export declare function isValidSkillName(name: string): boolean;
29
+ /**
30
+ * Text file extensions that should be kept when parsing zip archives.
31
+ */
32
+ export declare const TEXT_EXTENSIONS: Set<string>;
33
+ /**
34
+ * Check if a file path looks like a text file based on extension.
35
+ */
36
+ export declare function isTextFile(filePath: string): boolean;
37
+ /**
38
+ * Get MIME type for a file extension.
39
+ */
40
+ export declare function getContentType(filePath: string): string;
41
+ //# sourceMappingURL=skill-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-parser.d.ts","sourceRoot":"","sources":["../../../src/backend/routes/skill-parser.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAQnC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAqG3F;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkB/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,aAK1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAevD"}
@@ -0,0 +1,184 @@
1
+ /** Skill file parsing utilities */
2
+ import { promises as fs } from 'node:fs';
3
+ import path from 'node:path';
4
+ // ── Functions ──
5
+ /**
6
+ * Parse YAML frontmatter from markdown content using simple regex.
7
+ */
8
+ export function parseFrontmatter(content) {
9
+ // The \n before closing --- is optional to handle empty frontmatter (---\n---\nBody)
10
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n?---\r?\n?([\s\S]*)$/);
11
+ if (!match)
12
+ return { metadata: {}, body: content };
13
+ const metadataRaw = match[1];
14
+ const body = match[2];
15
+ try {
16
+ const metadata = {};
17
+ const lines = metadataRaw.split('\n');
18
+ let currentKey = '';
19
+ let currentValues = [];
20
+ let inArray = false;
21
+ let inBlock = false;
22
+ let blockLines = [];
23
+ const flushArray = () => {
24
+ if (inArray && currentKey) {
25
+ // If array items were collected, store as array; otherwise store empty string
26
+ metadata[currentKey] = currentValues.length > 0 ? currentValues : '';
27
+ inArray = false;
28
+ currentValues = [];
29
+ }
30
+ };
31
+ const flushBlock = () => {
32
+ if (inBlock && currentKey) {
33
+ metadata[currentKey] = blockLines.join('\n').trim();
34
+ }
35
+ inBlock = false;
36
+ blockLines = [];
37
+ };
38
+ for (const line of lines) {
39
+ if (inBlock) {
40
+ if (/^[ \t]+/.test(line) || (line === '' && blockLines.length > 0)) {
41
+ blockLines.push(line.replace(/^[ \t]+/, ''));
42
+ continue;
43
+ }
44
+ else {
45
+ flushBlock();
46
+ }
47
+ }
48
+ const trimmed = line.trim();
49
+ if (!trimmed)
50
+ continue;
51
+ const arrayMatch = trimmed.match(/^-\s+(.+)$/);
52
+ if (inArray && arrayMatch) {
53
+ currentValues.push(arrayMatch[1].replace(/^['"]|['"]$/g, '').trim());
54
+ continue;
55
+ }
56
+ if (inArray) {
57
+ flushArray();
58
+ }
59
+ const kvMatch = trimmed.match(/^([a-zA-Z_-][a-zA-Z0-9_-]*):\s*(.*)$/);
60
+ if (kvMatch) {
61
+ currentKey = kvMatch[1];
62
+ let val = kvMatch[2].trim();
63
+ if ((val.startsWith("'") && val.endsWith("'")) || (val.startsWith('"') && val.endsWith('"'))) {
64
+ val = val.slice(1, -1);
65
+ }
66
+ if (val === '|' || val === '>') {
67
+ inBlock = true;
68
+ blockLines = [];
69
+ continue;
70
+ }
71
+ if (val === '[') {
72
+ inArray = true;
73
+ currentValues = [];
74
+ continue;
75
+ }
76
+ if (val.startsWith('[') && val.endsWith(']')) {
77
+ metadata[currentKey] = val.slice(1, -1).split(',').map((s) => s.trim().replace(/^['"]|['"]$/g, ''));
78
+ currentKey = '';
79
+ continue;
80
+ }
81
+ // Empty value means multi-line array follows (YAML list syntax: "key:\n - item")
82
+ if (val === '') {
83
+ inArray = true;
84
+ currentValues = [];
85
+ continue;
86
+ }
87
+ metadata[currentKey] = val;
88
+ currentKey = '';
89
+ }
90
+ }
91
+ flushArray();
92
+ flushBlock();
93
+ return { metadata, body };
94
+ }
95
+ catch {
96
+ return { metadata: {}, body: content };
97
+ }
98
+ }
99
+ /**
100
+ * Recursively scan a directory for files, returning relative paths.
101
+ * Excludes SKILL.md (handled separately).
102
+ */
103
+ export async function scanDirFiles(dir, base) {
104
+ const results = [];
105
+ let entries;
106
+ try {
107
+ entries = await fs.readdir(dir, { withFileTypes: true });
108
+ }
109
+ catch {
110
+ return results;
111
+ }
112
+ for (const entry of entries) {
113
+ if (entry.isDirectory()) {
114
+ const subFiles = await scanDirFiles(path.join(dir, entry.name), base);
115
+ results.push(...subFiles);
116
+ }
117
+ else {
118
+ const relPath = path.relative(base, path.join(dir, entry.name));
119
+ results.push(relPath);
120
+ }
121
+ }
122
+ return results;
123
+ }
124
+ /**
125
+ * Safely resolve a file path within a directory. Rejects '..' traversal.
126
+ */
127
+ export function safeResolve(baseDir, filePath) {
128
+ if (filePath.includes('..'))
129
+ return null;
130
+ const resolved = path.resolve(baseDir, filePath);
131
+ if (!resolved.startsWith(baseDir))
132
+ return null;
133
+ return resolved;
134
+ }
135
+ /**
136
+ * Validate skill name.
137
+ */
138
+ export function isValidSkillName(name) {
139
+ return /^[a-zA-Z][a-zA-Z0-9_-]*$/.test(name);
140
+ }
141
+ /**
142
+ * Text file extensions that should be kept when parsing zip archives.
143
+ */
144
+ export const TEXT_EXTENSIONS = new Set([
145
+ '.md', '.json', '.yaml', '.yml', '.txt', '.ts', '.js', '.tsx', '.jsx',
146
+ '.xml', '.html', '.css', '.sh', '.py', '.rb', '.go', '.rs', '.java',
147
+ '.kt', '.swift', '.c', '.cpp', '.h', '.hpp', '.toml', '.ini', '.cfg',
148
+ '.env', '.gitignore', '.prettierrc', '.eslintrc', '.conf', '.properties',
149
+ ]);
150
+ /**
151
+ * Check if a file path looks like a text file based on extension.
152
+ */
153
+ export function isTextFile(filePath) {
154
+ const ext = path.extname(filePath).toLowerCase();
155
+ if (TEXT_EXTENSIONS.has(ext))
156
+ return true;
157
+ // Files with no extension but common names
158
+ const basename = path.basename(filePath).toLowerCase();
159
+ if (['readme', 'license', 'makefile', 'dockerfile', '.gitkeep', '.gitignore'].includes(basename))
160
+ return true;
161
+ if (basename.startsWith('.git'))
162
+ return true;
163
+ return false;
164
+ }
165
+ /**
166
+ * Get MIME type for a file extension.
167
+ */
168
+ export function getContentType(filePath) {
169
+ const ext = path.extname(filePath).toLowerCase();
170
+ const types = {
171
+ '.md': 'text/markdown',
172
+ '.txt': 'text/plain',
173
+ '.json': 'application/json',
174
+ '.xml': 'application/xml',
175
+ '.yaml': 'text/yaml',
176
+ '.yml': 'text/yaml',
177
+ '.ts': 'text/typescript',
178
+ '.js': 'text/javascript',
179
+ '.html': 'text/html',
180
+ '.css': 'text/css',
181
+ };
182
+ return types[ext] || 'text/plain';
183
+ }
184
+ //# sourceMappingURL=skill-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-parser.js","sourceRoot":"","sources":["../../../src/backend/routes/skill-parser.ts"],"names":[],"mappings":"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"}