@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.
- package/dist/Alert.d.ts +56 -0
- package/dist/Alert.d.ts.map +1 -0
- package/dist/Alert.js +8 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Entity.d.ts +158 -0
- package/dist/Entity.d.ts.map +1 -0
- package/dist/Entity.js +289 -0
- package/dist/Entity.js.map +1 -0
- package/dist/Kit.d.ts +138 -0
- package/dist/Kit.d.ts.map +1 -0
- package/dist/Kit.js +517 -0
- package/dist/Kit.js.map +1 -0
- package/dist/OpenApi.d.ts +151 -0
- package/dist/OpenApi.d.ts.map +1 -0
- package/dist/OpenApi.js +222 -0
- package/dist/OpenApi.js.map +1 -0
- package/dist/Plugin.d.ts +183 -0
- package/dist/Plugin.d.ts.map +1 -0
- package/dist/Plugin.js +10 -0
- package/dist/Plugin.js.map +1 -0
- package/dist/Server.d.ts +71 -0
- package/dist/Server.d.ts.map +1 -0
- package/dist/Server.js +476 -0
- package/dist/Server.js.map +1 -0
- package/dist/Tool.d.ts +86 -0
- package/dist/Tool.d.ts.map +1 -0
- package/dist/Tool.js +27 -0
- package/dist/Tool.js.map +1 -0
- package/dist/bundle.d.ts +17 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +101 -0
- package/dist/bundle.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/services/Blackboard.d.ts +18 -0
- package/dist/services/Blackboard.d.ts.map +1 -0
- package/dist/services/Blackboard.js +4 -0
- package/dist/services/Blackboard.js.map +1 -0
- package/dist/services/Observability.d.ts +102 -0
- package/dist/services/Observability.d.ts.map +1 -0
- package/dist/services/Observability.js +238 -0
- package/dist/services/Observability.js.map +1 -0
- package/dist/services/Platform.d.ts +112 -0
- package/dist/services/Platform.d.ts.map +1 -0
- package/dist/services/Platform.js +13 -0
- package/dist/services/Platform.js.map +1 -0
- package/dist/services/PluginDb.d.ts +44 -0
- package/dist/services/PluginDb.d.ts.map +1 -0
- package/dist/services/PluginDb.js +5 -0
- package/dist/services/PluginDb.js.map +1 -0
- package/dist/services/Sandbox.d.ts +68 -0
- package/dist/services/Sandbox.d.ts.map +1 -0
- package/dist/services/Sandbox.js +4 -0
- package/dist/services/Sandbox.js.map +1 -0
- package/dist/services/Steering.d.ts +46 -0
- package/dist/services/Steering.d.ts.map +1 -0
- package/dist/services/Steering.js +4 -0
- package/dist/services/Steering.js.map +1 -0
- package/dist/services/Storage.d.ts +63 -0
- package/dist/services/Storage.d.ts.map +1 -0
- package/dist/services/Storage.js +13 -0
- package/dist/services/Storage.js.map +1 -0
- package/dist/services/Transport.d.ts +19 -0
- package/dist/services/Transport.d.ts.map +1 -0
- package/dist/services/Transport.js +4 -0
- package/dist/services/Transport.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +9 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/config.d.ts +526 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/message.d.ts +54 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +47 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/user.d.ts +16 -0
- package/dist/types/user.d.ts.map +1 -0
- package/dist/types/user.js +14 -0
- package/dist/types/user.js.map +1 -0
- package/package.json +39 -0
- package/src/Alert.ts +51 -0
- package/src/Entity.ts +543 -0
- package/src/Kit.ts +705 -0
- package/src/OpenApi.ts +343 -0
- package/src/Plugin.ts +209 -0
- package/src/Server.ts +618 -0
- package/src/Tool.ts +110 -0
- package/src/bundle.ts +114 -0
- package/src/index.ts +209 -0
- package/src/services/Blackboard.ts +19 -0
- package/src/services/Observability.ts +320 -0
- package/src/services/Platform.ts +125 -0
- package/src/services/PluginDb.ts +48 -0
- package/src/services/Sandbox.ts +74 -0
- package/src/services/Steering.ts +45 -0
- package/src/services/Storage.ts +76 -0
- package/src/services/Transport.ts +21 -0
- package/src/services/index.ts +8 -0
- package/src/types/config.ts +531 -0
- package/src/types/index.ts +3 -0
- package/src/types/message.ts +60 -0
- package/src/types/user.ts +17 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const Direction = Schema.Literal('inbound', 'outbound');
|
|
3
|
+
export const InboundMessage = Schema.Struct({
|
|
4
|
+
phone: Schema.String,
|
|
5
|
+
chatId: Schema.String,
|
|
6
|
+
messageId: Schema.String,
|
|
7
|
+
text: Schema.String,
|
|
8
|
+
mediaUrl: Schema.optional(Schema.String),
|
|
9
|
+
mediaMimeType: Schema.optional(Schema.String),
|
|
10
|
+
timestamp: Schema.Date,
|
|
11
|
+
});
|
|
12
|
+
export const OutboundMessage = Schema.Struct({
|
|
13
|
+
phone: Schema.String,
|
|
14
|
+
chatId: Schema.String,
|
|
15
|
+
text: Schema.String,
|
|
16
|
+
mediaUrl: Schema.optional(Schema.String),
|
|
17
|
+
externalMessageId: Schema.optional(Schema.String),
|
|
18
|
+
});
|
|
19
|
+
export const StoredMessage = Schema.Struct({
|
|
20
|
+
id: Schema.String,
|
|
21
|
+
phone: Schema.String,
|
|
22
|
+
chatId: Schema.String,
|
|
23
|
+
direction: Direction,
|
|
24
|
+
content: Schema.String,
|
|
25
|
+
mediaUrl: Schema.optional(Schema.String),
|
|
26
|
+
mediaMimeType: Schema.optional(Schema.String),
|
|
27
|
+
externalMessageId: Schema.optional(Schema.String),
|
|
28
|
+
createdAt: Schema.Date,
|
|
29
|
+
});
|
|
30
|
+
export const MediaPayload = Schema.Struct({
|
|
31
|
+
url: Schema.optional(Schema.String),
|
|
32
|
+
base64: Schema.optional(Schema.String),
|
|
33
|
+
mimeType: Schema.String,
|
|
34
|
+
filename: Schema.optional(Schema.String),
|
|
35
|
+
});
|
|
36
|
+
export const SendResult = Schema.Struct({
|
|
37
|
+
chatId: Schema.String,
|
|
38
|
+
messageId: Schema.String,
|
|
39
|
+
});
|
|
40
|
+
export const DeliveryStatus = Schema.Struct({
|
|
41
|
+
messageId: Schema.String,
|
|
42
|
+
phone: Schema.String,
|
|
43
|
+
state: Schema.Literal('delivered', 'failed', 'pending'),
|
|
44
|
+
error: Schema.optional(Schema.String),
|
|
45
|
+
timestamp: Schema.Date,
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;AAG9D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC,IAAI;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CAClD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7C,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC,IAAI;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;CACzC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC,IAAI;CACvB,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export declare const UserProfile: Schema.Struct<{
|
|
3
|
+
phone: typeof Schema.String;
|
|
4
|
+
timezone: Schema.NullOr<typeof Schema.String>;
|
|
5
|
+
currency: Schema.NullOr<typeof Schema.String>;
|
|
6
|
+
metadata: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
|
|
7
|
+
firstSeenAt: typeof Schema.Date;
|
|
8
|
+
}>;
|
|
9
|
+
export type UserProfile = typeof UserProfile.Type;
|
|
10
|
+
export declare const Subscriber: Schema.Struct<{
|
|
11
|
+
phone: typeof Schema.String;
|
|
12
|
+
chatId: typeof Schema.String;
|
|
13
|
+
preferences: Schema.Record$<typeof Schema.String, typeof Schema.Unknown>;
|
|
14
|
+
}>;
|
|
15
|
+
export type Subscriber = typeof Subscriber.Type;
|
|
16
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,WAAW;;;;;;EAMtB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AAEjD,eAAO,MAAM,UAAU;;;;EAIrB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Schema } from 'effect';
|
|
2
|
+
export const UserProfile = Schema.Struct({
|
|
3
|
+
phone: Schema.String,
|
|
4
|
+
timezone: Schema.NullOr(Schema.String),
|
|
5
|
+
currency: Schema.NullOr(Schema.String),
|
|
6
|
+
metadata: Schema.Record({ key: Schema.String, value: Schema.Unknown }),
|
|
7
|
+
firstSeenAt: Schema.Date,
|
|
8
|
+
});
|
|
9
|
+
export const Subscriber = Schema.Struct({
|
|
10
|
+
phone: Schema.String,
|
|
11
|
+
chatId: Schema.String,
|
|
12
|
+
preferences: Schema.Record({ key: Schema.String, value: Schema.Unknown }),
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACtE,WAAW,EAAE,MAAM,CAAC,IAAI;CACzB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;CAC1E,CAAC,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@onkeiki/agents",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Keiki agent SDK: define, configure and sync cloud agents and capabilities",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/Mail-0/sms-kit.git",
|
|
10
|
+
"directory": "packages/core"
|
|
11
|
+
},
|
|
12
|
+
"files": ["dist", "src", "!**/*.test.*", "!src/**/__tests__"],
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"bun": "./src/index.ts",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"check-types": "tsc --noEmit",
|
|
26
|
+
"lint": "oxlint src",
|
|
27
|
+
"test": "bun test",
|
|
28
|
+
"clean": "rm -rf dist",
|
|
29
|
+
"prepublishOnly": "rm -rf dist && tsc"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"effect": "^3.14.0",
|
|
33
|
+
"@effect/platform": "^0.75.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/bun": "^1.4.1",
|
|
37
|
+
"typescript": "^7.0.2"
|
|
38
|
+
}
|
|
39
|
+
}
|
package/src/Alert.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Effect } from 'effect'
|
|
2
|
+
|
|
3
|
+
export type AlertSchedule =
|
|
4
|
+
| { readonly type: 'cron'; readonly expression: string; readonly timezone?: string }
|
|
5
|
+
| { readonly type: 'interval'; readonly every: string }
|
|
6
|
+
| { readonly type: 'webhook'; readonly path: string }
|
|
7
|
+
|
|
8
|
+
export type AlertMedia = { readonly url: string; readonly mimeType: string }
|
|
9
|
+
|
|
10
|
+
/** One outbound message of a multi-message alert. */
|
|
11
|
+
export type AlertMessage = {
|
|
12
|
+
readonly text: string
|
|
13
|
+
readonly media?: ReadonlyArray<AlertMedia>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export type AlertContent = {
|
|
17
|
+
readonly text: string
|
|
18
|
+
readonly media?: AlertMedia
|
|
19
|
+
/** Additional messages delivered after the first, in order. */
|
|
20
|
+
readonly messages?: ReadonlyArray<AlertMessage>
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Durable per-(alert, subscriber) KV state, persisted across runs. */
|
|
24
|
+
export interface AlertStateService {
|
|
25
|
+
readonly get: (key: string) => Effect.Effect<unknown>
|
|
26
|
+
readonly set: (key: string, value: unknown) => Effect.Effect<void>
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type AlertContext = {
|
|
30
|
+
readonly subscriber: { phone: string; chatId: string; preferences: Record<string, unknown> }
|
|
31
|
+
readonly now: Date
|
|
32
|
+
/** Developer secrets synced to the platform, resolved for this run. */
|
|
33
|
+
readonly secrets: Readonly<Record<string, string>>
|
|
34
|
+
readonly state: AlertStateService
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type AlertDefinition = {
|
|
38
|
+
readonly name: string
|
|
39
|
+
readonly description: string
|
|
40
|
+
readonly schedule: AlertSchedule
|
|
41
|
+
readonly dedupKey?: (ctx: AlertContext) => string
|
|
42
|
+
readonly shouldSend?: (ctx: AlertContext) => Effect.Effect<boolean>
|
|
43
|
+
readonly generate: (ctx: AlertContext) => Effect.Effect<AlertContent | null>
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Define a scheduled or triggered alert.
|
|
48
|
+
*/
|
|
49
|
+
export function defineAlert(def: AlertDefinition): AlertDefinition {
|
|
50
|
+
return def
|
|
51
|
+
}
|