@eide/foir-cli 0.1.30 → 0.1.32

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/dist/cli.js +0 -0
  2. package/dist/codegen/generators/static-documents.d.ts.map +1 -1
  3. package/dist/codegen/generators/static-documents.js +4 -1
  4. package/dist/commands/api-keys.d.ts.map +1 -1
  5. package/dist/commands/api-keys.js +3 -1
  6. package/dist/commands/auth-config.d.ts.map +1 -1
  7. package/dist/commands/auth-config.js +4 -3
  8. package/dist/commands/auth-providers.d.ts.map +1 -1
  9. package/dist/commands/auth-providers.js +7 -2
  10. package/dist/commands/customer-profiles.d.ts.map +1 -1
  11. package/dist/commands/customer-profiles.js +3 -1
  12. package/dist/commands/customers.d.ts.map +1 -1
  13. package/dist/commands/customers.js +9 -3
  14. package/dist/commands/embeddings.d.ts.map +1 -1
  15. package/dist/commands/embeddings.js +9 -3
  16. package/dist/commands/experiments.d.ts.map +1 -1
  17. package/dist/commands/experiments.js +28 -9
  18. package/dist/commands/extensions.d.ts.map +1 -1
  19. package/dist/commands/extensions.js +18 -6
  20. package/dist/commands/files.d.ts.map +1 -1
  21. package/dist/commands/hooks.d.ts.map +1 -1
  22. package/dist/commands/hooks.js +52 -6
  23. package/dist/commands/locales.d.ts.map +1 -1
  24. package/dist/commands/locales.js +13 -4
  25. package/dist/commands/login.d.ts.map +1 -1
  26. package/dist/commands/login.js +0 -1
  27. package/dist/commands/models.d.ts.map +1 -1
  28. package/dist/commands/models.js +6 -2
  29. package/dist/commands/notes.d.ts.map +1 -1
  30. package/dist/commands/notes.js +4 -2
  31. package/dist/commands/notifications.d.ts.map +1 -1
  32. package/dist/commands/operations.d.ts.map +1 -1
  33. package/dist/commands/operations.js +16 -5
  34. package/dist/commands/records.d.ts.map +1 -1
  35. package/dist/commands/records.js +15 -5
  36. package/dist/commands/schedules.d.ts.map +1 -1
  37. package/dist/commands/schedules.js +7 -2
  38. package/dist/commands/search.d.ts.map +1 -1
  39. package/dist/commands/segments.d.ts.map +1 -1
  40. package/dist/commands/segments.js +17 -5
  41. package/dist/commands/select-project.js +3 -3
  42. package/dist/commands/settings.d.ts.map +1 -1
  43. package/dist/commands/settings.js +3 -1
  44. package/dist/commands/variant-catalog.d.ts.map +1 -1
  45. package/dist/commands/variant-catalog.js +10 -3
  46. package/dist/commands/whoami.js +1 -1
  47. package/dist/graphql/generated.d.ts +31 -18
  48. package/dist/graphql/generated.d.ts.map +1 -1
  49. package/dist/graphql/generated.js +10167 -135
  50. package/dist/lib/errors.d.ts.map +1 -1
  51. package/dist/lib/errors.js +3 -0
  52. package/dist/lib/extension-helpers.d.ts.map +1 -1
  53. package/dist/lib/hook-helpers.d.ts +105 -0
  54. package/dist/lib/hook-helpers.d.ts.map +1 -0
  55. package/dist/lib/hook-helpers.js +108 -0
  56. package/dist/lib/seed-helpers.d.ts.map +1 -1
  57. package/package.json +13 -11
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBjD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,EAClD,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,EACvC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAChC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAiF/B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkBjD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,EAClD,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,EACvC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAChC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAoF/B"}
@@ -43,6 +43,7 @@ export function withErrorHandler(optsFn, fn) {
43
43
  console.error(chalk.gray('Hint: You may not have permission. Check your API key scopes.'));
44
44
  }
45
45
  }
46
+ // eslint-disable-next-line no-process-exit -- CLI error handler needs to exit process
46
47
  process.exit(1);
47
48
  }
48
49
  // HTTP-level errors
