@fayz-ai/core 0.8.5 → 0.9.0-next.1

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAC/L,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC3J,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACrkB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACpF,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACrI,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACvI,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC9E,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC5G,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EACL,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,GAC/E,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EACL,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EACxD,oBAAoB,EAAE,uBAAuB,EAAE,uBAAuB,EACtE,gBAAgB,EAAE,gBAAgB,GACnC,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AACpE,YAAY,EACV,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,GAC3E,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,GAC/E,MAAM,OAAO,CAAA;AACd,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGtH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGzG,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACrE,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAGtG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAClI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5D,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxF,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACpP,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAG/E,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC/D,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGtD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxH,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGzD,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EACnF,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAC7E,cAAc,EAAE,eAAe,GAChC,MAAM,UAAU,CAAA;AACjB,YAAY,EACV,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,kBAAkB,EACnF,eAAe,EAAE,aAAa,GAC/B,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACrE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAG9D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACxG,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAGlF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAGxM,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACvE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
- export { withAfterHooks } from './chunk-BBDNC3FP.js';
1
+ export { connectorDirection, connectorPlanes, preferredPlane, withAfterHooks } from './chunk-L4TLMYGC.js';
2
2
  export { PluginContractError, assertConnectorContract, assertPluginManifestContract } from './chunk-X5THHG6T.js';
3
3
  import { getActiveTenantId, globalCache, getSupabaseClientOptional, resolveDataProvider } from './chunk-V2MSAUHO.js';
4
4
  export { applyRangeToQuery, bulkCreate, clearGlobalCache, countByTenant, createArchetypeProvider, createCacheStore, createFayzApiProvider, createMockProvider, createSupabaseProvider, getActiveTenantId, getSupabaseClientOptional, globalCache, invalidateCount, isFilterObject, matchesRange, parseRangeFilter, resolveDataProvider, setActiveTenantId, setGlobalSupabaseClient, stableKey, subscribeActiveTenant, useActiveTenantId, withCache } from './chunk-V2MSAUHO.js';
5
5
  export { clearEntityRegistry, deriveEntityKey, getAllEntities, getEntityByKey, registerEntity } from './chunk-CU64QI4A.js';
6
6
  import { getBlock, getScaffold } from './chunk-YH25Y4FW.js';
7
7
  export { PLUGIN_API_VERSION, PluginRuntimeProvider, Registry, blockRegistry, componentRegistry, definePlugin, getBlock, getComponent, getDashboardWidgets, getMetric, getPage, getPlugin, getPluginFactory, getScaffold, getWidgetsForZone, isCustomId, listBlocks, listMetrics, listPluginFactories, listPlugins, metricRegistry, pageRegistry, pluginFactoryRegistry, pluginRegistry, registerBlock, registerComponent, registerMetric, registerPage, registerPlugin, registerPluginFactory, registerScaffold, resolvePluginComponent, resolvePluginRuntime, scaffoldRegistry, useConnectorsForPlugin, usePluginRuntime, usePluginRuntimeOptional } from './chunk-YH25Y4FW.js';
8
- import { getCurrentLocale } from './chunk-HN7PTOSH.js';
9
- export { I18nProvider, coreTranslations, getCurrentLocale, mergeTranslations, preloadLocale, registerTranslations, setCurrentLocale, setLocaleStore, useI18nConfig, useTranslation } from './chunk-HN7PTOSH.js';
8
+ import { getCurrentLocale } from './chunk-5RJVUC6J.js';
9
+ export { I18nProvider, coreTranslations, getCurrentLocale, mergeTranslations, preloadLocale, registerTranslations, setCurrentLocale, setLocaleStore, useI18nConfig, useTranslation } from './chunk-5RJVUC6J.js';
10
10
  export { hashRouterAdapter, windowRouterAdapter } from './chunk-Y2C2FBQP.js';
11
11
  export { FayzRuntimeError, createFayzRuntimeClient } from './chunk-7RTUHSKY.js';
12
12
  import * as React3 from 'react';
@@ -1,6 +1,14 @@
1
1
  import type * as React from 'react';
2
2
  /** How a connector authenticates to its provider. */
3
3
  export type IntegrationAuthKind = 'oauth' | 'api-key' | 'mtls';
4
+ export type ConnectorPlane = 'agentic' | 'sync';
5
+ /** Which side reaches for the other, from this app's point of view. */
6
+ export type ConnectorDirection = 'inbound' | 'outbound';
7
+ /** A tool the assistant gains once a connector is resolved on the agentic plane. */
8
+ export interface ConnectorAgentTool {
9
+ name: string;
10
+ description?: string;
11
+ }
4
12
  /** Which way data flows for a given capability. */
5
13
  export type SyncDirection = 'inbound' | 'outbound' | 'bidirectional';
6
14
  /** What causes a sync to run. */
