@stellisoft/stellify-mcp 0.1.31 → 0.1.33

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.
package/dist/index.js CHANGED
@@ -55,10 +55,14 @@ const STELLIFY_FRAMEWORK_API = {
55
55
  Diff: ['chars', 'words', 'lines', 'apply', 'createPatch', 'distance', 'similarity', 'commonPrefix', 'commonSuffix'],
56
56
  // Utilities
57
57
  Time: ['now', 'create', 'parse', 'format', 'toISO', 'toDate', 'toTimestamp', 'toUnix', 'add', 'subtract', 'diff', 'isBefore', 'isAfter', 'isSame', 'isBetween', 'startOf', 'endOf', 'year', 'month', 'day', 'weekday', 'hour', 'minute', 'second', 'relative', 'clone'],
58
- // Adapters
58
+ // Vue Composables
59
59
  useStellify: ['(generic adapter for any module)'],
60
- useForm: ['bind'],
61
- useTable: ['(reactive table adapter)'],
60
+ useForm: ['bind', 'state', 'set', 'get', 'getData', 'validate', 'isValid', 'getErrors', 'getError', 'reset', 'store', 'update', 'delete'],
61
+ useTable: ['state', 'setData', 'addColumn', 'removeColumn', 'sort', 'filter', 'clearFilter', 'paginate', 'page'],
62
+ useInfiniteScroll: ['items (Collection)', 'loading', 'hasMore', 'error', 'page', 'total', 'loadMore', 'reset', 'refresh', 'sentinelRef'],
63
+ useLiveData: ['data (Collection)', 'loading', 'error', 'connected', 'refresh', 'disconnect', 'reconnect', 'push', 'remove', 'update'],
64
+ useQueryState: ['(reactive refs per param)', 'getAll', 'setAll', 'reset', 'getUrl'],
65
+ useLazyLoad: ['data', 'visible', 'loading', 'loaded', 'error', 'targetRef', 'load', 'reset'],
62
66
  };
63
67
  const tools = [
64
68
  {
@@ -168,12 +172,12 @@ Pass 'includes' array for framework class dependencies (auto-resolved to UUIDs).
168
172
  },
169
173
  parameters: {
170
174
  type: 'array',
171
- description: 'Method parameters (created as clauses)',
175
+ description: 'Method parameters (created as clauses). Include datatype for TypeScript annotations.',
172
176
  items: {
173
177
  type: 'object',
174
178
  properties: {
175
179
  name: { type: 'string', description: 'Parameter name' },
176
- datatype: { type: 'string', description: 'Data type' },
180
+ datatype: { type: 'string', description: 'TypeScript type (e.g., "number", "string", "MouseEvent", "User"). Outputs as: (param: Type)' },
177
181
  type: { type: 'string', description: 'Clause type (default: variable)' },
178
182
  value: { type: 'string', description: 'Default value' },
179
183
  },
@@ -214,6 +218,8 @@ Pass 'includes' array for framework class dependencies (auto-resolved to UUIDs).
214
218
 
215
219
  **Nested code is handled correctly.** The parser tracks brace/bracket/paren depth and only splits on semicolons at the top level. Arrow functions with block bodies, computed properties, and other nested constructs work as single statements.
216
220
 
221
+ Pass 'types' to specify TypeScript types for variables declared in the code.
222
+
217
223
  IMPORTANT: This APPENDS to existing method statements. To REPLACE a method's code entirely:
218
224
  1. Create a NEW method with create_method (with body parameter)
219
225
  2. Update the file's 'data' array to include new method UUID (remove old one)
@@ -234,6 +240,11 @@ IMPORTANT: This APPENDS to existing method statements. To REPLACE a method's cod
234
240
  type: 'string',
235
241
  description: 'PHP code for the method body (just the statements, no function declaration). Example: "return $a + $b;"',
236
242
  },
243
+ types: {
244
+ type: 'object',
245
+ description: 'Map of variable names to their base TypeScript types (e.g., { "result": "Todo" }). The assembler infers full types from code structure.',
246
+ additionalProperties: { type: 'string' },
247
+ },
237
248
  },
238
249
  required: ['file', 'method', 'code'],
239
250
  },