@@ -57,6 +58,7 @@ export function withErrorHandler(optsFn, fn) {
57
58
  console.error(chalk.red('Error:'), 'Authentication failed.');
58
59
  console.error(chalk.gray('Hint: Run `foir login` or set FOIR_API_KEY.'));
59
60
  }
61
+ // eslint-disable-next-line no-process-exit -- CLI error handler needs to exit process
60
62
  process.exit(1);
61
63
  }
62
64
  // Generic errors
@@ -67,6 +69,7 @@ export function withErrorHandler(optsFn, fn) {
67
69
  else {
68
70
  console.error(chalk.red('Error:'), message);
69
71
  }
72
+ // eslint-disable-next-line no-process-exit -- CLI error handler needs to exit process
70
73
  process.exit(1);
71
74
  }
72
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extension-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/extension-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,qBAAqB,GAC5B,qBAAqB,CAEvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,0BAA0B,GAChC,0BAA0B,CAE5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,oBAAoB,GAC1B,oBAAoB,CAEtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,8BAA8B,GACxC,8BAA8B,CAEhC;AAGD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,0CAA0C,GAC3C,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"extension-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/extension-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,qBAAqB,GAC5B,qBAAqB,CAEvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,0BAA0B,GAChC,0BAA0B,CAE5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAE7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,8BAA8B,GACxC,8BAA8B,CAEhC;AAGD,YAAY,EACV,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,iCAAiC,EACjC,8BAA8B,EAC9B,0CAA0C,GAC3C,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Hook configuration helpers.
3
+ *
4
+ * These helpers provide type-safe configuration for creating and managing
5
+ * hooks using types generated from the platform's GraphQL schema.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { defineHook } from '@eide/foir-cli/hooks';
10
+ *
11
+ * export default defineHook({
12
+ * key: 'notify-on-publish',
13
+ * name: 'Notify on Publish',
14
+ * event: 'RECORD_PUBLISHED',
15
+ * targetType: 'operation',
16
+ * operationKey: 'send-notification',
17
+ * filter: {
18
+ * modelKey: 'blog_post',
19
+ * condition: {
20
+ * type: 'condition',
21
+ * left: { type: 'context', path: 'customer.profile.plan' },
22
+ * operator: 'in',
23
+ * right: { type: 'literal', value: ['pro', 'enterprise'] },
24
+ * },
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ import type { CreateHookInput, HookFilterInput } from '../graphql/generated.js';
30
+ /**
31
+ * Define a hook with full type safety.
32
+ *
33
+ * Provides IntelliSense for all hook fields including:
34
+ * - `key`, `name`, `event` (required)
35
+ * - `targetType`: 'operation' (default) or 'notification'
36
+ * - `operationKey`: key of the operation to execute (when targetType='operation')
37
+ * - `notificationConfig`: notification settings (when targetType='notification')
38
+ * - `filter.modelKey`: only fire for records of this model
39
+ * - `filter.customerSegmentKey`: only fire for customers in this segment
40
+ * - `filter.condition`: rule expression (JSON) for conditional execution
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Operation hook
45
+ * const hook = defineHook({
46
+ * key: 'sync-on-create',
47
+ * name: 'Sync on Create',
48
+ * event: 'RECORD_CREATED',
49
+ * operationKey: 'sync-to-external',
50
+ * filter: { modelKey: 'product' },
51
+ * });
52
+ *
53
+ * // Notification hook with condition
54
+ * const notifyHook = defineHook({
55
+ * key: 'alert-vip-update',
56
+ * name: 'Alert on VIP Update',
57
+ * event: 'RECORD_UPDATED',
58
+ * targetType: 'notification',
59
+ * notificationConfig: {
60
+ * title: 'VIP record updated',
61
+ * audience: { type: 'segment', segmentId: 'vip-customers' },
62
+ * },
63
+ * filter: {
64
+ * condition: {
65
+ * type: 'condition',
66
+ * left: { type: 'context', path: 'customer.profile.tier' },
67
+ * operator: 'equals',
68
+ * right: { type: 'literal', value: 'vip', valueType: 'string' },
69
+ * },
70
+ * },
71
+ * });
72
+ * ```
73
+ */
74
+ export declare function defineHook(hook: CreateHookInput): CreateHookInput;
75
+ /**
76
+ * Define multiple hooks with type safety.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * export const hooks = defineHooks([
81
+ * { key: 'on-create', name: 'On Create', event: 'RECORD_CREATED', operationKey: 'sync' },
82
+ * { key: 'on-delete', name: 'On Delete', event: 'RECORD_DELETED', operationKey: 'cleanup' },
83
+ * ]);
84
+ * ```
85
+ */
86
+ export declare function defineHooks(hooks: CreateHookInput[]): CreateHookInput[];
87
+ /**
88
+ * Define a hook filter with type safety.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const filter = defineHookFilter({
93
+ * modelKey: 'blog_post',
94
+ * condition: {
95
+ * type: 'condition',
96
+ * left: { type: 'field', path: 'status' },
97
+ * operator: 'equals',
98
+ * right: { type: 'literal', value: 'published', valueType: 'string' },
99
+ * },
100
+ * });
101
+ * ```
102
+ */
103
+ export declare function defineHookFilter(filter: HookFilterInput): HookFilterInput;
104
+ export type { CreateHookInput, UpdateHookInput, HookFilterInput, HookEvent, } from '../graphql/generated.js';
105
+ //# sourceMappingURL=hook-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/hook-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAEjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAEvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAEzE;AAGD,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAS,GACV,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Hook configuration helpers.
3
+ *
4
+ * These helpers provide type-safe configuration for creating and managing
5
+ * hooks using types generated from the platform's GraphQL schema.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { defineHook } from '@eide/foir-cli/hooks';
10
+ *
11
+ * export default defineHook({
12
+ * key: 'notify-on-publish',
13
+ * name: 'Notify on Publish',
14
+ * event: 'RECORD_PUBLISHED',
15
+ * targetType: 'operation',
16
+ * operationKey: 'send-notification',
17
+ * filter: {
18
+ * modelKey: 'blog_post',
19
+ * condition: {
20
+ * type: 'condition',
21
+ * left: { type: 'context', path: 'customer.profile.plan' },
22
+ * operator: 'in',
23
+ * right: { type: 'literal', value: ['pro', 'enterprise'] },
24
+ * },
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ /**
30
+ * Define a hook with full type safety.
31
+ *
32
+ * Provides IntelliSense for all hook fields including:
33
+ * - `key`, `name`, `event` (required)
34
+ * - `targetType`: 'operation' (default) or 'notification'
35
+ * - `operationKey`: key of the operation to execute (when targetType='operation')
36
+ * - `notificationConfig`: notification settings (when targetType='notification')
37
+ * - `filter.modelKey`: only fire for records of this model
38
+ * - `filter.customerSegmentKey`: only fire for customers in this segment
39
+ * - `filter.condition`: rule expression (JSON) for conditional execution
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Operation hook
44
+ * const hook = defineHook({
45
+ * key: 'sync-on-create',
46
+ * name: 'Sync on Create',
47
+ * event: 'RECORD_CREATED',
48
+ * operationKey: 'sync-to-external',
49
+ * filter: { modelKey: 'product' },
50
+ * });
51
+ *
52
+ * // Notification hook with condition
53
+ * const notifyHook = defineHook({
54
+ * key: 'alert-vip-update',
55
+ * name: 'Alert on VIP Update',
56
+ * event: 'RECORD_UPDATED',
57
+ * targetType: 'notification',
58
+ * notificationConfig: {
59
+ * title: 'VIP record updated',
60
+ * audience: { type: 'segment', segmentId: 'vip-customers' },
61
+ * },
62
+ * filter: {
63
+ * condition: {
64
+ * type: 'condition',
65
+ * left: { type: 'context', path: 'customer.profile.tier' },
66
+ * operator: 'equals',
67
+ * right: { type: 'literal', value: 'vip', valueType: 'string' },
68
+ * },
69
+ * },
70
+ * });
71
+ * ```
72
+ */
73
+ export function defineHook(hook) {
74
+ return hook;
75
+ }
76
+ /**
77
+ * Define multiple hooks with type safety.
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * export const hooks = defineHooks([
82
+ * { key: 'on-create', name: 'On Create', event: 'RECORD_CREATED', operationKey: 'sync' },
83
+ * { key: 'on-delete', name: 'On Delete', event: 'RECORD_DELETED', operationKey: 'cleanup' },
84
+ * ]);
85
+ * ```
86
+ */
87
+ export function defineHooks(hooks) {
88
+ return hooks;
89
+ }
90
+ /**
91
+ * Define a hook filter with type safety.
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const filter = defineHookFilter({
96
+ * modelKey: 'blog_post',
97
+ * condition: {
98
+ * type: 'condition',
99
+ * left: { type: 'field', path: 'status' },
100
+ * operator: 'equals',
101
+ * right: { type: 'literal', value: 'published', valueType: 'string' },
102
+ * },
103
+ * });
104
+ * ```
105
+ */
106
+ export function defineHookFilter(filter) {
107
+ return filter;
108
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"seed-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/seed-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAErE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAEzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,oBAAoB,GAC1B,oBAAoB,CAEtB;AAGD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"seed-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/seed-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAErE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAEzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,iBAAiB,EAAE,GAC3B,iBAAiB,EAAE,CAErB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAE7E;AAGD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-cli",
3
- "version": "0.1.30",
3
+ "version": "0.1.32",
4
4
  "description": "Universal platform CLI for EIDE — scriptable, composable resource management",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -22,6 +22,10 @@
22
22
  "types": "./dist/lib/extension-helpers.js",
23
23
  "import": "./dist/lib/extension-helpers.js"
24
24
  },
25
+ "./hooks": {
26
+ "types": "./dist/lib/hook-helpers.js",
27
+ "import": "./dist/lib/hook-helpers.js"
28
+ },
25
29
  "./seed": {
26
30
  "types": "./dist/lib/seed-helpers.js",
27
31
  "import": "./dist/lib/seed-helpers.js"
@@ -32,7 +36,7 @@
32
36
  "README.md"
33
37
  ],
34
38
  "scripts": {
35
- "build": "tsc",
39
+ "build": "tsc -p tsconfig.build.json",
36
40
  "dev:cli": "tsx src/cli.ts",
37
41
  "check-types": "tsc --noEmit",
38
42
  "lint": "eslint src/",
@@ -41,11 +45,10 @@
41
45
  "test:watch": "vitest watch",
42
46
  "codegen": "graphql-codegen --config codegen.ts",
43
47
  "codegen:watch": "graphql-codegen --config codegen.ts --watch",
44
- "prepublishOnly": "npm run build",
45
- "patch": "npm run build && npm version patch",
46
- "minor": "npm run build && npm version minor",
47
- "major": "npm run build && npm version major",
48
- "release": "npm run build && npm version patch && npm publish"
48
+ "prepublishOnly": "pnpm run build",
49
+ "release:patch": "pnpm version patch",
50
+ "release:minor": "pnpm version minor",
51
+ "release:major": "pnpm version major"
49
52
  },
50
53
  "keywords": [
51
54
  "foir",
@@ -70,6 +73,7 @@
70
73
  "prettier": "^3.4.2"
71
74
  },
72
75
  "devDependencies": {
76
+ "@foir/platform": "workspace:*",
73
77
  "@graphql-codegen/cli": "^5.0.3",
74
78
  "@graphql-codegen/typed-document-node": "^5.0.12",
75
79
  "@graphql-codegen/typescript": "^4.1.2",
@@ -77,9 +81,6 @@
77
81
  "@graphql-typed-document-node/core": "^3.2.0",
78
82
  "@types/inquirer": "^9.0.7",
79
83
  "@types/node": "^22.5.0",
80
- "@typescript-eslint/eslint-plugin": "^8.0.0",
81
- "@typescript-eslint/parser": "^8.0.0",
82
- "eslint": "^9.0.0",
83
84
  "tsx": "^4.20.0",
84
85
  "typescript": "5.9.2",
85
86
  "vitest": "^3.2.4"
@@ -89,6 +90,7 @@
89
90
  },
90
91
  "repository": {
91
92
  "type": "git",
92
- "url": "https://github.com/eidebuild/foir-cli.git"
93
+ "url": "https://github.com/eidebuild/eide.git",
94
+ "directory": "packages/cli"
93
95
  }
94
96
  }