@onkeiki/agents 0.1.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.
Files changed (111) hide show
  1. package/dist/Alert.d.ts +56 -0
  2. package/dist/Alert.d.ts.map +1 -0
  3. package/dist/Alert.js +8 -0
  4. package/dist/Alert.js.map +1 -0
  5. package/dist/Entity.d.ts +158 -0
  6. package/dist/Entity.d.ts.map +1 -0
  7. package/dist/Entity.js +289 -0
  8. package/dist/Entity.js.map +1 -0
  9. package/dist/Kit.d.ts +138 -0
  10. package/dist/Kit.d.ts.map +1 -0
  11. package/dist/Kit.js +517 -0
  12. package/dist/Kit.js.map +1 -0
  13. package/dist/OpenApi.d.ts +151 -0
  14. package/dist/OpenApi.d.ts.map +1 -0
  15. package/dist/OpenApi.js +222 -0
  16. package/dist/OpenApi.js.map +1 -0
  17. package/dist/Plugin.d.ts +183 -0
  18. package/dist/Plugin.d.ts.map +1 -0
  19. package/dist/Plugin.js +10 -0
  20. package/dist/Plugin.js.map +1 -0
  21. package/dist/Server.d.ts +71 -0
  22. package/dist/Server.d.ts.map +1 -0
  23. package/dist/Server.js +476 -0
  24. package/dist/Server.js.map +1 -0
  25. package/dist/Tool.d.ts +86 -0
  26. package/dist/Tool.d.ts.map +1 -0
  27. package/dist/Tool.js +27 -0
  28. package/dist/Tool.js.map +1 -0
  29. package/dist/bundle.d.ts +17 -0
  30. package/dist/bundle.d.ts.map +1 -0
  31. package/dist/bundle.js +101 -0
  32. package/dist/bundle.js.map +1 -0
  33. package/dist/index.d.ts +19 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +18 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/services/Blackboard.d.ts +18 -0
  38. package/dist/services/Blackboard.d.ts.map +1 -0
  39. package/dist/services/Blackboard.js +4 -0
  40. package/dist/services/Blackboard.js.map +1 -0
  41. package/dist/services/Observability.d.ts +102 -0
  42. package/dist/services/Observability.d.ts.map +1 -0
  43. package/dist/services/Observability.js +238 -0
  44. package/dist/services/Observability.js.map +1 -0
  45. package/dist/services/Platform.d.ts +112 -0
  46. package/dist/services/Platform.d.ts.map +1 -0
  47. package/dist/services/Platform.js +13 -0
  48. package/dist/services/Platform.js.map +1 -0
  49. package/dist/services/PluginDb.d.ts +44 -0
  50. package/dist/services/PluginDb.d.ts.map +1 -0
  51. package/dist/services/PluginDb.js +5 -0
  52. package/dist/services/PluginDb.js.map +1 -0
  53. package/dist/services/Sandbox.d.ts +68 -0
  54. package/dist/services/Sandbox.d.ts.map +1 -0
  55. package/dist/services/Sandbox.js +4 -0
  56. package/dist/services/Sandbox.js.map +1 -0
  57. package/dist/services/Steering.d.ts +46 -0
  58. package/dist/services/Steering.d.ts.map +1 -0
  59. package/dist/services/Steering.js +4 -0
  60. package/dist/services/Steering.js.map +1 -0
  61. package/dist/services/Storage.d.ts +63 -0
  62. package/dist/services/Storage.d.ts.map +1 -0
  63. package/dist/services/Storage.js +13 -0
  64. package/dist/services/Storage.js.map +1 -0
  65. package/dist/services/Transport.d.ts +19 -0
  66. package/dist/services/Transport.d.ts.map +1 -0
  67. package/dist/services/Transport.js +4 -0
  68. package/dist/services/Transport.js.map +1 -0
  69. package/dist/services/index.d.ts +9 -0
  70. package/dist/services/index.d.ts.map +1 -0
  71. package/dist/services/index.js +9 -0
  72. package/dist/services/index.js.map +1 -0
  73. package/dist/types/config.d.ts +526 -0
  74. package/dist/types/config.d.ts.map +1 -0
  75. package/dist/types/config.js +2 -0
  76. package/dist/types/config.js.map +1 -0
  77. package/dist/types/index.d.ts +4 -0
  78. package/dist/types/index.d.ts.map +1 -0
  79. package/dist/types/index.js +4 -0
  80. package/dist/types/index.js.map +1 -0
  81. package/dist/types/message.d.ts +54 -0
  82. package/dist/types/message.d.ts.map +1 -0
  83. package/dist/types/message.js +47 -0
  84. package/dist/types/message.js.map +1 -0
  85. package/dist/types/user.d.ts +16 -0
  86. package/dist/types/user.d.ts.map +1 -0
  87. package/dist/types/user.js +14 -0
  88. package/dist/types/user.js.map +1 -0
  89. package/package.json +39 -0
  90. package/src/Alert.ts +51 -0
  91. package/src/Entity.ts +543 -0
  92. package/src/Kit.ts +705 -0
  93. package/src/OpenApi.ts +343 -0
  94. package/src/Plugin.ts +209 -0
  95. package/src/Server.ts +618 -0
  96. package/src/Tool.ts +110 -0
  97. package/src/bundle.ts +114 -0
  98. package/src/index.ts +209 -0
  99. package/src/services/Blackboard.ts +19 -0
  100. package/src/services/Observability.ts +320 -0
  101. package/src/services/Platform.ts +125 -0
  102. package/src/services/PluginDb.ts +48 -0
  103. package/src/services/Sandbox.ts +74 -0
  104. package/src/services/Steering.ts +45 -0
  105. package/src/services/Storage.ts +76 -0
  106. package/src/services/Transport.ts +21 -0
  107. package/src/services/index.ts +8 -0
  108. package/src/types/config.ts +531 -0
  109. package/src/types/index.ts +3 -0
  110. package/src/types/message.ts +60 -0
  111. package/src/types/user.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Kit.js","sourceRoot":"","sources":["../src/Kit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Builders for the compact OpenAPI documents a user connection registers with
3
+ * the Executor daemon.
4
+ *
5
+ * Why write a document at all, when every provider publishes one: the daemon
6
+ * derives the OAuth authorization request from the document's security scheme,
7
+ * so a published description is also a scope request. Google's Gmail
8
+ * description declares fourteen scopes headed by `https://mail.google.com/` —
9
+ * full mailbox read, send, delete and settings — which is the hardest thing to
10
+ * get through verification (restricted scope, brand review, annual CASA
11
+ * assessment) and what the consent screen would ask a stranger for over SMS.
12
+ * A connection that reads unread mail and sends replies needs two scopes.
13
+ *
14
+ * So the deal is: name the scopes you want and the operations you drive, and
15
+ * this returns the document declaring exactly that.
16
+ *
17
+ * ```ts
18
+ * const drive = googleOpenApiSpec({
19
+ * title: 'Google Drive',
20
+ * baseUrl: 'https://www.googleapis.com/drive/v3',
21
+ * scopes: { 'https://www.googleapis.com/auth/drive.readonly': 'Read the user’s files' },
22
+ * operations: [
23
+ * { operationId: 'files.list', path: '/files', summary: 'Search the user’s files',
24
+ * parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }] },
25
+ * ],
26
+ * })
27
+ *
28
+ * mcp({ userConnections: [{ name: 'drive', spec: drive.spec, baseUrl: drive.baseUrl, ... }] })
29
+ * ```
30
+ *
31
+ * The checks below all catch mistakes that are invisible until a user clicks a
32
+ * connect link, which is the worst place to find them.
33
+ */
34
+ export type OpenApiMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';
35
+ export type OpenApiParameter = {
36
+ readonly name: string;
37
+ readonly in: 'path' | 'query' | 'header';
38
+ readonly required?: boolean;
39
+ readonly description?: string;
40
+ readonly schema?: unknown;
41
+ };
42
+ /** A parameter declared once in `parameters` and referenced by name. */
43
+ export type OpenApiParameterRef = {
44
+ readonly ref: string;
45
+ };
46
+ export type OpenApiOperation = {
47
+ /**
48
+ * The name the model calls the operation by, and the name a health check
49
+ * names (e.g. `users.messages.send`). Dotted provider-style names keep the
50
+ * generated tools recognizable to a model that knows the real API.
51
+ */
52
+ readonly operationId: string;
53
+ /** Defaults to `get`. */
54
+ readonly method?: OpenApiMethod;
55
+ /** Server-relative, with `{braces}` around path parameters. */
56
+ readonly path: string;
57
+ readonly summary?: string;
58
+ /**
59
+ * Worth writing whenever the provider does something the schema cannot say
60
+ * — an encoding, a 404 that is not an error, a field that must be echoed
61
+ * back. This is the only documentation the model gets.
62
+ */
63
+ readonly description?: string;
64
+ readonly parameters?: ReadonlyArray<OpenApiParameter | OpenApiParameterRef>;
65
+ readonly requestBody?: {
66
+ readonly required?: boolean;
67
+ readonly description?: string;
68
+ readonly schema: unknown;
69
+ };
70
+ readonly response?: {
71
+ /** Success status. Defaults to `200`; a delete usually answers `204`. */
72
+ readonly status?: string;
73
+ readonly description?: string;
74
+ /** Omit for a status that has no body. */
75
+ readonly schema?: unknown;
76
+ };
77
+ };
78
+ export type OAuthOpenApiSpecInput = {
79
+ readonly title: string;
80
+ readonly description?: string;
81
+ /** Document version, not the provider's API version. Defaults to `1.0`. */
82
+ readonly version?: string;
83
+ /** Absolute base every path is relative to, without a trailing slash. */
84
+ readonly baseUrl: string;
85
+ /** Security scheme name, e.g. `googleOAuth`. */
86
+ readonly schemeName: string;
87
+ readonly authorizationUrl: string;
88
+ readonly tokenUrl: string;
89
+ /**
90
+ * Scope -> what it is for. Every one of these lands on the consent screen,
91
+ * so the map is the review surface: if a scope has no operation here that
92
+ * needs it, drop it.
93
+ */
94
+ readonly scopes: Readonly<Record<string, string>>;
95
+ /** Shared `#/components/schemas` entries the operations `$ref`. */
96
+ readonly schemas?: Readonly<Record<string, unknown>>;
97
+ /** Shared `#/components/parameters` entries, referenced by `{ ref: name }`. */
98
+ readonly parameters?: Readonly<Record<string, OpenApiParameter>>;
99
+ readonly operations: ReadonlyArray<OpenApiOperation>;
100
+ };
101
+ export type OAuthOpenApiSpec = {
102
+ /** Serialized document, ready for a user connection's `spec`. */
103
+ readonly spec: string;
104
+ /** Matches the connection's `baseUrl` — the daemon calls operations there. */
105
+ readonly baseUrl: string;
106
+ /** Declared scopes, in order: what the client's consent screen must allow. */
107
+ readonly scopes: ReadonlyArray<string>;
108
+ /** Declared operation ids: what a `healthCheck.operation` may name. */
109
+ readonly operations: ReadonlyArray<string>;
110
+ };
111
+ export declare class OpenApiSpecError extends Error {
112
+ readonly name = "OpenApiSpecError";
113
+ }
114
+ /**
115
+ * An OpenAPI document with a single OAuth2 authorization-code scheme required
116
+ * for every operation.
117
+ *
118
+ * @throws OpenApiSpecError when the document would be accepted and then
119
+ * misbehave: no scopes (the daemon finds no OAuth scheme and the connection
120
+ * silently becomes unauthenticated), a duplicate operation id (one operation
121
+ * shadows the other), a path parameter nothing declares (the daemon sends
122
+ * `{braces}` to the provider), or a method reused on one path.
123
+ */
124
+ export declare function oauthOpenApiSpec(input: OAuthOpenApiSpecInput): OAuthOpenApiSpec;
125
+ export declare const GOOGLE_AUTHORIZATION_URL = "https://accounts.google.com/o/oauth2/v2/auth";
126
+ export declare const GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
127
+ /**
128
+ * `oauthOpenApiSpec` with Google's endpoints and a `googleOAuth` scheme.
129
+ *
130
+ * Two Google-specific refusals, both of which otherwise surface as a dead
131
+ * consent screen or a scope no one meant to ask for:
132
+ * - `offline_access` is not a Google scope (Microsoft's is). A refresh token
133
+ * comes from `access_type=offline&prompt=consent`, which the daemon appends
134
+ * to the authorize URL itself.
135
+ * - whole-service scopes, which cost months of verification and ask a user
136
+ * over SMS for their entire mailbox or calendar. Pass `allowBroadScopes`
137
+ * when a connection genuinely needs one.
138
+ */
139
+ export declare function googleOpenApiSpec(input: Omit<OAuthOpenApiSpecInput, 'schemeName' | 'authorizationUrl' | 'tokenUrl'> & {
140
+ readonly allowBroadScopes?: boolean;
141
+ }): OAuthOpenApiSpec;
142
+ export declare const MICROSOFT_AUTHORIZATION_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
143
+ export declare const MICROSOFT_TOKEN_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
144
+ /**
145
+ * `oauthOpenApiSpec` with Microsoft identity-platform endpoints and a
146
+ * `microsoftOAuth` scheme. `offline_access` is added when absent: unlike
147
+ * Google, Microsoft only issues a refresh token when that scope is requested,
148
+ * and a connection without one dies at the first token expiry.
149
+ */
150
+ export declare function microsoftOpenApiSpec(input: Omit<OAuthOpenApiSpecInput, 'schemeName' | 'authorizationUrl' | 'tokenUrl'>): OAuthOpenApiSpec;
151
+ //# sourceMappingURL=OpenApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApi.d.ts","sourceRoot":"","sources":["../src/OpenApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Builders for the compact OpenAPI documents a user connection registers with
3
+ * the Executor daemon.
4
+ *
5
+ * Why write a document at all, when every provider publishes one: the daemon
6
+ * derives the OAuth authorization request from the document's security scheme,
7
+ * so a published description is also a scope request. Google's Gmail
8
+ * description declares fourteen scopes headed by `https://mail.google.com/` —
9
+ * full mailbox read, send, delete and settings — which is the hardest thing to
10
+ * get through verification (restricted scope, brand review, annual CASA
11
+ * assessment) and what the consent screen would ask a stranger for over SMS.
12
+ * A connection that reads unread mail and sends replies needs two scopes.
13
+ *
14
+ * So the deal is: name the scopes you want and the operations you drive, and
15
+ * this returns the document declaring exactly that.
16
+ *
17
+ * ```ts
18
+ * const drive = googleOpenApiSpec({
19
+ * title: 'Google Drive',
20
+ * baseUrl: 'https://www.googleapis.com/drive/v3',
21
+ * scopes: { 'https://www.googleapis.com/auth/drive.readonly': 'Read the user’s files' },
22
+ * operations: [
23
+ * { operationId: 'files.list', path: '/files', summary: 'Search the user’s files',
24
+ * parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }] },
25
+ * ],
26
+ * })
27
+ *
28
+ * mcp({ userConnections: [{ name: 'drive', spec: drive.spec, baseUrl: drive.baseUrl, ... }] })
29
+ * ```
30
+ *
31
+ * The checks below all catch mistakes that are invisible until a user clicks a
32
+ * connect link, which is the worst place to find them.
33
+ */
34
+ export class OpenApiSpecError extends Error {
35
+ name = 'OpenApiSpecError';
36
+ }
37
+ const PATH_PARAM = /\{([^}]+)\}/g;
38
+ function pathParameterNames(path) {
39
+ return [...path.matchAll(PATH_PARAM)].map((m) => m[1]);
40
+ }
41
+ /**
42
+ * An OpenAPI document with a single OAuth2 authorization-code scheme required
43
+ * for every operation.
44
+ *
45
+ * @throws OpenApiSpecError when the document would be accepted and then
46
+ * misbehave: no scopes (the daemon finds no OAuth scheme and the connection
47
+ * silently becomes unauthenticated), a duplicate operation id (one operation
48
+ * shadows the other), a path parameter nothing declares (the daemon sends
49
+ * `{braces}` to the provider), or a method reused on one path.
50
+ */
51
+ export function oauthOpenApiSpec(input) {
52
+ const scopes = Object.keys(input.scopes);
53
+ if (scopes.length === 0) {
54
+ throw new OpenApiSpecError(`"${input.title}" declares no OAuth scopes: the daemon would find no security scheme `
55
+ + 'and authorize nothing.');
56
+ }
57
+ if (input.operations.length === 0) {
58
+ throw new OpenApiSpecError(`"${input.title}" declares no operations.`);
59
+ }
60
+ if (input.baseUrl.endsWith('/')) {
61
+ throw new OpenApiSpecError(`baseUrl "${input.baseUrl}" ends in a slash, which doubles up with every path.`);
62
+ }
63
+ const shared = input.parameters ?? {};
64
+ const paths = {};
65
+ const seenOperations = new Set();
66
+ for (const op of input.operations) {
67
+ if (seenOperations.has(op.operationId)) {
68
+ throw new OpenApiSpecError(`Duplicate operationId "${op.operationId}".`);
69
+ }
70
+ seenOperations.add(op.operationId);
71
+ if (!op.path.startsWith('/')) {
72
+ throw new OpenApiSpecError(`Path "${op.path}" of "${op.operationId}" has to be server-relative and start with "/".`);
73
+ }
74
+ const parameters = (op.parameters ?? []).map((p) => {
75
+ if (!('ref' in p))
76
+ return p;
77
+ if (!(p.ref in shared)) {
78
+ throw new OpenApiSpecError(`"${op.operationId}" references parameter "${p.ref}", which is not declared.`);
79
+ }
80
+ return { $ref: `#/components/parameters/${p.ref}` };
81
+ });
82
+ // Resolved names, so a `{userId}` answered by a shared parameter counts.
83
+ const declared = new Set((op.parameters ?? []).map((p) => ('ref' in p ? shared[p.ref].name : p.name)));
84
+ for (const name of pathParameterNames(op.path)) {
85
+ if (!declared.has(name)) {
86
+ throw new OpenApiSpecError(`"${op.operationId}" has a path parameter "{${name}}" that no parameter declares, `
87
+ + 'so the daemon would send the braces to the provider verbatim.');
88
+ }
89
+ }
90
+ const method = op.method ?? 'get';
91
+ const entry = (paths[op.path] ??= {});
92
+ if (method in entry) {
93
+ throw new OpenApiSpecError(`"${op.path}" declares ${method.toUpperCase()} twice.`);
94
+ }
95
+ entry[method] = {
96
+ operationId: op.operationId,
97
+ ...(op.summary ? { summary: op.summary } : {}),
98
+ ...(op.description ? { description: op.description } : {}),
99
+ ...(parameters.length > 0 ? { parameters } : {}),
100
+ ...(op.requestBody
101
+ ? {
102
+ requestBody: {
103
+ required: op.requestBody.required ?? true,
104
+ ...(op.requestBody.description ? { description: op.requestBody.description } : {}),
105
+ content: { 'application/json': { schema: op.requestBody.schema } },
106
+ },
107
+ }
108
+ : {}),
109
+ responses: {
110
+ [op.response?.status ?? '200']: {
111
+ description: op.response?.description ?? 'Success.',
112
+ ...(op.response?.schema
113
+ ? { content: { 'application/json': { schema: op.response.schema } } }
114
+ : {}),
115
+ },
116
+ },
117
+ };
118
+ }
119
+ const spec = {
120
+ openapi: '3.0.3',
121
+ info: {
122
+ title: input.title,
123
+ ...(input.description ? { description: input.description } : {}),
124
+ version: input.version ?? '1.0',
125
+ },
126
+ servers: [{ url: input.baseUrl }],
127
+ security: [{ [input.schemeName]: scopes }],
128
+ components: {
129
+ securitySchemes: {
130
+ [input.schemeName]: {
131
+ type: 'oauth2',
132
+ flows: {
133
+ authorizationCode: {
134
+ authorizationUrl: input.authorizationUrl,
135
+ tokenUrl: input.tokenUrl,
136
+ scopes: input.scopes,
137
+ },
138
+ },
139
+ },
140
+ },
141
+ ...(Object.keys(shared).length > 0 ? { parameters: shared } : {}),
142
+ ...(input.schemas && Object.keys(input.schemas).length > 0
143
+ ? { schemas: input.schemas }
144
+ : {}),
145
+ },
146
+ paths,
147
+ };
148
+ return {
149
+ spec: JSON.stringify(spec),
150
+ baseUrl: input.baseUrl,
151
+ scopes,
152
+ operations: [...seenOperations],
153
+ };
154
+ }
155
+ export const GOOGLE_AUTHORIZATION_URL = 'https://accounts.google.com/o/oauth2/v2/auth';
156
+ export const GOOGLE_TOKEN_URL = 'https://oauth2.googleapis.com/token';
157
+ /**
158
+ * Scopes that cover a whole Google service rather than a use of it. Each is a
159
+ * restricted or sensitive scope whose consent screen reads like handing over
160
+ * the account, and each has a narrow sibling that does the actual job
161
+ * (`gmail.readonly` + `gmail.send`, `calendar.events`, `drive.file`).
162
+ */
163
+ const GOOGLE_WHOLE_ACCOUNT_SCOPES = new Set([
164
+ 'https://mail.google.com/',
165
+ 'https://www.googleapis.com/auth/gmail.modify',
166
+ 'https://www.googleapis.com/auth/calendar',
167
+ 'https://www.googleapis.com/auth/drive',
168
+ 'https://www.googleapis.com/auth/contacts',
169
+ 'https://www.googleapis.com/auth/cloud-platform',
170
+ ]);
171
+ /**
172
+ * `oauthOpenApiSpec` with Google's endpoints and a `googleOAuth` scheme.
173
+ *
174
+ * Two Google-specific refusals, both of which otherwise surface as a dead
175
+ * consent screen or a scope no one meant to ask for:
176
+ * - `offline_access` is not a Google scope (Microsoft's is). A refresh token
177
+ * comes from `access_type=offline&prompt=consent`, which the daemon appends
178
+ * to the authorize URL itself.
179
+ * - whole-service scopes, which cost months of verification and ask a user
180
+ * over SMS for their entire mailbox or calendar. Pass `allowBroadScopes`
181
+ * when a connection genuinely needs one.
182
+ */
183
+ export function googleOpenApiSpec(input) {
184
+ for (const scope of Object.keys(input.scopes)) {
185
+ if (scope === 'offline_access') {
186
+ throw new OpenApiSpecError('Google rejects "offline_access" as a scope; refresh tokens come from '
187
+ + 'access_type=offline, which the daemon requests for you.');
188
+ }
189
+ if (!input.allowBroadScopes && GOOGLE_WHOLE_ACCOUNT_SCOPES.has(scope)) {
190
+ throw new OpenApiSpecError(`"${scope}" covers the whole service. Declare the narrow scopes the operations need `
191
+ + '(e.g. gmail.readonly + gmail.send instead of https://mail.google.com/), or pass '
192
+ + 'allowBroadScopes when the connection really does need it.');
193
+ }
194
+ }
195
+ return oauthOpenApiSpec({
196
+ ...input,
197
+ schemeName: 'googleOAuth',
198
+ authorizationUrl: GOOGLE_AUTHORIZATION_URL,
199
+ tokenUrl: GOOGLE_TOKEN_URL,
200
+ });
201
+ }
202
+ export const MICROSOFT_AUTHORIZATION_URL = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';
203
+ export const MICROSOFT_TOKEN_URL = 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
204
+ /**
205
+ * `oauthOpenApiSpec` with Microsoft identity-platform endpoints and a
206
+ * `microsoftOAuth` scheme. `offline_access` is added when absent: unlike
207
+ * Google, Microsoft only issues a refresh token when that scope is requested,
208
+ * and a connection without one dies at the first token expiry.
209
+ */
210
+ export function microsoftOpenApiSpec(input) {
211
+ const scopes = 'offline_access' in input.scopes
212
+ ? input.scopes
213
+ : { offline_access: 'Keep access when the user is away (refresh token)', ...input.scopes };
214
+ return oauthOpenApiSpec({
215
+ ...input,
216
+ scopes,
217
+ schemeName: 'microsoftOAuth',
218
+ authorizationUrl: MICROSOFT_AUTHORIZATION_URL,
219
+ tokenUrl: MICROSOFT_TOKEN_URL,
220
+ });
221
+ }
222
+ //# sourceMappingURL=OpenApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApi.js","sourceRoot":"","sources":["../src/OpenApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ import type { Effect, Layer } from 'effect';
2
+ import type { AlertDefinition } from './Alert.js';
3
+ import type { ToolDefinition } from './Tool.js';
4
+ import type { AgentConfig, AgentKitConfig } from './types/config.js';
5
+ import type { PluginMigration } from './services/PluginDb.js';
6
+ export type TurnEvent = {
7
+ readonly phone: string;
8
+ readonly messages: ReadonlyArray<{
9
+ content: string;
10
+ direction: 'inbound' | 'outbound';
11
+ }>;
12
+ readonly context: Record<string, unknown>;
13
+ };
14
+ export type TurnResult = {
15
+ readonly phone: string;
16
+ readonly response: string;
17
+ readonly toolCalls: ReadonlyArray<{
18
+ name: string;
19
+ input: unknown;
20
+ output: unknown;
21
+ }>;
22
+ readonly tokensUsed: {
23
+ in: number;
24
+ out: number;
25
+ };
26
+ readonly durationMs: number;
27
+ };
28
+ export type ToolCallEvent = {
29
+ readonly phone: string;
30
+ readonly toolName: string;
31
+ readonly input: unknown;
32
+ };
33
+ export type ToolCallResult = {
34
+ readonly phone: string;
35
+ readonly toolName: string;
36
+ readonly input: unknown;
37
+ readonly output: unknown;
38
+ readonly durationMs: number;
39
+ readonly error?: string;
40
+ };
41
+ export type RouteContext = {
42
+ readonly config: AgentKitConfig;
43
+ readonly request: Request;
44
+ };
45
+ export type PluginContext = {
46
+ readonly config: AgentKitConfig;
47
+ readonly agentConfig: AgentConfig;
48
+ };
49
+ export type SyncPayload = {
50
+ readonly name: string;
51
+ readonly model: string;
52
+ readonly tools: ReadonlyArray<{
53
+ name: string;
54
+ description: string;
55
+ inputSchema: unknown;
56
+ }>;
57
+ readonly features: Record<string, boolean>;
58
+ readonly extra: Record<string, unknown>;
59
+ };
60
+ /**
61
+ * A plugin extends AgentKit with tools, hooks, routes, and layers.
62
+ *
63
+ * Modeled after Better Auth's plugin system — composable, isolated,
64
+ * and declarative. Each plugin owns its own config and contributes
65
+ * capabilities to the runtime without touching the core agent config.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * import { definePlugin } from '@onkeiki/agents'
70
+ *
71
+ * export const rateLimiter = (opts: { maxTurnsPerMinute: number }) =>
72
+ * definePlugin({
73
+ * id: 'rate-limiter',
74
+ * hooks: {
75
+ * beforeTurn: (turn) =>
76
+ * Effect.gen(function* () {
77
+ * // check rate, throw if exceeded
78
+ * return turn
79
+ * }),
80
+ * },
81
+ * })
82
+ * ```
83
+ */
84
+ export type AgentKitPlugin = {
85
+ /** Unique plugin identifier. */
86
+ readonly id: string;
87
+ /**
88
+ * Called once at boot. May return partial config overrides
89
+ * that are merged into the agent config (e.g. inject default tools).
90
+ * Similar to Better Auth's `init`.
91
+ */
92
+ readonly init?: (ctx: PluginContext) => PluginInitResult | void;
93
+ /**
94
+ * Tools this plugin contributes to the agent.
95
+ */
96
+ readonly tools?: ReadonlyArray<ToolDefinition<any, any>>;
97
+ /**
98
+ * Alert definitions this plugin contributes, registered with the platform
99
+ * alongside the agent's own `alerts` at `kit.sync()`. Additive — never
100
+ * overridden by the agent config.
101
+ */
102
+ readonly alerts?: ReadonlyArray<AlertDefinition>;
103
+ /**
104
+ * HTTP routes this plugin serves (e.g. webhooks, alert execution).
105
+ * Keys are pathnames like "/alerts/execute".
106
+ * Similar to Better Auth's `endpoints`.
107
+ */
108
+ readonly routes?: Readonly<Record<string, (req: Request, ctx: RouteContext) => Promise<Response>>>;
109
+ /**
110
+ * Lifecycle hooks around turns and tool calls.
111
+ * Similar to Better Auth's `hooks.before` / `hooks.after`.
112
+ */
113
+ readonly hooks?: {
114
+ readonly beforeTurn?: (turn: TurnEvent) => Effect.Effect<TurnEvent>;
115
+ readonly afterTurn?: (result: TurnResult) => Effect.Effect<void>;
116
+ readonly beforeToolCall?: (call: ToolCallEvent) => Effect.Effect<ToolCallEvent>;
117
+ readonly afterToolCall?: (result: ToolCallResult) => Effect.Effect<ToolCallResult>;
118
+ };
119
+ /**
120
+ * Global request interceptor. Return a Response to short-circuit,
121
+ * a modified Request to rewrite, or void to pass through.
122
+ * Similar to Better Auth's `onRequest`.
123
+ */
124
+ readonly onRequest?: (req: Request) => Effect.Effect<Request | Response | void>;
125
+ /**
126
+ * Global response interceptor.
127
+ * Similar to Better Auth's `onResponse`.
128
+ */
129
+ readonly onResponse?: (res: Response) => Effect.Effect<Response>;
130
+ /**
131
+ * Additional Effect layers to provide to the runtime.
132
+ */
133
+ readonly layers?: ReadonlyArray<Layer.Layer<any>>;
134
+ /**
135
+ * Hook into the platform sync. Receives the current payload
136
+ * and returns a modified version. Used by plugins that need
137
+ * to push their own state (alerts, secrets, schemas, etc.)
138
+ *
139
+ * `name`, `model`, `features`, and `extra` from the returned payload are
140
+ * sent to the platform. The `tools` list is read-only context — the sync
141
+ * request always carries the fully-bundled tool definitions.
142
+ */
143
+ readonly onSync?: (payload: SyncPayload) => SyncPayload;
144
+ /**
145
+ * Middleware that runs on every request before route matching.
146
+ * Return void to pass through, or a Response to short-circuit.
147
+ */
148
+ readonly middleware?: ReadonlyArray<{
149
+ readonly path: string;
150
+ readonly handler: (req: Request, ctx: RouteContext) => Effect.Effect<Response | void>;
151
+ }>;
152
+ /**
153
+ * Database migrations owned by this plugin. Declared statically so they
154
+ * can be collected before storage initialization. Run once by the storage
155
+ * adapter at boot, tracked in `smskit_plugin_migrations`. Tables are
156
+ * NEVER dropped when the plugin is disabled — data is preserved.
157
+ */
158
+ readonly migrations?: ReadonlyArray<PluginMigration>;
159
+ };
160
+ export type PluginInitResult = {
161
+ readonly config?: Partial<AgentConfig>;
162
+ readonly extra?: Record<string, unknown>;
163
+ };
164
+ /**
165
+ * @deprecated Use `AgentKitPlugin` instead. This type is kept for backwards
166
+ * compatibility and will be removed in a future release.
167
+ */
168
+ export type Plugin = {
169
+ readonly name: string;
170
+ readonly tools?: ReadonlyArray<ToolDefinition<any, any>>;
171
+ readonly onTurn?: (turn: TurnEvent) => Effect.Effect<TurnEvent>;
172
+ readonly afterTurn?: (result: TurnResult) => Effect.Effect<void>;
173
+ readonly layers?: ReadonlyArray<Layer.Layer<any>>;
174
+ };
175
+ /**
176
+ * Define a type-safe AgentKit plugin.
177
+ */
178
+ export declare function definePlugin(plugin: AgentKitPlugin): AgentKitPlugin;
179
+ /**
180
+ * @deprecated Use {@link AgentKitPlugin} instead. Kept for backwards compatibility.
181
+ */
182
+ export type SmsKitPlugin = AgentKitPlugin;
183
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":"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"}
package/dist/Plugin.js ADDED
@@ -0,0 +1,10 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Helpers
3
+ // ---------------------------------------------------------------------------
4
+ /**
5
+ * Define a type-safe AgentKit plugin.
6
+ */
7
+ export function definePlugin(plugin) {
8
+ return plugin;
9
+ }
10
+ //# sourceMappingURL=Plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../src/Plugin.ts"],"names":[],"mappings":"AAkMA,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,OAAO,MAAM,CAAA;AACf,CAAC"}