@@ -744,7 +755,12 @@ Prefer SVG icons over emoji (encoding issues).`,
744
755
  },
745
756
  {
746
757
  name: 'create_statement_with_code',
747
- description: `Create a statement with code in one call. Preferred over two-step create_statement + add_statement_code.`,
758
+ description: `Create a statement with code in one call. Preferred over two-step create_statement + add_statement_code.
759
+
760
+ Pass 'types' to specify TypeScript types for variables. The assembler infers the full type from code structure:
761
+ - \`ref([])\` + type "Todo" → outputs \`const todos: Ref<Todo[]>\`
762
+ - \`ref(0)\` + type "number" → outputs \`const count: Ref<number>\`
763
+ - \`reactive({})\` + type "State" → outputs \`const state: State\``,
748
764
  inputSchema: {
749
765
  type: 'object',
750
766
  properties: {
@@ -760,6 +776,11 @@ Prefer SVG icons over emoji (encoding issues).`,
760
776
  type: 'string',
761
777
  description: 'UUID of the method to add the statement to (optional, for method body statements)',
762
778
  },
779
+ types: {
780
+ type: 'object',
781
+ description: 'Map of variable names to their base TypeScript types (e.g., { "todos": "Todo", "count": "number" }). The assembler infers Ref<>, arrays, etc. from the code structure.',
782
+ additionalProperties: { type: 'string' },
783
+ },
763
784
  },
764
785
  required: ['file', 'code'],
765
786
  },
@@ -884,6 +905,11 @@ Required: uuid, name, type. For significant changes, include context fields: sum
884
905
  items: { type: 'string' },
885
906
  description: 'Project model UUIDs (auto-namespaced). Do NOT duplicate in includes.',
886
907
  },
908
+ frameworkImports: {
909
+ type: 'array',
910
+ items: { type: 'string' },
911
+ description: 'Stellify framework modules to import (e.g., ["Http", "Form", "Collection"]). Auto-generates: import { Http, Form, Collection } from \'stellify-framework\';',
912
+ },
887
913
  summary: {
888
914
  type: 'string',
889
915
  description: 'Context: What this file does and why it exists',
@@ -1403,7 +1429,7 @@ When creating Vue/ React etc. components, ALWAYS check the \`appJs\` field in th
1403
1429
  // Create MCP server
1404
1430
  const server = new Server({
1405
1431
  name: 'stellify-mcp',
1406
- version: '0.1.31',
1432
+ version: '0.1.33',
1407
1433
  }, {
1408
1434
  capabilities: {
1409
1435
  tools: {},
@@ -32,6 +32,7 @@ export interface AddMethodBodyParams {
32
32
  file: string;
33
33
  method: string;
34
34
  code: string;
35
+ types?: Record<string, string>;
35
36
  }
36
37
  export interface SearchMethodsParams {
37
38
  name?: string;
@@ -93,6 +94,7 @@ export declare class StellifyClient {
93
94
  file: string;
94
95
  code: string;
95
96
  method?: string;
97
+ types?: Record<string, string>;
96
98
  }): Promise<any>;
97
99
  getStatement(statement: string): Promise<any>;
98
100
  deleteStatement(file: string, method: string, statement: string): Promise<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stellisoft/stellify-mcp",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "mcpName": "io.github.MattStellisoft/stellify-mcp",
5
5
  "description": "MCP server for Stellify - AI-native code generation platform",
6
6
  "main": "dist/index.js",
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/Stellify-Software-Ltd/stellify-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.31",
9
+ "version": "0.1.33",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@stellisoft/stellify-mcp",
14
- "version": "0.1.31",
14
+ "version": "0.1.33",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },