@lobu/connector-sdk 9.1.0 → 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.
- package/dist/define-connector.d.ts +61 -0
- package/dist/define-connector.d.ts.map +1 -0
- package/dist/define-connector.js +109 -0
- package/dist/define-connector.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
|
@@ -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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
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",
|