@@ -76,6 +84,8 @@ export interface ConnectorField {
76
84
  export interface ConnectorStatus {
77
85
  connected: boolean;
78
86
  detail?: string;
87
+ /** Which plane the live connection is running on (when connected). */
88
+ plane?: ConnectorPlane;
79
89
  }
80
90
  /**
81
91
  * UI-facing connector descriptor. Built on the data-plane `Connector` concept
@@ -92,7 +102,25 @@ export interface ConnectorDefinition {
92
102
  description?: string;
93
103
  /** Lucide icon name. */
94
104
  icon?: string;
105
+ /**
106
+ * The connector's own brand mark — a URL or an inline data URI. Preferred
107
+ * over the catalogue's icon and over `icon`, so a connector the Fayz
108
+ * directory doesn't carry still shows up as itself.
109
+ */
110
+ logoUrl?: string;
95
111
  authKind: IntegrationAuthKind;
112
+ /** Planes this connector can be honoured on. Default: `['sync']`. */
113
+ planes?: ConnectorPlane[];
114
+ /** Default `'outbound'` — this app reaching a provider. */
115
+ direction?: ConnectorDirection;
116
+ /** What the assistant gains on the agentic plane — shown before connecting. */
117
+ agentTools?: ConnectorAgentTool[];
118
+ /** Canonical entities this connector touches ('booking', 'movement'). */
119
+ entities?: string[];
120
+ /** Catalog category ('scheduling', 'payments', …) — matches the Fayz catalog. */
121
+ category?: string;
122
+ /** Provider documentation, linked from the connector's detail. */
123
+ docsUrl?: string;
96
124
  /** Declarative credentials — the unified form renders these (api-key / mtls). */
97
125
  fields?: ConnectorField[];
98
126
  /** Current connection state for the status badge. */
@@ -105,9 +133,21 @@ export interface ConnectorDefinition {
105
133
  startOAuth?(redirectTo?: string): Promise<string>;
106
134
  /** Tear down the connection. */
107
135
  disconnect?(): Promise<void>;
136
+ /** Move an existing connection between planes (only when `planes` has both). */
137
+ setPlane?(plane: ConnectorPlane): Promise<void>;
108
138
  /** Optional connector-specific UI below the connect panel (import / sync / history). */
109
139
  ExtraPanel?: React.ComponentType;
110
140
  }
141
+ /** Planes a connector supports — the contract's default is the sync pipeline. */
142
+ export declare function connectorPlanes(def: Pick<ConnectorDefinition, 'planes'>): ConnectorPlane[];
143
+ /**
144
+ * The plane to offer first. Agentic wins whenever the connector supports it:
145
+ * handing the assistant a tool costs nothing to keep in agreement, while a sync
146
+ * pipeline is a copy that has to be maintained for as long as it exists.
147
+ */
148
+ export declare function preferredPlane(def: Pick<ConnectorDefinition, 'planes'>): ConnectorPlane;
149
+ /** Direction a connector moves data in — outbound unless it says otherwise. */
150
+ export declare function connectorDirection(def: Pick<ConnectorDefinition, 'direction'>): ConnectorDirection;
111
151
  /**
112
152
  * Wrap an object's async methods so a handler fires AFTER selected methods
113
153
  * resolve — the non-invasive hook for outbound, event-driven sync when there's
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { withAfterHooks } from '../chunk-BBDNC3FP.js';
1
+ export { connectorDirection, connectorPlanes, preferredPlane, withAfterHooks } from '../chunk-L4TLMYGC.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,10 @@ export interface AuthUser {
5
5
  fullName?: string;
6
6
  avatarUrl?: string;
7
7
  role?: string;
8
+ /** Set on users created by an invite (magic link, no password). The shell shows
9
+ * the set-password screen until they choose one — otherwise the only way back
10
+ * in is another magic link. */
11
+ mustSetPassword?: boolean;
8
12
  }
9
13
  export interface AuthSession {
10
14
  user: AuthUser;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACtE,iBAAiB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC9D,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1D;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7G"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;oCAEgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IACtE,iBAAiB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC9D,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1D;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7G"}
@@ -93,6 +93,14 @@ export interface CreateOrgOptions {
93
93
  }
