@brxce/mcp-server 1.1.4 β†’ 1.1.5

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 (39) hide show
  1. package/dist/config/bot-tool-scope.d.ts +15 -0
  2. package/dist/config/bot-tool-scope.d.ts.map +1 -0
  3. package/dist/config/bot-tool-scope.js +59 -0
  4. package/dist/config/bot-tool-scope.js.map +1 -0
  5. package/dist/config/environment.d.ts +2 -0
  6. package/dist/config/environment.d.ts.map +1 -1
  7. package/dist/config/environment.js +3 -1
  8. package/dist/config/environment.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +85 -63
  11. package/dist/index.js.map +1 -1
  12. package/dist/tools/worknode-detail-tool.d.ts +8 -0
  13. package/dist/tools/worknode-detail-tool.d.ts.map +1 -0
  14. package/dist/tools/worknode-detail-tool.js +227 -0
  15. package/dist/tools/worknode-detail-tool.js.map +1 -0
  16. package/dist/tools/worknode-subtree-tool.d.ts.map +1 -1
  17. package/dist/tools/worknode-subtree-tool.js +34 -12
  18. package/dist/tools/worknode-subtree-tool.js.map +1 -1
  19. package/dist/utils/bot-scoped-server.d.ts +13 -0
  20. package/dist/utils/bot-scoped-server.d.ts.map +1 -0
  21. package/dist/utils/bot-scoped-server.js +30 -0
  22. package/dist/utils/bot-scoped-server.js.map +1 -0
  23. package/dist/utils/index.d.ts +1 -0
  24. package/dist/utils/index.d.ts.map +1 -1
  25. package/dist/utils/index.js +1 -0
  26. package/dist/utils/index.js.map +1 -1
  27. package/dist/utils/param-parser.d.ts +47 -0
  28. package/dist/utils/param-parser.d.ts.map +1 -0
  29. package/dist/utils/param-parser.js +124 -0
  30. package/dist/utils/param-parser.js.map +1 -0
  31. package/package.json +12 -11
  32. package/dist/prompts/worknode-prompts.d.ts +0 -7
  33. package/dist/prompts/worknode-prompts.d.ts.map +0 -1
  34. package/dist/prompts/worknode-prompts.js +0 -398
  35. package/dist/prompts/worknode-prompts.js.map +0 -1
  36. package/dist/prompts/workspace-context-prompt.d.ts +0 -4
  37. package/dist/prompts/workspace-context-prompt.d.ts.map +0 -1
  38. package/dist/prompts/workspace-context-prompt.js +0 -102
  39. package/dist/prompts/workspace-context-prompt.js.map +0 -1
@@ -46,7 +46,7 @@ function formatNodeLine(node, depth) {
46
46
  }
47
47
  if (node.dueDate) {
48
48
  const dueDate = new Date(node.dueDate);
49
- metadata.push(`due: ${dueDate.toISOString().split('T')[0]}`);
49
+ metadata.push(`πŸ“… ${dueDate.toISOString().split('T')[0]}`);
50
50
  }
51
51
  if (metadata.length > 0) {
52
52
  line += ` (${metadata.join(', ')})`;
@@ -54,15 +54,37 @@ function formatNodeLine(node, depth) {
54
54
  return line;
55
55
  }
56
56
  /**
57
- * Build tree structure from flat children array
57
+ * Build tree structure from flat children array using depth-based approach
58
58
  */
59
- function buildChildrenTree(children, parentId, depth) {
59
+ function buildTreeByDepth(children, rootId) {
60
+ if (children.length === 0)
61
+ return '';
60
62
  let result = '';
61
- const directChildren = children.filter(c => c.parentNodeId === parentId);
62
- for (const child of directChildren) {
63
- result += formatNodeLine(child, depth) + '\\n';
64
- // Recursively add grandchildren
65
- result += buildChildrenTree(children, child.id, depth + 1);
63
+ // Sort children by depth first, then by their order
64
+ const sortedChildren = [...children].sort((a, b) => {
65
+ const depthDiff = (a.depth ?? 0) - (b.depth ?? 0);
66
+ if (depthDiff !== 0)
67
+ return depthDiff;
68
+ return 0;
69
+ });
70
+ // Build tree recursively using parentNodeId
71
+ function buildSubtree(parentId, depth) {
72
+ let subtree = '';
73
+ const directChildren = sortedChildren.filter(c => c.parentNodeId === parentId);
74
+ for (const child of directChildren) {
75
+ subtree += formatNodeLine(child, depth) + '\n';
76
+ // Recursively add grandchildren
77
+ subtree += buildSubtree(child.id, depth + 1);
78
+ }
79
+ return subtree;
80
+ }
81
+ result = buildSubtree(rootId, 1);
82
+ // If no children found via parentNodeId, fallback to depth-based display
83
+ if (result === '' && sortedChildren.length > 0) {
84
+ for (const child of sortedChildren) {
85
+ const nodeDepth = child.depth ?? 1;
86
+ result += formatNodeLine(child, nodeDepth) + '\n';
87
+ }
66
88
  }
67
89
  return result;
68
90
  }
@@ -163,12 +185,12 @@ Returns: Markdown formatted tree with statistics. Dates in UTC.`,
163
185
  resultText += `\\n`;
164
186
  }
165
187
  // Tree structure
166
- resultText += `**Subtree Structure:**\\n\\n`;
188
+ resultText += `**Subtree Structure:**\n\n`;
167
189
  // Root node (depth 0)
168
- resultText += formatNodeLine(node, 0) + '\\n';
169
- // Children (recursively)
190
+ resultText += formatNodeLine(node, 0) + '\n';
191
+ // Children (recursively using depth-based tree building)
170
192
  if (children.length > 0) {
171
- resultText += buildChildrenTree(children, node.id, 1);
193
+ resultText += buildTreeByDepth(children, node.id);
172
194
  }
173
195
  resultText += `\\n---\\n`;
174
196
  resultText += `**Note:** This subtree shows the node and all its descendants.\\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"worknode-subtree-tool.js","sourceRoot":"","sources":["../../src/tools/worknode-subtree-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worknode-subtree-tool.js","sourceRoot":"","sources":["../../src/tools/worknode-subtree-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Bot-scoped MCP Server wrapper.
3
+ *
4
+ * Creates a proxy around McpServer that filters out tools
5
+ * not allowed for bot sessions during registration.
6
+ */
7
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ /**
9
+ * Wrap an McpServer to filter tool registrations for bot sessions.
10
+ * Non-allowed tools are silently skipped during registration.
11
+ */
12
+ export declare function createBotScopedServer(server: McpServer): McpServer;
13
+ //# sourceMappingURL=bot-scoped-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-scoped-server.d.ts","sourceRoot":"","sources":["../../src/utils/bot-scoped-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAiBlE"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Bot-scoped MCP Server wrapper.
3
+ *
4
+ * Creates a proxy around McpServer that filters out tools
5
+ * not allowed for bot sessions during registration.
6
+ */
7
+ import { isBotAllowedTool } from '../config/bot-tool-scope.js';
8
+ /**
9
+ * Wrap an McpServer to filter tool registrations for bot sessions.
10
+ * Non-allowed tools are silently skipped during registration.
11
+ */
12
+ export function createBotScopedServer(server) {
13
+ return new Proxy(server, {
14
+ get(target, prop, receiver) {
15
+ if (prop === 'tool' || prop === 'registerTool') {
16
+ const originalMethod = Reflect.get(target, prop, receiver);
17
+ return function (nameOrConfig, ...args) {
18
+ const toolName = typeof nameOrConfig === 'string' ? nameOrConfig : nameOrConfig?.name;
19
+ if (toolName && !isBotAllowedTool(toolName)) {
20
+ // Skip registration for disallowed tools
21
+ return;
22
+ }
23
+ return originalMethod.call(target, nameOrConfig, ...args);
24
+ };
25
+ }
26
+ return Reflect.get(target, prop, receiver);
27
+ },
28
+ });
29
+ }
30
+ //# sourceMappingURL=bot-scoped-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot-scoped-server.js","sourceRoot":"","sources":["../../src/utils/bot-scoped-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAa,CAAC;gBACvE,OAAO,UAAyB,YAAuC,EAAE,GAAG,IAAe;oBACzF,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC;oBACtF,IAAI,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC5C,yCAAyC;wBACzC,OAAO;oBACT,CAAC;oBACD,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;gBAC5D,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './error-utils.js';
2
+ export * from './param-parser.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './error-utils.js';
2
+ export * from './param-parser.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * MCP νŒŒλΌλ―Έν„° μ „μ²˜λ¦¬ μœ ν‹Έλ¦¬ν‹°
3
+ * Claude Codeκ°€ λ³΅μž‘ν•œ νƒ€μž…μ„ λ¬Έμžμ—΄λ‘œ μ „μ†‘ν•˜λŠ” 경우 처리
4
+ */
5
+ export type ParamType = 'array' | 'boolean' | 'object' | 'string' | 'number';
6
+ export type ParamSchema<T extends Record<string, unknown>> = {
7
+ [K in keyof T]?: ParamType;
8
+ };
9
+ /**
10
+ * MCP νŒŒλΌλ―Έν„°λ₯Ό μ •κ·œν™”ν•©λ‹ˆλ‹€.
11
+ * Claude Codeκ°€ array, boolean, object 등을 λ¬Έμžμ—΄λ‘œ μ§λ ¬ν™”ν•˜μ—¬ μ „μ†‘ν•˜λŠ” 경우,
12
+ * 이λ₯Ό μ›λž˜ νƒ€μž…μœΌλ‘œ νŒŒμ‹±ν•©λ‹ˆλ‹€.
13
+ *
14
+ * @param args - MCP λ„κ΅¬μ—μ„œ 받은 원본 νŒŒλΌλ―Έν„°
15
+ * @param schema - 각 νŒŒλΌλ―Έν„°μ˜ μ˜ˆμƒ νƒ€μž…μ„ μ •μ˜ν•œ μŠ€ν‚€λ§ˆ
16
+ * @returns μ •κ·œν™”λœ νŒŒλΌλ―Έν„° 객체
17
+ *
18
+ * @example
19
+ * const args = {
20
+ * updates: '[{"nodeId": "123", "changes": {"status": "completed"}}]',
21
+ * preview: 'true',
22
+ * title: 'My Title'
23
+ * };
24
+ *
25
+ * const normalized = normalizeParams(args, {
26
+ * updates: 'array',
27
+ * preview: 'boolean',
28
+ * title: 'string'
29
+ * });
30
+ *
31
+ * // Result:
32
+ * // {
33
+ * // updates: [{ nodeId: '123', changes: { status: 'completed' } }],
34
+ * // preview: true,
35
+ * // title: 'My Title'
36
+ * // }
37
+ */
38
+ export declare function normalizeParams<T extends Record<string, unknown>>(args: Record<string, unknown>, schema: ParamSchema<T>): T;
39
+ /**
40
+ * 단일 값을 νŠΉμ • νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.
41
+ *
42
+ * @param value - λ³€ν™˜ν•  κ°’
43
+ * @param expectedType - μ˜ˆμƒ νƒ€μž…
44
+ * @returns λ³€ν™˜λœ κ°’
45
+ */
46
+ export declare function normalizeValue<T>(value: unknown, expectedType: ParamType): T;
47
+ //# sourceMappingURL=param-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-parser.d.ts","sourceRoot":"","sources":["../../src/utils/param-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,CAAC,CAgDH;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,GAAG,CAAC,CA0B5E"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * MCP νŒŒλΌλ―Έν„° μ „μ²˜λ¦¬ μœ ν‹Έλ¦¬ν‹°
3
+ * Claude Codeκ°€ λ³΅μž‘ν•œ νƒ€μž…μ„ λ¬Έμžμ—΄λ‘œ μ „μ†‘ν•˜λŠ” 경우 처리
4
+ */
5
+ /**
6
+ * MCP νŒŒλΌλ―Έν„°λ₯Ό μ •κ·œν™”ν•©λ‹ˆλ‹€.
7
+ * Claude Codeκ°€ array, boolean, object 등을 λ¬Έμžμ—΄λ‘œ μ§λ ¬ν™”ν•˜μ—¬ μ „μ†‘ν•˜λŠ” 경우,
8
+ * 이λ₯Ό μ›λž˜ νƒ€μž…μœΌλ‘œ νŒŒμ‹±ν•©λ‹ˆλ‹€.
9
+ *
10
+ * @param args - MCP λ„κ΅¬μ—μ„œ 받은 원본 νŒŒλΌλ―Έν„°
11
+ * @param schema - 각 νŒŒλΌλ―Έν„°μ˜ μ˜ˆμƒ νƒ€μž…μ„ μ •μ˜ν•œ μŠ€ν‚€λ§ˆ
12
+ * @returns μ •κ·œν™”λœ νŒŒλΌλ―Έν„° 객체
13
+ *
14
+ * @example
15
+ * const args = {
16
+ * updates: '[{"nodeId": "123", "changes": {"status": "completed"}}]',
17
+ * preview: 'true',
18
+ * title: 'My Title'
19
+ * };
20
+ *
21
+ * const normalized = normalizeParams(args, {
22
+ * updates: 'array',
23
+ * preview: 'boolean',
24
+ * title: 'string'
25
+ * });
26
+ *
27
+ * // Result:
28
+ * // {
29
+ * // updates: [{ nodeId: '123', changes: { status: 'completed' } }],
30
+ * // preview: true,
31
+ * // title: 'My Title'
32
+ * // }
33
+ */
34
+ export function normalizeParams(args, schema) {
35
+ const result = {};
36
+ for (const [key, expectedType] of Object.entries(schema)) {
37
+ const value = args[key];
38
+ if (value === undefined)
39
+ continue;
40
+ if (typeof value === 'string' && expectedType !== 'string') {
41
+ try {
42
+ const parsed = JSON.parse(value);
43
+ if (expectedType === 'boolean') {
44
+ result[key] = typeof parsed === 'boolean' ? parsed : Boolean(parsed);
45
+ }
46
+ else if (expectedType === 'number') {
47
+ result[key] = typeof parsed === 'number' ? parsed : Number(parsed);
48
+ }
49
+ else if (expectedType === 'array') {
50
+ result[key] = Array.isArray(parsed) ? parsed : [parsed];
51
+ }
52
+ else if (expectedType === 'object') {
53
+ result[key] = typeof parsed === 'object' && parsed !== null ? parsed : value;
54
+ }
55
+ else {
56
+ result[key] = parsed;
57
+ }
58
+ }
59
+ catch {
60
+ // JSON νŒŒμ‹± μ‹€νŒ¨ μ‹œ booleanκ³Ό numberλŠ” λ¬Έμžμ—΄μ—μ„œ 직접 λ³€ν™˜ μ‹œλ„
61
+ if (expectedType === 'boolean') {
62
+ result[key] = value === 'true';
63
+ }
64
+ else if (expectedType === 'number') {
65
+ const num = Number(value);
66
+ result[key] = isNaN(num) ? value : num;
67
+ }
68
+ else {
69
+ // arrayλ‚˜ object νƒ€μž…μΈλ° νŒŒμ‹± μ‹€νŒ¨ν•˜λ©΄ 원본 μœ μ§€
70
+ result[key] = value;
71
+ }
72
+ }
73
+ }
74
+ else {
75
+ result[key] = value;
76
+ }
77
+ }
78
+ // μŠ€ν‚€λ§ˆμ— μ •μ˜λ˜μ§€ μ•Šμ€ ν•„λ“œλ„ 볡사
79
+ for (const [key, value] of Object.entries(args)) {
80
+ if (!(key in result)) {
81
+ result[key] = value;
82
+ }
83
+ }
84
+ return result;
85
+ }
86
+ /**
87
+ * 단일 값을 νŠΉμ • νƒ€μž…μœΌλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.
88
+ *
89
+ * @param value - λ³€ν™˜ν•  κ°’
90
+ * @param expectedType - μ˜ˆμƒ νƒ€μž…
91
+ * @returns λ³€ν™˜λœ κ°’
92
+ */
93
+ export function normalizeValue(value, expectedType) {
94
+ if (typeof value === 'string' && expectedType !== 'string') {
95
+ try {
96
+ const parsed = JSON.parse(value);
97
+ if (expectedType === 'boolean') {
98
+ return (typeof parsed === 'boolean' ? parsed : Boolean(parsed));
99
+ }
100
+ else if (expectedType === 'number') {
101
+ return (typeof parsed === 'number' ? parsed : Number(parsed));
102
+ }
103
+ else if (expectedType === 'array') {
104
+ return (Array.isArray(parsed) ? parsed : [parsed]);
105
+ }
106
+ else if (expectedType === 'object') {
107
+ return (typeof parsed === 'object' && parsed !== null ? parsed : value);
108
+ }
109
+ return parsed;
110
+ }
111
+ catch {
112
+ if (expectedType === 'boolean') {
113
+ return (value === 'true');
114
+ }
115
+ else if (expectedType === 'number') {
116
+ const num = Number(value);
117
+ return (isNaN(num) ? value : num);
118
+ }
119
+ return value;
120
+ }
121
+ }
122
+ return value;
123
+ }
124
+ //# sourceMappingURL=param-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-parser.js","sourceRoot":"","sources":["../../src/utils/param-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brxce/mcp-server",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "Model Context Protocol (MCP) server for BRXCE workspace management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,6 +12,16 @@
12
12
  "README.md",
13
13
  "package.json"
14
14
  ],
15
+ "scripts": {
16
+ "dev": "tsx watch src/index.ts",
17
+ "build": "tsc",
18
+ "start": "node dist/index.js",
19
+ "test": "vitest",
20
+ "test:coverage": "vitest run --coverage",
21
+ "lint": "eslint src/**/*.ts --fix",
22
+ "check-types": "tsc --noEmit",
23
+ "prepublishOnly": "pnpm build"
24
+ },
15
25
  "keywords": [
16
26
  "mcp",
17
27
  "model-context-protocol",
@@ -49,14 +59,5 @@
49
59
  "extends": [
50
60
  "@repo/eslint-config/node"
51
61
  ]
52
- },
53
- "scripts": {
54
- "dev": "tsx watch src/index.ts",
55
- "build": "tsc",
56
- "start": "node dist/index.js",
57
- "test": "vitest",
58
- "test:coverage": "vitest run --coverage",
59
- "lint": "eslint src/**/*.ts --fix",
60
- "check-types": "tsc --noEmit"
61
62
  }
62
- }
63
+ }
@@ -1,7 +0,0 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { ApiClient } from '../services/api-client.js';
3
- /**
4
- * Register WorkNode-related prompts for common user workflows
5
- */
6
- export declare function registerWorknodePrompts(server: McpServer, apiClient: ApiClient): void;
7
- //# sourceMappingURL=worknode-prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worknode-prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/worknode-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA0BtD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QA0b9E"}