@lobu/connector-sdk 9.1.1 → 9.2.0

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.
@@ -0,0 +1,61 @@
1
+ /**
2
+ * defineConnector — functional authoring sugar over {@link ConnectorRuntime}.
3
+ *
4
+ * Lets a connector be declared as a plain spec with per-feed `sync` and
5
+ * per-action `execute` handlers (plus an optional `authenticate` flow), instead
6
+ * of hand-writing a class that switches on `ctx.feedKey` / `ctx.actionKey`. The
7
+ * feed/action keys are taken from the record keys, so they're never repeated.
8
+ *
9
+ * It LOWERS to a real `ConnectorRuntime` subclass so the existing
10
+ * connector-worker runs it unchanged: `child-runner` detects a connector by
11
+ * looking for a constructor whose prototype has `sync()` and `execute()`, then
12
+ * instantiates it and reads `instance.definition`. The class returned here
13
+ * satisfies that contract exactly.
14
+ *
15
+ * `@lobu/connector-sdk` is externalized at connector compile time, so this
16
+ * function ships as runtime-provided SDK code while the caller's handler
17
+ * closures get bundled into the connector — the spec object (with its
18
+ * `sync`/`execute`/`authenticate` functions) is captured by the returned class.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * export default defineConnector({
23
+ * key: 'github', name: 'GitHub', version: '1.0.0',
24
+ * feeds: { stars: { name: 'Stars', sync: async (ctx) => ({ events, checkpoint }) } },
25
+ * actions: { star_repo: { name: 'Star', execute: async (ctx) => ({ success: true }) } },
26
+ * });
27
+ * ```
28
+ */
29
+ import { ConnectorRuntime } from "./connector-runtime.js";
30
+ import type { ActionContext, ActionDefinition, ActionResult, AuthContext, AuthResult, ConnectorDefinition, FeedDefinition, SyncContext, SyncResult } from "./connector-types.js";
31
+ /** A feed's metadata (minus the record-derived `key`) plus its `sync` handler. */
32
+ export interface ConnectorFeedSpec<C = Record<string, unknown>, F = Record<string, unknown>> extends Omit<FeedDefinition, "key"> {
33
+ /** Ingest handler for this feed. Called by the worker for a `sync` run. */
34
+ sync(ctx: SyncContext<C, F>): Promise<SyncResult<C>>;
35
+ }
36
+ /** An action's metadata (minus `key`; `requiresApproval` defaults false) plus its `execute` handler. */
37
+ export interface ConnectorActionSpec extends Omit<ActionDefinition, "key" | "requiresApproval"> {
38
+ /** Whether the action needs human approval before execution. Defaults to `false`. */
39
+ requiresApproval?: boolean;
40
+ /** Effect handler for this action. Called inline (low-risk) or by the worker. */
41
+ execute(ctx: ActionContext): Promise<ActionResult>;
42
+ }
43
+ /** Functional connector spec: connector metadata plus handler-bearing feeds/actions. */
44
+ export interface ConnectorSpec extends Omit<ConnectorDefinition, "feeds" | "actions"> {
45
+ feeds?: Record<string, ConnectorFeedSpec>;
46
+ actions?: Record<string, ConnectorActionSpec>;
47
+ /**
48
+ * Optional interactive auth flow. When provided, lowers to
49
+ * `ConnectorRuntime.authenticate`; when omitted, the connector inherits the
50
+ * base behavior (throws — non-interactive auth needs no handler).
51
+ */
52
+ authenticate?(ctx: AuthContext): Promise<AuthResult>;
53
+ }
54
+ /** Constructor shape the connector-worker's `child-runner` detects and instantiates. */
55
+ export type ConnectorClass = new () => ConnectorRuntime;
56
+ /**
57
+ * Build a {@link ConnectorRuntime} subclass from a functional spec. The default
58
+ * export of a `.connector.ts` should be the returned class.
59
+ */
60
+ export declare function defineConnector(spec: ConnectorSpec): ConnectorClass;
61
+ //# sourceMappingURL=define-connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-connector.d.ts","sourceRoot":"","sources":["../src/define-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B,kFAAkF;AAClF,MAAM,WAAW,iBAAiB,CAChC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC3B,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IACnC,2EAA2E;IAC3E,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CACtD;AAED,wGAAwG;AACxG,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,kBAAkB,CAAC;IAC1D,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iFAAiF;IACjF,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACpD;AAED,wFAAwF;AACxF,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9C;;;;OAIG;IACH,YAAY,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACtD;AAED,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,UAAU,gBAAgB,CAAC;AA0DxD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAkCnE"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * defineConnector — functional authoring sugar over {@link ConnectorRuntime}.
3
+ *
4
+ * Lets a connector be declared as a plain spec with per-feed `sync` and
5
+ * per-action `execute` handlers (plus an optional `authenticate` flow), instead
6
+ * of hand-writing a class that switches on `ctx.feedKey` / `ctx.actionKey`. The
7
+ * feed/action keys are taken from the record keys, so they're never repeated.
8
+ *
9
+ * It LOWERS to a real `ConnectorRuntime` subclass so the existing
10
+ * connector-worker runs it unchanged: `child-runner` detects a connector by
11
+ * looking for a constructor whose prototype has `sync()` and `execute()`, then
12
+ * instantiates it and reads `instance.definition`. The class returned here
13
+ * satisfies that contract exactly.
14
+ *
15
+ * `@lobu/connector-sdk` is externalized at connector compile time, so this
16
+ * function ships as runtime-provided SDK code while the caller's handler
17
+ * closures get bundled into the connector — the spec object (with its
18
+ * `sync`/`execute`/`authenticate` functions) is captured by the returned class.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * export default defineConnector({
23
+ * key: 'github', name: 'GitHub', version: '1.0.0',
24
+ * feeds: { stars: { name: 'Stars', sync: async (ctx) => ({ events, checkpoint }) } },
25
+ * actions: { star_repo: { name: 'Star', execute: async (ctx) => ({ success: true }) } },
26
+ * });
27
+ * ```
28
+ */
29
+ import { ConnectorRuntime } from "./connector-runtime.js";
30
+ /** Strip handler closures and derive `key` from the record key — keeps the definition serializable. */
31
+ function buildDefinition(spec) {
32
+ const definition = {
33
+ key: spec.key,
34
+ name: spec.name,
35
+ version: spec.version,
36
+ description: spec.description,
37
+ authSchema: spec.authSchema,
38
+ optionsSchema: spec.optionsSchema,
39
+ faviconDomain: spec.faviconDomain,
40
+ mcpConfig: spec.mcpConfig,
41
+ openapiConfig: spec.openapiConfig,
42
+ requiredCapability: spec.requiredCapability,
43
+ runtime: spec.runtime,
44
+ };
45
+ if (spec.feeds) {
46
+ definition.feeds = Object.fromEntries(Object.entries(spec.feeds).map(([key, feed]) => [
47
+ key,
48
+ {
49
+ key,
50
+ name: feed.name,
51
+ description: feed.description,
52
+ requiredScopes: feed.requiredScopes,
53
+ displayNameTemplate: feed.displayNameTemplate,
54
+ configSchema: feed.configSchema,
55
+ userManaged: feed.userManaged,
56
+ eventKinds: feed.eventKinds,
57
+ },
58
+ ]));
59
+ }
60
+ if (spec.actions) {
61
+ definition.actions = Object.fromEntries(Object.entries(spec.actions).map(([key, action]) => [
62
+ key,
63
+ {
64
+ key,
65
+ name: action.name,
66
+ description: action.description,
67
+ requiresApproval: action.requiresApproval ?? false,
68
+ annotations: action.annotations,
69
+ inputSchema: action.inputSchema,
70
+ outputSchema: action.outputSchema,
71
+ },
72
+ ]));
73
+ }
74
+ return definition;
75
+ }
76
+ /**
77
+ * Build a {@link ConnectorRuntime} subclass from a functional spec. The default
78
+ * export of a `.connector.ts` should be the returned class.
79
+ */
80
+ export function defineConnector(spec) {
81
+ const definition = buildDefinition(spec);
82
+ return class extends ConnectorRuntime {
83
+ definition = definition;
84
+ async sync(ctx) {
85
+ const feed = spec.feeds?.[ctx.feedKey];
86
+ if (!feed) {
87
+ throw new Error(`Connector '${spec.key}' has no sync handler for feed '${ctx.feedKey}'`);
88
+ }
89
+ return feed.sync(ctx);
90
+ }
91
+ async execute(ctx) {
92
+ const action = spec.actions?.[ctx.actionKey];
93
+ if (!action) {
94
+ return {
95
+ success: false,
96
+ error: `Connector '${spec.key}' has no action handler for '${ctx.actionKey}'`,
97
+ };
98
+ }
99
+ return action.execute(ctx);
100
+ }
101
+ async authenticate(ctx) {
102
+ if (!spec.authenticate) {
103
+ return super.authenticate(ctx);
104
+ }
105
+ return spec.authenticate(ctx);
106
+ }
107
+ };
108
+ }
109
+ //# sourceMappingURL=define-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-connector.js","sourceRoot":"","sources":["../src/define-connector.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export { Type } from '@sinclair/typebox';
3
3
  export type { KyInstance, Options } from 'ky';
4
4
  export { default as ky, HTTPError } from 'ky';
5
5
  export { ConnectorRuntime } from './connector-runtime.js';
6
+ export { defineConnector } from './define-connector.js';
7
+ export type { ConnectorActionSpec, ConnectorClass, ConnectorFeedSpec, ConnectorSpec, } from './define-connector.js';
6
8
  export type { ActionContext, ActionDefinition, ActionResult, ApprovalStatus, AuthArtifact, AuthContext, AuthResult, Connection, ConnectorAuthBrowser, ConnectorAuthEnvField, ConnectorAuthEnvKeys, ConnectorAuthInteractive, ConnectorAuthMethod, ConnectorAuthNone, ConnectorAuthOAuth, ConnectorAuthSchema, ConnectorDefinition, ConnectorRuntimeInfo, ContentItem, EntityIdentitySpec, EntityLinkOverride, EntityLinkOverrides, EntityLinkRule, EntityTraitSpec, EventEnvelope, Feed, FeedDefinition, IdentityNamespace, Run, RunStatus, RunType, SyncContext, SyncCredentials, SyncResult, } from './connector-types.js';
7
9
  export { IDENTITY } from './connector-types.js';
8
10
  import { AssuranceLevel, assuranceMeets, AutoCreateWhenRule, CLAIM_COLLISION_SEMANTIC_TYPE, ClaimCollisionPayload, ConnectorFact, ConnectorIdentityCapability, DerivedFromProvenance, DerivedRelationshipMetadata, FactEventMetadata, IDENTITY_FACT_SEMANTIC_TYPE, RelationshipTypeIdentityMetadata } from './identity-types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { Type } from '@sinclair/typebox';
5
5
  export { default as ky, HTTPError } from 'ky';
6
6
  // Connector runtime & types (primary API)
7
7
  export { ConnectorRuntime } from './connector-runtime.js';
8
+ export { defineConnector } from './define-connector.js';
8
9
  export { IDENTITY } from './connector-types.js';
9
10
  // Identity-engine SDK contracts. Each schema export is both a TypeBox
10
11
  // runtime validator (value) AND a TypeScript type via declaration merging.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAIhF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC9C,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,sEAAsE;AACtE,2EAA2E;AAC3E,iEAAiE;AACjE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,yEAAyE;AACzE,+CAA+C;AAC/C,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,GACjC,CAAC;AACF,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7D,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EACL,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAmB1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,gFAAgF;AAIhF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAGzC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC9C,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AA2CxD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,sEAAsE;AACtE,2EAA2E;AAC3E,iEAAiE;AACjE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,yEAAyE;AACzE,+CAA+C;AAC/C,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,qBAAqB,EACrB,aAAa,EACb,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,GACjC,CAAC;AACF,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,SAAS;AACT,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7D,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,+BAA+B,EAC/B,mCAAmC,EACnC,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EACL,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAmB1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/connector-sdk",
3
- "version": "9.1.1",
3
+ "version": "9.2.0",
4
4
  "description": "Lobu memory SDK — build pluggable connectors for Lobu memory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,6 +16,12 @@
16
16
  "default": "./dist/index.js"
17
17
  }
18
18
  },
19
+ "./define-connector": {
20
+ "import": {
21
+ "types": "./dist/define-connector.d.ts",
22
+ "default": "./dist/define-connector.js"
23
+ }
24
+ },
19
25
  "./identity-types": {
20
26
  "types": "./dist/identity-types.d.ts",
21
27
  "import": "./dist/identity-types.js"
@@ -42,7 +48,7 @@
42
48
  "clean": "rm -rf dist"
43
49
  },
44
50
  "dependencies": {
45
- "@lobu/core": "9.1.1",
51
+ "@lobu/core": "9.2.0",
46
52
  "@sinclair/typebox": "^0.34.41",
47
53
  "isomorphic-git": "^1.34.0",
48
54
  "ky": "^1.14.0",