@eide/foir-cli 0.1.42 → 0.1.44

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.
@@ -1,38 +1,12 @@
1
1
  /**
2
2
  * Configuration types for foir-cli
3
3
  */
4
- type CodegenTarget = 'react' | 'remix';
5
- interface DomainConfig {
6
- auth?: boolean;
7
- authProviders?: boolean;
8
- files?: boolean;
9
- sync?: boolean;
10
- notifications?: boolean;
11
- operations?: boolean;
12
- schedules?: boolean;
13
- sharing?: boolean;
14
- embeddings?: boolean;
15
- analytics?: boolean;
16
- }
17
4
  interface FoirPullConfig {
18
- output?: {
19
- /** Directory for generated TypeScript types (default: './src/generated/types') */
5
+ /** Output directory for all generated files (default: './src/generated') */
6
+ output?: string | {
20
7
  types?: string;
21
- /** Directory for generated GraphQL documents (default: './src/generated/documents') */
22
- documents?: string;
23
- /** Directory for generated typed operation modules (default: sibling of types) */
24
- operations?: string;
25
- /** Directory for generated React hooks (requires 'react' target) */
26
- hooks?: string;
27
- /** Directory for generated Remix loaders (requires 'remix' target) */
28
- loaders?: string;
29
- /** Directory for generated Swift files (e.g., './generated/swift') */
30
- swift?: string;
8
+ [key: string]: unknown;
31
9
  };
32
- /** Code generation targets — 'react' for Apollo hooks, 'remix' for typed loaders */
33
- targets?: CodegenTarget[];
34
- /** Enable static domain document generation (default: all enabled) */
35
- domains?: boolean | DomainConfig;
36
10
  /** Filter to specific model keys */
37
11
  only?: string[];
38
12
  /** Include inline-only models for type resolution (default: true) */
@@ -41,6 +15,8 @@ interface FoirPullConfig {
41
15
  prettier?: boolean;
42
16
  }
43
17
  interface FoirConfig {
18
+ /** Named project profile to use by default */
19
+ project?: string;
44
20
  pull?: FoirPullConfig;
45
21
  }
46
22
  /**
@@ -49,9 +25,24 @@ interface FoirConfig {
49
25
  *
50
26
  * ```ts
51
27
  * import { defineConfig } from '@eide/foir-cli/config';
52
- * export default defineConfig({ pull: { output: { types: './src/generated' } } });
28
+ * export default defineConfig({ pull: { output: './src/generated' } });
53
29
  * ```
54
30
  */
55
31
  declare function defineConfig(config: FoirConfig): FoirConfig;
32
+ /** @deprecated Use string output path instead */
33
+ type CodegenTarget = 'react' | 'remix';
34
+ /** @deprecated Domains are now baked into @foir/client */
35
+ interface DomainConfig {
36
+ auth?: boolean;
37
+ authProviders?: boolean;
38
+ files?: boolean;
39
+ sync?: boolean;
40
+ notifications?: boolean;
41
+ operations?: boolean;
42
+ schedules?: boolean;
43
+ sharing?: boolean;
44
+ embeddings?: boolean;
45
+ analytics?: boolean;
46
+ }
56
47
 
57
48
  export { type CodegenTarget, type DomainConfig, type FoirConfig, type FoirPullConfig, defineConfig };
@@ -0,0 +1,10 @@
1
+ import {
2
+ findConfigFile,
3
+ loadConfigFile,
4
+ loadConfigProject
5
+ } from "./chunk-L642MYIL.js";
6
+ export {
7
+ findConfigFile,
8
+ loadConfigFile,
9
+ loadConfigProject
10
+ };
@@ -200,7 +200,7 @@ type Query {
200
200
  billingPlan(slug: String!): BillingPlan
201
201
  billingCustomPackages(tenantId: ID): [BillingCustomPackage!]!
202
202
  billingCustomPackage(id: ID!): BillingCustomPackage
203
- billingSubscription: BillingSubscription
203
+ billingSubscription(tenantId: ID): BillingSubscription
204
204
  billingUsageSummary(projectId: ID): BillingUsageSummary!
205
205
  billingUsageAlerts: [UsageAlert!]!
206
206
  tenantBillingStatus(status: String, limit: Int, offset: Int): TenantBillingStatusResult!
@@ -414,13 +414,19 @@ type Query {
414
414
  """
415
415
  searchEmbeddings(input: SearchEmbeddingsInput!): [EmbeddingSearchResult!]!
416
416
 
417
- """List embeddings for a specific record (admin visibility)"""
417
+ """
418
+ List embeddings for a specific record.
419
+ Returns metadata (key, dimensions, contentHash) — not the vector data itself.
420
+ """
418
421
  embeddingsForRecord(recordId: ID!): [RecordEmbedding!]!
419
422
 
420
423
  """Aggregate stats for a model's embeddings (admin visibility)"""
421
424
  embeddingStats(modelKey: String!): EmbeddingStatsResult!
422
425
 
423
- """Find records similar to a given record's embedding (admin visibility)"""
426
+ """
427
+ Find records similar to a given record's embedding.
428
+ Looks up the source record's vector, then performs similarity search.
429
+ """
424
430
  findSimilarRecords(recordId: ID!, key: String, limit: Int): [EmbeddingSearchResult!]!
425
431
  variantCatalog(isActive: Boolean, limit: Int, offset: Int): [VariantCatalogEntry!]!
426
432
  variantCatalogEntry(id: ID!): VariantCatalogEntry
@@ -533,8 +539,8 @@ type Query {
533
539
  """List variants for a record"""
534
540
  recordVariants(recordId: ID!, limit: Int, offset: Int): RecordVariantList!
535
541
 
536
- """Get model + record for editor (create-on-save pattern)"""
537
- recordForEditor(modelKey: String!, naturalKey: String): RecordForEditor!
542
+ """Look up a record by natural key or ID (editor URLs may contain either)"""
543
+ recordByKeyOrId(modelKey: String!, identifier: String!): Record
538
544
 
539
545
  """List scheduled publishes"""
540
546
  scheduledRecordPublishes(from: DateTime, to: DateTime, modelKey: String, limit: Int, offset: Int): ScheduledPublishList!
@@ -5284,12 +5290,6 @@ type SaveContentResult {
5284
5290
  isDeduplicated: Boolean!
5285
5291
  }
5286
5292
 
5287
- """Record for editor: model + optional record (create-on-save pattern)"""
5288
- type RecordForEditor {
5289
- model: Model!
5290
- record: Record
5291
- }
5292
-
5293
5293
  type ScheduledPublishItem {
5294
5294
  versionId: String!
5295
5295
  versionNumber: Int!
@@ -5908,8 +5908,26 @@ type SyncPushResultItem {
5908
5908
  error: String
5909
5909
  }
5910
5910
 
5911
+ """Per-item error detail for sync push failures"""
5912
+ type SyncPushError {
5913
+ """Client ID of the failed item"""
5914
+ clientId: String!
5915
+
5916
+ """Human-readable error message"""
5917
+ message: String!
5918
+ }
5919
+
5911
5920
  type SyncPushResult {
5912
5921
  items: [SyncPushResultItem!]!
5922
+
5923
+ """Number of items successfully applied"""
5924
+ applied: Int!
5925
+
5926
+ """Number of items with conflicts"""
5927
+ conflicts: Int!
5928
+
5929
+ """Per-item error details (empty when no errors)"""
5930
+ errors: [SyncPushError!]!
5913
5931
  }
5914
5932
 
5915
5933
  type RecordChangedEvent {
@@ -5952,6 +5970,7 @@ type Share {
5952
5970
  file: File
5953
5971
  sharedWithCustomerId: String!
5954
5972
  sharedWith: CustomerProfile
5973
+ sharedByProfile: CustomerProfile
5955
5974
  permission: SharePermission!
5956
5975
  status: ShareStatus!
5957
5976
  acceptedAt: DateTime
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-cli",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
4
4
  "description": "Universal platform CLI for Foir platform",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -35,6 +35,21 @@
35
35
  "dist",
36
36
  "README.md"
37
37
  ],
38
+ "scripts": {
39
+ "build": "tsup",
40
+ "dev:cli": "tsx src/cli.ts",
41
+ "check-types": "tsc --noEmit",
42
+ "lint": "eslint src/",
43
+ "lint:fix": "eslint src/ --fix",
44
+ "test": "vitest run",
45
+ "test:watch": "vitest watch",
46
+ "codegen": "graphql-codegen --config codegen.ts",
47
+ "codegen:watch": "graphql-codegen --config codegen.ts --watch",
48
+ "prepublishOnly": "pnpm run build",
49
+ "release:patch": "pnpm version patch",
50
+ "release:minor": "pnpm version minor",
51
+ "release:major": "pnpm version major"
52
+ },
38
53
  "keywords": [
39
54
  "foir",
40
55
  "eide",
@@ -58,19 +73,19 @@
58
73
  "prettier": "^3.4.2"
59
74
  },
60
75
  "devDependencies": {
76
+ "@foir/platform": "workspace:*",
61
77
  "@graphql-codegen/cli": "^5.0.3",
62
78
  "@graphql-codegen/typed-document-node": "^5.0.12",
63
79
  "@graphql-codegen/typescript": "^4.1.2",
64
80
  "@graphql-codegen/typescript-operations": "^4.4.0",
65
81
  "@graphql-typed-document-node/core": "^3.2.0",
66
82
  "@types/inquirer": "^9.0.7",
83
+ "@eide/command-registry": "workspace:*",
67
84
  "@types/node": "^22.5.0",
68
85
  "tsup": "^8.5.1",
69
86
  "tsx": "^4.20.0",
70
87
  "typescript": "5.9.2",
71
- "vitest": "^3.2.4",
72
- "@foir/platform": "1.0.0",
73
- "@eide/command-registry": "0.1.0"
88
+ "vitest": "^3.2.4"
74
89
  },
75
90
  "engines": {
76
91
  "node": ">=18.0.0"
@@ -79,19 +94,5 @@
79
94
  "type": "git",
80
95
  "url": "https://github.com/eidebuild/eide.git",
81
96
  "directory": "packages/cli"
82
- },
83
- "scripts": {
84
- "build": "tsup",
85
- "dev:cli": "tsx src/cli.ts",
86
- "check-types": "tsc --noEmit",
87
- "lint": "eslint src/",
88
- "lint:fix": "eslint src/ --fix",
89
- "test": "vitest run",
90
- "test:watch": "vitest watch",
91
- "codegen": "graphql-codegen --config codegen.ts",
92
- "codegen:watch": "graphql-codegen --config codegen.ts --watch",
93
- "release:patch": "pnpm version patch",
94
- "release:minor": "pnpm version minor",
95
- "release:major": "pnpm version major"
96
97
  }
97
- }
98
+ }