@mochabug/adapt-sdk 0.1.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.
Files changed (99) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +873 -0
  3. package/dist/api.d.ts +1605 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.spec.d.ts +2 -0
  6. package/dist/api.spec.d.ts.map +1 -0
  7. package/dist/cjs/api.cjs +2 -0
  8. package/dist/cjs/api.cjs.map +7 -0
  9. package/dist/cjs/frontend.cjs +2 -0
  10. package/dist/cjs/frontend.cjs.map +7 -0
  11. package/dist/cjs/mime.cjs +2 -0
  12. package/dist/cjs/mime.cjs.map +7 -0
  13. package/dist/cjs/router.cjs +2 -0
  14. package/dist/cjs/router.cjs.map +7 -0
  15. package/dist/cjs/types.cjs +2 -0
  16. package/dist/cjs/types.cjs.map +7 -0
  17. package/dist/esm/api.mjs +2 -0
  18. package/dist/esm/api.mjs.map +7 -0
  19. package/dist/esm/frontend.mjs +2 -0
  20. package/dist/esm/frontend.mjs.map +7 -0
  21. package/dist/esm/mime.mjs +2 -0
  22. package/dist/esm/mime.mjs.map +7 -0
  23. package/dist/esm/router.mjs +2 -0
  24. package/dist/esm/router.mjs.map +7 -0
  25. package/dist/esm/types.mjs +1 -0
  26. package/dist/esm/types.mjs.map +7 -0
  27. package/dist/frontend.d.ts +10 -0
  28. package/dist/frontend.d.ts.map +1 -0
  29. package/dist/genproto/buf/validate/validate_pb.d.ts +8491 -0
  30. package/dist/genproto/buf/validate/validate_pb.d.ts.map +1 -0
  31. package/dist/genproto/google/api/annotations_pb.d.ts +14 -0
  32. package/dist/genproto/google/api/annotations_pb.d.ts.map +1 -0
  33. package/dist/genproto/google/api/client_pb.d.ts +1432 -0
  34. package/dist/genproto/google/api/client_pb.d.ts.map +1 -0
  35. package/dist/genproto/google/api/http_pb.d.ts +843 -0
  36. package/dist/genproto/google/api/http_pb.d.ts.map +1 -0
  37. package/dist/genproto/google/api/launch_stage_pb.d.ts +94 -0
  38. package/dist/genproto/google/api/launch_stage_pb.d.ts.map +1 -0
  39. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts +1006 -0
  40. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts.map +1 -0
  41. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts +77 -0
  42. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts.map +1 -0
  43. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts +401 -0
  44. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts.map +1 -0
  45. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts +69 -0
  46. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts.map +1 -0
  47. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts +430 -0
  48. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts.map +1 -0
  49. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts +198 -0
  50. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts.map +1 -0
  51. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts +161 -0
  52. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts.map +1 -0
  53. package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts +305 -0
  54. package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts.map +1 -0
  55. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts +77 -0
  56. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts.map +1 -0
  57. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts +120 -0
  58. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts.map +1 -0
  59. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts +99 -0
  60. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts.map +1 -0
  61. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts +347 -0
  62. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts.map +1 -0
  63. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts +64 -0
  64. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts.map +1 -0
  65. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts +1282 -0
  66. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts.map +1 -0
  67. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts +388 -0
  68. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts.map +1 -0
  69. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts +805 -0
  70. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts.map +1 -0
  71. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts +238 -0
  72. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts.map +1 -0
  73. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts +241 -0
  74. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts.map +1 -0
  75. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts +539 -0
  76. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts.map +1 -0
  77. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts +190 -0
  78. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts.map +1 -0
  79. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts +269 -0
  80. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts.map +1 -0
  81. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts +339 -0
  82. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts.map +1 -0
  83. package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts +2721 -0
  84. package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts.map +1 -0
  85. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts +872 -0
  86. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts.map +1 -0
  87. package/dist/grpcweb.d.ts +8 -0
  88. package/dist/grpcweb.d.ts.map +1 -0
  89. package/dist/mime.d.ts +11 -0
  90. package/dist/mime.d.ts.map +1 -0
  91. package/dist/router.d.ts +503 -0
  92. package/dist/router.d.ts.map +1 -0
  93. package/dist/router.spec.d.ts +2 -0
  94. package/dist/router.spec.d.ts.map +1 -0
  95. package/dist/signal-api.spec.d.ts +17 -0
  96. package/dist/signal-api.spec.d.ts.map +1 -0
  97. package/dist/types.d.ts +149 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/package.json +80 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Global type definitions for the Mochabug Adapt Plugin system.
3
+ * These types define the runtime environment and APIs available to plugins.
4
+ */
5
+ /**
6
+ * Execution context providing lifecycle management for asynchronous operations.
7
+ */
8
+ export interface ExecutionContext {
9
+ waitUntil(promise: Promise<any>): void;
10
+ passThroughOnException(): void;
11
+ abort(reason?: any): void;
12
+ }
13
+ export interface SocketInfo {
14
+ remoteAddress?: string;
15
+ localAddress?: string;
16
+ }
17
+ export interface Socket {
18
+ get readable(): ReadableStream;
19
+ get writable(): WritableStream;
20
+ get closed(): Promise<void>;
21
+ get opened(): Promise<SocketInfo>;
22
+ get upgraded(): boolean;
23
+ get secureTransport(): 'on' | 'off' | 'starttls';
24
+ close(): Promise<void>;
25
+ startTls(options?: TlsOptions): Socket;
26
+ }
27
+ export interface TlsOptions {
28
+ expectedServerHostname?: string;
29
+ }
30
+ export interface SocketOptions {
31
+ secureTransport?: 'on' | 'off' | 'starttls';
32
+ allowHalfOpen: boolean;
33
+ highWaterMark?: number | bigint;
34
+ }
35
+ export interface SocketAddress {
36
+ hostname: string;
37
+ port: number;
38
+ }
39
+ export interface Fetcher {
40
+ fetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
41
+ connect(address: SocketAddress | string, options?: SocketOptions): Socket;
42
+ }
43
+ /**
44
+ * Environment represents an interface that holds
45
+ * all the common runtime functionality between a plugin - configurator / executor
46
+ *
47
+ * @interface
48
+ */
49
+ export interface Environment {
50
+ /**
51
+ * assets is a Fetcher that wraps the Web Platform API fetch function.
52
+ * It provides access to files inside the assetsDir, as defined in the manifest.json file,
53
+ * without requiring authentication.
54
+ *
55
+ * Note: This is a simple interface to the directory content and is not suitable for serving
56
+ * a full-fledged website. For example, it does not attempt to guess the `Content-Type` header.
57
+ * You may want to wrap this Fetcher in a plugin that fills in the metadata as required.
58
+ *
59
+ * A GET request targeting a directory (instead of a file) returns a basic JSON directory
60
+ * listing, like:
61
+ *
62
+ * [
63
+ * {"name":"foo","type":"file"},
64
+ * {"name":"bar","type":"directory"}
65
+ * ]
66
+ *
67
+ * For file requests, the `Content-Type` will be `application/octet-stream`, while for
68
+ * directory listings, it will be `application/json`. Files will have a `Content-Length`
69
+ * header, while directories will not.
70
+ *
71
+ * HEAD requests are optimized to perform a stat() without actually opening the file.
72
+ *
73
+ * Example Request for fetching an index.html file:
74
+ * GET http://./index.html
75
+ *
76
+ * Example Response:
77
+ * HTTP/1.1 200 OK
78
+ * Content-Type: application/octet-stream
79
+ * Content-Length: 12345
80
+ *
81
+ * <html>
82
+ * ...
83
+ * </html>
84
+ *
85
+ * @type {Fetcher}
86
+ */
87
+ assets: Fetcher;
88
+ /**
89
+ * HTTP Proxy fetcher for secure requests with TLS configuration and dynamic header injection.
90
+ * Requests are proxied through the runtime which handles certificate validation, mTLS, and
91
+ * template variable substitution.
92
+ *
93
+ * Service Types:
94
+ * - "plugin:name" - System-level services (shared across all vertices)
95
+ * - "user:name" - Vertex-level services (per-user configuration)
96
+ *
97
+ * Required Headers:
98
+ * - X-Mochabug-Adapt-Plugin-HttpProxy-Token: Bearer token
99
+ * - X-Mochabug-Adapt-Plugin-HttpProxy-Path: "plugin:name" or "user:name"
100
+ * - Host: Target host (auto-set by helper methods)
101
+ *
102
+ * TLS Modes (from service definition):
103
+ * - MODE_SERVER_ONLY: Validates server cert against CA bundle
104
+ * - MODE_MTLS: Mutual auth requiring client cert + private key
105
+ *
106
+ * Header Injection:
107
+ * - Template syntax: "Bearer %ACCESS_TOKEN%" (Envoy-style)
108
+ * - Variables resolved from runtime configuration
109
+ * - Injected headers override caller's headers
110
+ *
111
+ * Error Codes:
112
+ * - 400: Invalid header format
113
+ * - 401: Invalid token or no permission
114
+ * - 412: Service not configured or unavailable
115
+ *
116
+ * Usage (prefer helper methods):
117
+ * ```typescript
118
+ * const fetch = api.userHttpProxy("stripe_api");
119
+ * const res = await fetch("https://api.stripe.com/v1/charges");
120
+ * ```
121
+ *
122
+ * @type {Fetcher}
123
+ */
124
+ httpproxy: Fetcher;
125
+ /**
126
+ * See the runtime.proto/PluginService for a complete reference
127
+ */
128
+ plugin: Fetcher;
129
+ }
130
+ /**
131
+ * The environment available to a executor of a plugin vertex
132
+ * See the runtime.proto/ExecutorService for a complete reference
133
+ *
134
+ * @interface ExecutorEnvironment
135
+ */
136
+ export interface ExecutorEnvironment extends Environment {
137
+ executor: Fetcher;
138
+ }
139
+ /**
140
+ * The environment available to a configurator of a plugin vertex
141
+ * See the runtime.proto/ConfiguratorService for a complete reference
142
+ *
143
+ * @interface ConfiguratorEnvironment
144
+ * @property {Fetcher} configurator - the configurator API
145
+ */
146
+ export interface ConfiguratorEnvironment extends Environment {
147
+ configurator: Fetcher;
148
+ }
149
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACvC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,QAAQ,IAAI,cAAc,CAAC;IAC/B,IAAI,QAAQ,IAAI,cAAc,CAAC;IAC/B,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,QAAQ,IAAI,OAAO,CAAC;IACxB,IAAI,eAAe,IAAI,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC3E;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,YAAY,EAAE,OAAO,CAAC;CACvB"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@mochabug/adapt-sdk",
3
+ "version": "0.1.1",
4
+ "description": "The API toolkit to facilitate mochabug adapt plugin development",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ "./api": {
13
+ "types": "./dist/api.d.ts",
14
+ "import": "./dist/esm/api.mjs",
15
+ "require": "./dist/cjs/api.cjs"
16
+ },
17
+ "./router": {
18
+ "types": "./dist/router.d.ts",
19
+ "import": "./dist/esm/router.mjs",
20
+ "require": "./dist/cjs/router.cjs"
21
+ },
22
+ "./mime": {
23
+ "types": "./dist/mime.d.ts",
24
+ "import": "./dist/esm/mime.mjs",
25
+ "require": "./dist/cjs/mime.cjs"
26
+ },
27
+ "./frontend": {
28
+ "types": "./dist/frontend.d.ts",
29
+ "import": "./dist/esm/frontend.mjs",
30
+ "require": "./dist/cjs/frontend.cjs"
31
+ },
32
+ "./types": {
33
+ "types": "./dist/types.d.ts",
34
+ "import": "./dist/esm/types.mjs",
35
+ "require": "./dist/cjs/types.cjs"
36
+ }
37
+ },
38
+ "scripts": {
39
+ "generate": "rm -rf src/genproto && buf generate --include-imports",
40
+ "build": "npm run generate && tsc --noEmit && npm run test && node build.mjs && tsc --emitDeclarationOnly",
41
+ "test": "jest"
42
+ },
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "git+https://github.com/mochabug/adapt-plugin-toolkit.git"
46
+ },
47
+ "bugs": {
48
+ "url": "https://github.com/mochabug/adapt-plugin-toolkit/issues"
49
+ },
50
+ "homepage": "https://github.com/mochabug/adapt-plugin-toolkit#readme",
51
+ "author": "Mikael Hedberg",
52
+ "license": "Apache-2.0",
53
+ "keywords": [
54
+ "plugin",
55
+ "mochabug",
56
+ "adapt",
57
+ "intelligent automation",
58
+ "automation",
59
+ "artificial intelligence"
60
+ ],
61
+ "devDependencies": {
62
+ "@babel/core": "^7.28.5",
63
+ "@babel/preset-env": "^7.28.5",
64
+ "@babel/preset-typescript": "^7.28.5",
65
+ "@jest/globals": "^30.2.0",
66
+ "@types/jest": "^30.0.0",
67
+ "@types/mime-types": "^3.0.1",
68
+ "babel-jest": "^30.2.0",
69
+ "esbuild": "^0.27.0",
70
+ "jest": "^30.2.0",
71
+ "mime-db": "^1.54.0",
72
+ "ts-node": "^10.9.2",
73
+ "typescript": "^5.9.3"
74
+ },
75
+ "dependencies": {
76
+ "path-to-regexp": "^8.3.0",
77
+ "@bufbuild/protobuf": "^2.10.1",
78
+ "@connectrpc/connect": "^2.1.1"
79
+ }
80
+ }