94
94
  export interface OrgAdapter {
95
95
  listUserOrgs(userId: string): Promise<OrgMembership[]>;
96
+ /**
97
+ * Redeem any invite addressed to the signed-in user, turning it into a real
98
+ * membership. Called once per sign-in, BEFORE `listUserOrgs` — without it an
99
+ * invitee looks org-less and the auto-create path invents a personal org
100
+ * instead of putting them in the org that invited them. Returns how many
101
+ * invites were accepted. Optional so adapters can adopt it incrementally.
102
+ */
103
+ acceptPendingInvites?(): Promise<number>;
96
104
  getOrg(orgId: string): Promise<Organization>;
97
105
  createOrg(name: string, userId: string, options?: CreateOrgOptions): Promise<Organization>;
98
106
  updateOrg(orgId: string, data: Partial<Organization>): Promise<Organization>;
@@ -1 +1 @@
1
- {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../src/types/org.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "fayz": {
4
4
  "status": "beta"
5
5
  },
6
- "version": "0.8.5",
6
+ "version": "0.9.0-next.1",
7
7
  "description": "Fayz SDK core — data providers, entity system, plugin runtime, i18n, routing",
8
8
  "type": "module",
9
9
  "sideEffects": false,
@@ -74,11 +74,11 @@
74
74
  "peerDependencies": {
75
75
  "react": "^18.0.0 || ^19.0.0",
76
76
  "react-dom": "^18.0.0 || ^19.0.0",
77
- "zustand": "^4.5.0",
77
+ "zustand": "^4.5.0 || ^5.0.0",
78
78
  "@supabase/supabase-js": "^2.45.0"
79
79
  },
80
80
  "dependencies": {
81
- "@fayz-ai/sdk": "^0.8.5"
81
+ "@fayz-ai/sdk": "^0.9.0-next.1"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@types/react": "^18.3.0",
@@ -87,8 +87,8 @@
87
87
  "react-dom": "^18.3.0",
88
88
  "tsup": "^8.2.0",
89
89
  "typescript": "^5.5.0",
90
- "vite": "^5.4.0",
91
- "vitest": "2.1.9",
90
+ "vite": "^8.1.5",
91
+ "vitest": "^4.1.5",
92
92
  "zustand": "^4.5.0",
93
93
  "@supabase/supabase-js": "^2.45.0"
94
94
  },
package/src/i18n/index.ts CHANGED
@@ -124,6 +124,62 @@ export const coreTranslations: Record<string, Record<string, string>> = {
124
124
  'connectors.saving': 'Saving…',
125
125
  'connectors.empty': 'No integrations available for this module yet.',
126
126
  'connectors.configure': 'Configure',
127
+ 'connectors.hubSubtitle': 'Apps, assistants and providers connected to this organization.',
128
+ 'connectors.add': 'Add connector',
129
+ 'connectors.addSubtitle': 'Integrations available on Fayz for this organization.',
130
+ 'connectors.search': 'Search integration…',
131
+ 'connectors.noneFound': 'No integration found for “{{query}}”.',
132
+ 'connectors.viewAll': 'See every connector',
133
+ 'connectors.groupMine': 'In this organization',
134
+ 'connectors.groupOffered': 'Offered by Fayz',
135
+ 'connectors.docs': 'Provider documentation',
136
+ 'connectors.builtIn': 'native',
137
+ 'connectors.partOfApp': 'part of the app',
138
+ 'connectors.plane.agentic': 'Assistant',
139
+ 'connectors.plane.agentic.desc': 'The assistant uses the provider’s own tools on demand. Nothing is copied.',
140
+ 'connectors.plane.sync': 'Sync',
141
+ 'connectors.plane.sync.desc': 'A pipeline keeps a copy of the data inside the app.',
142
+ 'connectors.plane.recommended': 'recommended',
143
+ 'connectors.plane.undecided': 'How this one is resolved is decided by Fayz when the integration ships.',
144
+ 'connectors.plane.switched': 'Mode changed',
145
+ 'connectors.plane.lockedHint': 'This connection cannot change mode after the fact — disconnect and connect again.',
146
+ 'connectors.direction.inbound': 'inbound',
147
+ 'connectors.direction.outbound': 'outbound',
148
+ 'connectors.state.connected': 'connected',
149
+ 'connectors.state.ready': 'ready to connect',
150
+ 'connectors.state.catalog': 'available on Fayz',
151
+ 'connectors.state.soon': 'coming soon',
152
+ 'connectors.journey.what': 'What it does',
153
+ 'connectors.journey.how': 'How it gets resolved',
154
+ 'connectors.journey.authorize': 'Authorize',
155
+ 'connectors.journey.access': 'Access',
156
+ 'connectors.journey.after': 'Once connected',
157
+ 'connectors.after.agentic': 'These tools are available to the assistant right now.',
158
+ 'connectors.after.willAgentic': 'The assistant gains this provider’s tools; no copy of the data is made.',
159
+ 'connectors.after.willSync': 'A pipeline starts keeping this data in agreement, with mapping and history.',
160
+ 'connectors.tools': 'Assistant tools',
161
+ 'connectors.entitiesCount': 'reaches {{count}} record types',
162
+ 'connectors.entitiesList': 'Records: {{list}}',
163
+ 'connectors.capabilitiesUnknown': 'This connector has not published what it reaches yet.',
164
+ 'connectors.readOnly': 'read only',
165
+ 'connectors.readWrite': 'read and write',
166
+ 'connectors.needsPlugin': 'Fayz has this integration built, but this app does not have the plugin that hosts it.',
167
+ 'connectors.soonBody': 'Fayz lists this provider, but the integration is not wired yet.',
168
+ 'connectors.connectedOn': 'Connected on {{date}}',
169
+ 'connectors.lastUsed': 'used {{when}}',
170
+ 'connectors.neverUsed': 'not used yet',
171
+ 'connectors.grantedByOther': 'authorized by someone else on the team',
172
+ 'connectors.revokeConfirm': 'Disconnect {{name}}? It loses access immediately.',
173
+ 'connectors.filter.all': 'All',
174
+ 'connectors.filter.connected': 'Connected',
175
+ 'connectors.filter.agentic': 'Assistant',
176
+ 'connectors.filter.sync': 'Sync',
177
+ 'connectors.emptyTitle': 'No connectors',
178
+ 'connectors.emptyBody': 'Connect a provider, or authorize an external assistant, and it shows up here.',
179
+ 'connectors.noProject': 'Connectors unavailable',
180
+ 'connectors.noProjectBody': 'This app is not linked to a Fayz project.',
181
+ 'connectors.noOrg': 'No organization',
182
+ 'connectors.noOrgBody': 'Pick an organization to see its connections.',
127
183
  'saveBar.unsaved': 'Unsaved changes',
128
184
  'common.add': 'Add',
129
185
  'common.loading': 'Loading...',
@@ -166,6 +222,24 @@ export const coreTranslations: Record<string, Record<string, string>> = {
166
222
  'auth.signup.submit': 'Create account',
167
223
  'auth.signup.hasAccount': 'Already have an account?',
168
224
  'auth.signup.signInLink': 'Sign in',
225
+ 'auth.setPassword.recoveryTitle': 'Choose a new password',
226
+ 'auth.setPassword.recoverySubtitle': 'Set a new password to get back into your account.',
227
+ 'auth.setPassword.welcomeTitle': 'Welcome to {{appName}}',
228
+ 'auth.setPassword.welcomeSubtitle': 'Choose a password to finish setting up your access.',
229
+ 'auth.setPassword.newPassword': 'New password',
230
+ 'auth.setPassword.confirmPassword': 'Confirm password',
231
+ 'auth.setPassword.submit': 'Save password',
232
+ 'auth.setPassword.saving': 'Saving...',
233
+ 'auth.setPassword.tooShort': 'Password must be at least 8 characters.',
234
+ 'auth.setPassword.mismatch': 'Passwords do not match.',
235
+ 'auth.setPassword.checking': 'Checking your link...',
236
+ 'auth.setPassword.expiredTitle': 'This link has expired',
237
+ 'auth.setPassword.expiredSubtitle': 'Reset links can only be used once. Enter your e-mail and we will send a new one.',
238
+ 'auth.setPassword.email': 'E-mail',
239
+ 'auth.setPassword.sendNewLink': 'Send new link',
240
+ 'auth.setPassword.sending': 'Sending...',
241
+ 'auth.setPassword.sent': 'Check your inbox — a new link is on the way.',
242
+ 'auth.setPassword.backToLogin': 'Back to sign in',
169
243
  'settings.title': 'Settings',
170
244
  'settings.company': 'Company',
171
245
  'settings.branding': 'Branding',
@@ -203,6 +277,62 @@ export const coreTranslations: Record<string, Record<string, string>> = {
203
277
  'connectors.saving': 'Salvando…',
204
278
  'connectors.empty': 'Nenhuma integração disponível para este módulo ainda.',
205
279
  'connectors.configure': 'Configurar',
280
+ 'connectors.hubSubtitle': 'Aplicativos, assistentes e provedores ligados a esta organização.',
281
+ 'connectors.add': 'Adicionar conector',
282
+ 'connectors.addSubtitle': 'Integrações disponíveis no Fayz para esta organização.',
283
+ 'connectors.search': 'Buscar integração…',
284
+ 'connectors.noneFound': 'Nenhuma integração encontrada para “{{query}}”.',
285
+ 'connectors.viewAll': 'Ver todos os conectores',
286
+ 'connectors.groupMine': 'Nesta organização',
287
+ 'connectors.groupOffered': 'Oferecidos pelo Fayz',
288
+ 'connectors.docs': 'Documentação do provedor',
289
+ 'connectors.builtIn': 'nativo',
290
+ 'connectors.partOfApp': 'faz parte do app',
291
+ 'connectors.plane.agentic': 'Assistente',
292
+ 'connectors.plane.agentic.desc': 'O assistente usa as ferramentas do provedor na hora. Nada é copiado.',
293
+ 'connectors.plane.sync': 'Sincronização',
294
+ 'connectors.plane.sync.desc': 'Uma esteira mantém uma cópia dos dados dentro do app.',
295
+ 'connectors.plane.recommended': 'recomendado',
296
+ 'connectors.plane.undecided': 'O modo desta integração é definido pelo Fayz quando ela for ligada.',
297
+ 'connectors.plane.switched': 'Modo alterado',
298
+ 'connectors.plane.lockedHint': 'Esta conexão não troca de modo depois de feita — desconecte e conecte de novo.',
299
+ 'connectors.direction.inbound': 'entrada',
300
+ 'connectors.direction.outbound': 'saída',
301
+ 'connectors.state.connected': 'conectado',
302
+ 'connectors.state.ready': 'pronto para conectar',
303
+ 'connectors.state.catalog': 'disponível no Fayz',
304
+ 'connectors.state.soon': 'em breve',
305
+ 'connectors.journey.what': 'O que ele faz',
306
+ 'connectors.journey.how': 'Como ele resolve',
307
+ 'connectors.journey.authorize': 'Autorizar',
308
+ 'connectors.journey.access': 'Acesso',
309
+ 'connectors.journey.after': 'Depois de conectado',
310
+ 'connectors.after.agentic': 'Essas ferramentas já estão à mão do assistente.',
311
+ 'connectors.after.willAgentic': 'O assistente ganha as ferramentas do provedor; nenhuma cópia dos dados é feita.',
312
+ 'connectors.after.willSync': 'Uma esteira passa a manter esses dados em acordo, com de-para e histórico.',
313
+ 'connectors.tools': 'Ferramentas do assistente',
314
+ 'connectors.entitiesCount': 'alcança {{count}} tipos de registro',
315
+ 'connectors.entitiesList': 'Registros: {{list}}',
316
+ 'connectors.capabilitiesUnknown': 'Este conector ainda não publicou o que ele alcança.',
317
+ 'connectors.readOnly': 'somente leitura',
318
+ 'connectors.readWrite': 'leitura e escrita',
319
+ 'connectors.needsPlugin': 'O Fayz tem essa integração pronta, mas este app não tem o plugin que hospeda ela.',
320
+ 'connectors.soonBody': 'O Fayz lista este provedor, mas a integração ainda não foi ligada.',
321
+ 'connectors.connectedOn': 'Conectado em {{date}}',
322
+ 'connectors.lastUsed': 'usado {{when}}',
323
+ 'connectors.neverUsed': 'ainda não usado',
324
+ 'connectors.grantedByOther': 'autorizado por outra pessoa da equipe',
325
+ 'connectors.revokeConfirm': 'Desconectar {{name}}? Ele perde o acesso imediatamente.',
326
+ 'connectors.filter.all': 'Tudo',
327
+ 'connectors.filter.connected': 'Conectados',
328
+ 'connectors.filter.agentic': 'Assistente',
329
+ 'connectors.filter.sync': 'Sincronização',
330
+ 'connectors.emptyTitle': 'Nenhum conector',
331
+ 'connectors.emptyBody': 'Conecte um provedor, ou autorize um assistente externo, e ele aparece aqui.',
332
+ 'connectors.noProject': 'Conectores indisponíveis',
333
+ 'connectors.noProjectBody': 'Este app não está ligado a um projeto Fayz.',
334
+ 'connectors.noOrg': 'Sem organização',
335
+ 'connectors.noOrgBody': 'Escolha uma organização para ver as conexões dela.',
206
336
  'saveBar.unsaved': 'Alterações não salvas',
207
337
  'common.add': 'Adicionar',
208
338
  'common.loading': 'Carregando...',
@@ -245,6 +375,24 @@ export const coreTranslations: Record<string, Record<string, string>> = {
245
375
  'auth.signup.submit': 'Criar conta',
246
376
  'auth.signup.hasAccount': 'Já tem uma conta?',
247
377
  'auth.signup.signInLink': 'Entrar',
378
+ 'auth.setPassword.recoveryTitle': 'Escolha uma nova senha',
379
+ 'auth.setPassword.recoverySubtitle': 'Defina uma nova senha para voltar a acessar sua conta.',
380
+ 'auth.setPassword.welcomeTitle': 'Bem-vindo ao {{appName}}',
381
+ 'auth.setPassword.welcomeSubtitle': 'Escolha uma senha para terminar de configurar seu acesso.',
382
+ 'auth.setPassword.newPassword': 'Nova senha',
383
+ 'auth.setPassword.confirmPassword': 'Confirmar senha',
384
+ 'auth.setPassword.submit': 'Salvar senha',
385
+ 'auth.setPassword.saving': 'Salvando...',
386
+ 'auth.setPassword.tooShort': 'A senha precisa ter no mínimo 8 caracteres.',
387
+ 'auth.setPassword.mismatch': 'As senhas não conferem.',
388
+ 'auth.setPassword.checking': 'Verificando seu link...',
389
+ 'auth.setPassword.expiredTitle': 'Este link expirou',
390
+ 'auth.setPassword.expiredSubtitle': 'Links de acesso só funcionam uma vez. Informe seu e-mail e enviamos um novo.',
391
+ 'auth.setPassword.email': 'E-mail',
392
+ 'auth.setPassword.sendNewLink': 'Enviar novo link',
393
+ 'auth.setPassword.sending': 'Enviando...',
394
+ 'auth.setPassword.sent': 'Confira sua caixa de entrada — o novo link está a caminho.',
395
+ 'auth.setPassword.backToLogin': 'Voltar para o login',
248
396
  'settings.title': 'Configurações',
249
397
  'settings.company': 'Empresa',
250
398
  'settings.branding': 'Identidade Visual',
package/src/index.ts CHANGED
@@ -77,7 +77,7 @@ export type {
77
77
  export { assertPluginManifestContract, assertConnectorContract, PluginContractError } from './testing'
78
78
 
79
79
  // Integration connector spine (shared contract for external-provider sync)
80
- export { withAfterHooks } from './integrations'
80
+ export { withAfterHooks, connectorPlanes, preferredPlane, connectorDirection } from './integrations'
81
81
  export type {
82
82
  Connector,
83
83
  ConnectorCapability,
@@ -90,6 +90,9 @@ export type {
90
90
  ConnectorDefinition,
91
91
  ConnectorField,
92
92
  ConnectorStatus,
93
+ ConnectorPlane,
94
+ ConnectorDirection,
95
+ ConnectorAgentTool,
93
96
  } from './integrations'
94
97
 
95
98
  // Shared utilities
@@ -16,6 +16,32 @@ import type * as React from 'react'
16
16
  /** How a connector authenticates to its provider. */
17
17
  export type IntegrationAuthKind = 'oauth' | 'api-key' | 'mtls'
18
18
 
19
+ // ---------------------------------------------------------------------------
20
+ // Planes — the two ways a connector gets honoured
21
+ // ---------------------------------------------------------------------------
22
+ // "Integração" and "conector" are the same noun. What differs is the plane it
23
+ // runs on:
24
+ //
25
+ // - 'agentic' — the provider's tools are handed to the assistant. Nothing is
26
+ // copied: the agent calls the provider at the moment it needs the answer,
27
+ // so there is no mirror to drift and no de-para to maintain. Preferred
28
+ // whenever the provider offers it.
29
+ // - 'sync' — the old-school pipeline: authorize, map, run, keep an audit
30
+ // trail. Required when the data must exist *inside* Fayz — to be listed,
31
+ // filtered, reported on, or read while the provider is unreachable.
32
+ //
33
+ // A connector may support both; `preferredPlane` encodes the house rule.
34
+ export type ConnectorPlane = 'agentic' | 'sync'
35
+
36
+ /** Which side reaches for the other, from this app's point of view. */
37
+ export type ConnectorDirection = 'inbound' | 'outbound'
38
+
39
+ /** A tool the assistant gains once a connector is resolved on the agentic plane. */
40
+ export interface ConnectorAgentTool {
41
+ name: string
42
+ description?: string
43
+ }
44
+
19
45
  /** Which way data flows for a given capability. */
20
46
  export type SyncDirection = 'inbound' | 'outbound' | 'bidirectional'
21
47
 
@@ -104,6 +130,8 @@ export interface ConnectorField {
104
130
  export interface ConnectorStatus {
105
131
  connected: boolean
106
132
  detail?: string
133
+ /** Which plane the live connection is running on (when connected). */
134
+ plane?: ConnectorPlane
107
135
  }
108
136
 
109
137
  /**
@@ -121,7 +149,25 @@ export interface ConnectorDefinition {
121
149
  description?: string
122
150
  /** Lucide icon name. */
123
151
  icon?: string
152
+ /**
153
+ * The connector's own brand mark — a URL or an inline data URI. Preferred
154
+ * over the catalogue's icon and over `icon`, so a connector the Fayz
155
+ * directory doesn't carry still shows up as itself.
156
+ */
157
+ logoUrl?: string
124
158
  authKind: IntegrationAuthKind
159
+ /** Planes this connector can be honoured on. Default: `['sync']`. */
160
+ planes?: ConnectorPlane[]
161
+ /** Default `'outbound'` — this app reaching a provider. */
162
+ direction?: ConnectorDirection
163
+ /** What the assistant gains on the agentic plane — shown before connecting. */
164
+ agentTools?: ConnectorAgentTool[]
165
+ /** Canonical entities this connector touches ('booking', 'movement'). */
166
+ entities?: string[]
167
+ /** Catalog category ('scheduling', 'payments', …) — matches the Fayz catalog. */
168
+ category?: string
169
+ /** Provider documentation, linked from the connector's detail. */
170
+ docsUrl?: string
125
171
  /** Declarative credentials — the unified form renders these (api-key / mtls). */
126
172
  fields?: ConnectorField[]
127
173
  /** Current connection state for the status badge. */
@@ -134,10 +180,31 @@ export interface ConnectorDefinition {
134
180
  startOAuth?(redirectTo?: string): Promise<string>
135
181
  /** Tear down the connection. */
136
182
  disconnect?(): Promise<void>
183
+ /** Move an existing connection between planes (only when `planes` has both). */
184
+ setPlane?(plane: ConnectorPlane): Promise<void>
137
185
  /** Optional connector-specific UI below the connect panel (import / sync / history). */
138
186
  ExtraPanel?: React.ComponentType
139
187
  }
140
188
 
189
+ /** Planes a connector supports — the contract's default is the sync pipeline. */
190
+ export function connectorPlanes(def: Pick<ConnectorDefinition, 'planes'>): ConnectorPlane[] {
191
+ return def.planes?.length ? def.planes : ['sync']
192
+ }
193
+
194
+ /**
195
+ * The plane to offer first. Agentic wins whenever the connector supports it:
196
+ * handing the assistant a tool costs nothing to keep in agreement, while a sync
197
+ * pipeline is a copy that has to be maintained for as long as it exists.
198
+ */
199
+ export function preferredPlane(def: Pick<ConnectorDefinition, 'planes'>): ConnectorPlane {
200
+ return connectorPlanes(def).includes('agentic') ? 'agentic' : 'sync'
201
+ }
202
+
203
+ /** Direction a connector moves data in — outbound unless it says otherwise. */
204
+ export function connectorDirection(def: Pick<ConnectorDefinition, 'direction'>): ConnectorDirection {
205
+ return def.direction ?? 'outbound'
206
+ }
207
+
141
208
  /**
142
209
  * Wrap an object's async methods so a handler fires AFTER selected methods
143
210
  * resolve — the non-invasive hook for outbound, event-driven sync when there's
package/src/types/auth.ts CHANGED
@@ -6,6 +6,10 @@ export interface AuthUser {
6
6
  fullName?: string
7
7
  avatarUrl?: string
8
8
  role?: string
9
+ /** Set on users created by an invite (magic link, no password). The shell shows
10
+ * the set-password screen until they choose one — otherwise the only way back
11
+ * in is another magic link. */
12
+ mustSetPassword?: boolean
9
13
  }
10
14
 
11
15
  export interface AuthSession {
package/src/types/org.ts CHANGED
@@ -101,6 +101,14 @@ export interface CreateOrgOptions {
101
101
 
102
102
  export interface OrgAdapter {
103
103
  listUserOrgs(userId: string): Promise<OrgMembership[]>
104
+ /**
105
+ * Redeem any invite addressed to the signed-in user, turning it into a real
106
+ * membership. Called once per sign-in, BEFORE `listUserOrgs` — without it an
107
+ * invitee looks org-less and the auto-create path invents a personal org
108
+ * instead of putting them in the org that invited them. Returns how many
109
+ * invites were accepted. Optional so adapters can adopt it incrementally.
110
+ */
111
+ acceptPendingInvites?(): Promise<number>
104
112
  getOrg(orgId: string): Promise<Organization>
105
113
  createOrg(name: string, userId: string, options?: CreateOrgOptions): Promise<Organization>
106
114
  updateOrg(orgId: string, data: Partial<Organization>): Promise<Organization>
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/integrations/index.ts"],"names":[],"mappings":";AAmJO,SAAS,cAAA,CACd,QACA,OAAA,EACG;AACH,EAAA,OAAO,IAAI,MAAM,MAAA,EAAQ;AAAA,IACvB,GAAA,CAAI,GAAA,EAAK,IAAA,EAAM,QAAA,EAAU;AACvB,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,MAAM,QAAQ,CAAA;AAC5C,MAAA,MAAM,IAAA,GAAQ,QAA8G,IAAI,CAAA;AAChI,MAAA,IAAI,OAAO,IAAA,KAAS,UAAA,IAAc,CAAC,MAAM,OAAO,IAAA;AAChD,MAAA,OAAO,IAAI,IAAA,KAAoB;AAC7B,QAAA,MAAM,MAAA,GAAU,IAAA,CAAsC,KAAA,CAAM,GAAA,EAAK,IAAI,CAAA;AACrE,QAAA,IAAI,kBAAkB,OAAA,EAAS;AAC7B,UAAA,OAAO,MAAA,CAAO,IAAA,CAAK,CAAC,KAAA,KAAU;AAC5B,YAAA,IAAI;AAAE,cAAA,KAAK,OAAA,CAAQ,QAAQ,IAAA,CAAK,IAAA,EAAM,KAAK,CAAC,CAAA,CAAE,MAAM,MAAM;AAAA,cAAC,CAAC,CAAA;AAAA,YAAE,CAAA,CAAA,MAAQ;AAAA,YAA6B;AACnG,YAAA,OAAO,KAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH;AACA,QAAA,IAAI;AAAE,UAAA,KAAK,OAAA,CAAQ,QAAQ,IAAA,CAAK,IAAA,EAAM,MAAM,CAAC,CAAA,CAAE,MAAM,MAAM;AAAA,UAAC,CAAC,CAAA;AAAA,QAAE,CAAA,CAAA,MAAQ;AAAA,QAAa;AACpF,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,IACF;AAAA,GACD,CAAA;AACH","file":"chunk-BBDNC3FP.js","sourcesContent":["// ---------------------------------------------------------------------------\n// Integration Connector spine\n// ---------------------------------------------------------------------------\n// An integration is a connector that keeps canonical Fayz data in agreement\n// with an external provider (Google Calendar, open banking, Shopify, …). This\n// module is the thin shared contract both native (SDK) and client-built\n// connectors implement. The heavy lifting (auth, fetch/push, idempotent\n// upserts) runs in the data plane — typically a Supabase Edge Function — while\n// the control plane (a settings tab + this contract) lives in the app/plugin.\n//\n// Design notes live in docs/design/bling-integration-brief.md. Proven precedents:\n// the Fayz runtime OAuth broker (packages/core/src/runtime/oauth.ts) and the\n// bank-statement edge functions in the predecessor app.\nimport type * as React from 'react'\n\n/** How a connector authenticates to its provider. */\nexport type IntegrationAuthKind = 'oauth' | 'api-key' | 'mtls'\n\n/** Which way data flows for a given capability. */\nexport type SyncDirection = 'inbound' | 'outbound' | 'bidirectional'\n\n/** What causes a sync to run. */\nexport type SyncTrigger = 'on-write' | 'scheduled' | 'manual' | 'webhook'\n\n/** One thing a connector can sync (an entity + its direction + triggers). */\nexport interface ConnectorCapability {\n /** Canonical entity synced, e.g. 'booking', 'movement'. */\n entity: string\n direction: SyncDirection\n triggers: SyncTrigger[]\n}\n\n/** The state of a tenant's connection to a provider (one row in a *_integrations table). */\nexport interface ConnectionConfig {\n /** Provider key, e.g. 'google', 'plugbank'. */\n provider: string\n /** Whether the connection is active and should sync. */\n active: boolean\n /** Opaque, provider-specific config (calendar id, account id, cursor, …). Never secrets. */\n settings?: Record<string, unknown>\n /** Last successful sync, ISO timestamp. */\n lastSyncAt?: string\n}\n\n/** Audit record of one sync execution (generalizes *_sync_log / *_sync_runs). */\nexport interface SyncRun {\n id?: string\n provider: string\n direction: SyncDirection\n trigger: SyncTrigger\n status: 'success' | 'partial' | 'error'\n /** Items pulled/pushed and how many were written. */\n fetched?: number\n written?: number\n /** Pagination/incremental cursor advanced by this run. */\n cursor?: string\n error?: string\n startedAt?: string\n finishedAt?: string\n}\n\nexport interface TestConnectionResult {\n ok: boolean\n message?: string\n}\n\n/**\n * A connector's control-plane descriptor. The data-plane verbs (testConnection,\n * sync) are usually thin clients that invoke a Supabase Edge Function — the\n * function holds credentials and does the real work.\n */\nexport interface Connector {\n /** Stable connector id, e.g. 'google-calendar', 'plugbank'. */\n id: string\n /** Provider key matching ConnectionConfig.provider. */\n provider: string\n /** Plugin this connector extends, e.g. 'agenda', 'financial'. */\n pluginId: string\n authKind: IntegrationAuthKind\n capabilities: ConnectorCapability[]\n /** Validate the stored credentials/config without syncing. */\n testConnection?(config: ConnectionConfig): Promise<TestConnectionResult>\n /** Run a sync for the given direction; returns the audit record. */\n sync?(input: { config: ConnectionConfig; direction: SyncDirection; trigger: SyncTrigger }): Promise<SyncRun>\n}\n\n// ---------------------------------------------------------------------------\n// Connector UI contract — how an addon plugin EXTENDS a host plugin's settings\n// ---------------------------------------------------------------------------\n// An addon plugin declares one or more ConnectorDefinitions on its manifest\n// (`connectors: [...]`). The runtime groups them by `hostPluginId`, and the host\n// plugin's settings panel renders them in a unified \"Integrations\" tab — the\n// same connect/credentials experience for every connector. The connector-\n// specific bits (import a statement, sync now, history) live in `ExtraPanel`.\n\n/** A credential input the unified setup form renders for an api-key/mtls connector. */\nexport interface ConnectorField {\n key: string\n label: string\n type: 'text' | 'password'\n placeholder?: string\n}\n\nexport interface ConnectorStatus {\n connected: boolean\n detail?: string\n}\n\n/**\n * UI-facing connector descriptor. Built on the data-plane `Connector` concept\n * (`pluginId` → `hostPluginId`), plus the control-plane hooks the unified\n * Integrations hub calls. Lives in core so `PluginManifest.connectors` can type\n * it; the rendering hub lives in `@fayz-ai/saas`.\n */\nexport interface ConnectorDefinition {\n /** Stable connector id, e.g. 'google-calendar', 'plugbank'. */\n id: string\n /** The plugin this connector extends, e.g. 'financial', 'agenda'. */\n hostPluginId: string\n name: string\n description?: string\n /** Lucide icon name. */\n icon?: string\n authKind: IntegrationAuthKind\n /** Declarative credentials — the unified form renders these (api-key / mtls). */\n fields?: ConnectorField[]\n /** Current connection state for the status badge. */\n getStatus(): Promise<ConnectorStatus>\n /** Validate credentials without persisting (api-key / mtls). */\n testConnection?(values: Record<string, string>): Promise<TestConnectionResult>\n /** Persist the connection (api-key / mtls). */\n saveConnection?(values: Record<string, string>): Promise<void>\n /** Begin an OAuth connect flow — returns the consent URL to redirect to. */\n startOAuth?(redirectTo?: string): Promise<string>\n /** Tear down the connection. */\n disconnect?(): Promise<void>\n /** Optional connector-specific UI below the connect panel (import / sync / history). */\n ExtraPanel?: React.ComponentType\n}\n\n/**\n * Wrap an object's async methods so a handler fires AFTER selected methods\n * resolve — the non-invasive hook for outbound, event-driven sync when there's\n * no app-level event bus. Example: wrap an AgendaDataProvider so that after\n * createBooking/updateBooking/deleteBooking succeed, an external calendar is\n * updated. The handler runs fire-and-forget; its failures never break the call.\n */\nexport function withAfterHooks<T extends object>(\n target: T,\n methods: Partial<Record<keyof T, (args: unknown[], result: unknown) => void | Promise<void>>>,\n): T {\n return new Proxy(target, {\n get(obj, prop, receiver) {\n const orig = Reflect.get(obj, prop, receiver)\n const hook = (methods as Record<string | symbol, ((args: unknown[], result: unknown) => void | Promise<void>) | undefined>)[prop]\n if (typeof orig !== 'function' || !hook) return orig\n return (...args: unknown[]) => {\n const result = (orig as (...a: unknown[]) => unknown).apply(obj, args)\n if (result instanceof Promise) {\n return result.then((value) => {\n try { void Promise.resolve(hook(args, value)).catch(() => {}) } catch { /* never break the call */ }\n return value\n })\n }\n try { void Promise.resolve(hook(args, result)).catch(() => {}) } catch { /* noop */ }\n return result\n }\n },\n })\n}\n"]}