@opentag/dispatcher 0.3.0 → 0.3.2
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/callbacks.d.ts.map +1 -1
- package/dist/index.js +1600 -250
- package/dist/index.js.map +1 -1
- package/dist/presentation.d.ts +40 -1
- package/dist/presentation.d.ts.map +1 -1
- package/dist/server.d.ts +28 -2
- package/dist/server.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/presentation.d.ts
CHANGED
|
@@ -1,18 +1,55 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ActionReceiptContext, type OpenTagFinalSummaryPresentation, type OpenTagPresentation, type OpenTagRunResult, type OpenTagRunStatusPresentation } from "@opentag/core";
|
|
2
2
|
import { type SlackBlock } from "@opentag/slack";
|
|
3
3
|
import type { CallbackMessage } from "./server.js";
|
|
4
4
|
export type CallbackProvider = CallbackMessage["provider"];
|
|
5
5
|
export type PresentedCallbackBody = {
|
|
6
6
|
body: string;
|
|
7
7
|
blocks?: SlackBlock[];
|
|
8
|
+
rich?: CallbackMessage["rich"];
|
|
8
9
|
};
|
|
9
10
|
export type CallbackPresentation = {
|
|
10
11
|
shouldDeliverAcknowledgement(provider: CallbackProvider): boolean;
|
|
12
|
+
shouldDeliverStatusUpdate(provider: CallbackProvider): boolean;
|
|
13
|
+
shouldDeliverRunStatusUpdate?(input: {
|
|
14
|
+
provider: CallbackProvider;
|
|
15
|
+
state: OpenTagRunStatusPresentation["state"];
|
|
16
|
+
}): boolean;
|
|
11
17
|
shouldDeliverProgress(provider: CallbackProvider): boolean;
|
|
18
|
+
runStatusPresentation(input: {
|
|
19
|
+
runId: string;
|
|
20
|
+
state: OpenTagRunStatusPresentation["state"];
|
|
21
|
+
message?: string;
|
|
22
|
+
nextAction?: string;
|
|
23
|
+
detailVisibility?: OpenTagRunStatusPresentation["detailVisibility"];
|
|
24
|
+
}): OpenTagRunStatusPresentation;
|
|
25
|
+
acknowledgementPresentation(input: {
|
|
26
|
+
runId: string;
|
|
27
|
+
}): OpenTagRunStatusPresentation;
|
|
28
|
+
progressPresentation(input: {
|
|
29
|
+
runId: string;
|
|
30
|
+
message: string;
|
|
31
|
+
}): OpenTagRunStatusPresentation;
|
|
32
|
+
finalPresentation(input: {
|
|
33
|
+
result: OpenTagRunResult;
|
|
34
|
+
runId?: string;
|
|
35
|
+
receiptContext?: ActionReceiptContext;
|
|
36
|
+
}): OpenTagFinalSummaryPresentation;
|
|
37
|
+
render(input: {
|
|
38
|
+
provider: CallbackProvider;
|
|
39
|
+
presentation: OpenTagPresentation;
|
|
40
|
+
}): PresentedCallbackBody;
|
|
12
41
|
acknowledgement(input: {
|
|
13
42
|
provider: CallbackProvider;
|
|
14
43
|
runId: string;
|
|
15
44
|
}): string;
|
|
45
|
+
runStatus(input: {
|
|
46
|
+
provider: CallbackProvider;
|
|
47
|
+
runId: string;
|
|
48
|
+
state: OpenTagRunStatusPresentation["state"];
|
|
49
|
+
message?: string;
|
|
50
|
+
nextAction?: string;
|
|
51
|
+
detailVisibility?: OpenTagRunStatusPresentation["detailVisibility"];
|
|
52
|
+
}): PresentedCallbackBody;
|
|
16
53
|
progress(input: {
|
|
17
54
|
provider: CallbackProvider;
|
|
18
55
|
runId: string;
|
|
@@ -21,6 +58,8 @@ export type CallbackPresentation = {
|
|
|
21
58
|
final(input: {
|
|
22
59
|
provider: CallbackProvider;
|
|
23
60
|
result: OpenTagRunResult;
|
|
61
|
+
runId?: string;
|
|
62
|
+
receiptContext?: ActionReceiptContext;
|
|
24
63
|
}): PresentedCallbackBody;
|
|
25
64
|
};
|
|
26
65
|
export declare function createDefaultCallbackPresentation(): CallbackPresentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../src/presentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../src/presentation.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -3,6 +3,19 @@ import { type FetchLike as GitHubFetchLike } from "@opentag/github";
|
|
|
3
3
|
import type { SlackBlock } from "@opentag/slack";
|
|
4
4
|
import { createOpenTagRepository } from "@opentag/store";
|
|
5
5
|
import { Hono } from "hono";
|
|
6
|
+
/**
|
|
7
|
+
* Parse and validate a request body, mapping ONLY request-body parse failures to
|
|
8
|
+
* HTTP client errors. Oversized bodies return 413, malformed JSON returns 400,
|
|
9
|
+
* and request-schema validation failures return 400 so the global onError
|
|
10
|
+
* handler can return them to the client without masking unrelated internal
|
|
11
|
+
* ZodError/SyntaxError as 400s. Any other error is rethrown unchanged and falls
|
|
12
|
+
* through to a 500.
|
|
13
|
+
*/
|
|
14
|
+
export type DispatcherRateLimitOptions = {
|
|
15
|
+
windowMs: number;
|
|
16
|
+
maxRequests: number;
|
|
17
|
+
now?(): number;
|
|
18
|
+
};
|
|
6
19
|
import { type AgentAccessProfileCheck } from "./admission.js";
|
|
7
20
|
import { type CallbackPresentation } from "./presentation.js";
|
|
8
21
|
export type CallbackMessage = {
|
|
@@ -14,12 +27,20 @@ export type CallbackMessage = {
|
|
|
14
27
|
agentId?: string;
|
|
15
28
|
threadKey?: string;
|
|
16
29
|
statusMessageKey?: string;
|
|
30
|
+
externalMessageId?: string;
|
|
17
31
|
blocks?: SlackBlock[];
|
|
32
|
+
rich?: {
|
|
33
|
+
provider: string;
|
|
34
|
+
payload: unknown;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export type CallbackDeliveryResult = {
|
|
38
|
+
externalMessageId?: string;
|
|
18
39
|
};
|
|
19
40
|
export type CallbackSink = {
|
|
20
|
-
deliver(message: CallbackMessage): Promise<void>;
|
|
41
|
+
deliver(message: CallbackMessage): Promise<void | CallbackDeliveryResult>;
|
|
21
42
|
};
|
|
22
|
-
export type SourceReceiptState = "received";
|
|
43
|
+
export type SourceReceiptState = "received" | "running";
|
|
23
44
|
export type SourceReceiptDelivery = {
|
|
24
45
|
delivered: boolean;
|
|
25
46
|
};
|
|
@@ -58,9 +79,14 @@ export declare function createDispatcherApp(input: {
|
|
|
58
79
|
callbackSink?: CallbackSink;
|
|
59
80
|
sourceReceiptSink?: SourceReceiptSink;
|
|
60
81
|
pairingToken?: string;
|
|
82
|
+
runnerToken?: string;
|
|
83
|
+
runnerTokens?: string[];
|
|
84
|
+
revokedRunnerTokenFingerprints?: string[];
|
|
61
85
|
presentation?: CallbackPresentation;
|
|
62
86
|
githubApply?: GitHubApplyOptions;
|
|
63
87
|
callbackRetry?: CallbackRetryOptions;
|
|
64
88
|
agentAccessProfileCheck?: AgentAccessProfileCheck;
|
|
89
|
+
maxRequestBodyBytes?: number;
|
|
90
|
+
rateLimit?: DispatcherRateLimitOptions | false;
|
|
65
91
|
}): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
66
92
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentag/dispatcher",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Embeddable OpenTag dispatcher Hono app and callback sinks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"drizzle-orm": "^0.45.2",
|
|
36
36
|
"hono": "^4.6.15",
|
|
37
37
|
"zod": "^3.24.1",
|
|
38
|
-
"@opentag/core": "0.3.
|
|
39
|
-
"@opentag/github": "0.3.
|
|
40
|
-
"@opentag/
|
|
41
|
-
"@opentag/
|
|
42
|
-
"@opentag/
|
|
43
|
-
"@opentag/
|
|
38
|
+
"@opentag/core": "0.3.2",
|
|
39
|
+
"@opentag/github": "0.3.2",
|
|
40
|
+
"@opentag/telegram": "0.3.2",
|
|
41
|
+
"@opentag/store": "0.3.2",
|
|
42
|
+
"@opentag/slack": "0.3.2",
|
|
43
|
+
"@opentag/lark": "0.3.2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/better-sqlite3": "^7.6.12",
|