@agentium/harness 4.0.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/README.md +488 -0
- package/dist/definition.d.ts +39 -0
- package/dist/definition.d.ts.map +1 -0
- package/dist/driver-BvzvqvpB.js +2049 -0
- package/dist/driver-Cr2BGG4h.cjs +2138 -0
- package/dist/drivers.d.ts +14 -0
- package/dist/drivers.d.ts.map +1 -0
- package/dist/index.cjs +1531 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1500 -0
- package/dist/mcp-resources.d.ts +42 -0
- package/dist/mcp-resources.d.ts.map +1 -0
- package/dist/policies.d.ts +29 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/presets.d.ts +41 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/runtime/context-policy.d.ts +20 -0
- package/dist/runtime/context-policy.d.ts.map +1 -0
- package/dist/runtime/context.d.ts +15 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/controller.d.ts +51 -0
- package/dist/runtime/controller.d.ts.map +1 -0
- package/dist/runtime/driver.d.ts +146 -0
- package/dist/runtime/driver.d.ts.map +1 -0
- package/dist/runtime/events.d.ts +83 -0
- package/dist/runtime/events.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/middleware.d.ts +10 -0
- package/dist/runtime/middleware.d.ts.map +1 -0
- package/dist/runtime/resolve.d.ts +20 -0
- package/dist/runtime/resolve.d.ts.map +1 -0
- package/dist/runtime/runtime-registry.d.ts +35 -0
- package/dist/runtime/runtime-registry.d.ts.map +1 -0
- package/dist/runtime/session-bindings.d.ts +60 -0
- package/dist/runtime/session-bindings.d.ts.map +1 -0
- package/dist/runtime/types.d.ts +176 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/testing.cjs +67 -0
- package/dist/testing.d.ts +7 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +66 -0
- package/dist/watch/definition.d.ts +11 -0
- package/dist/watch/definition.d.ts.map +1 -0
- package/dist/watch/gmail.d.ts +104 -0
- package/dist/watch/gmail.d.ts.map +1 -0
- package/dist/watch/quiet-hours.d.ts +10 -0
- package/dist/watch/quiet-hours.d.ts.map +1 -0
- package/dist/watch/runtime.d.ts +42 -0
- package/dist/watch/runtime.d.ts.map +1 -0
- package/dist/watch/types.d.ts +147 -0
- package/dist/watch/types.d.ts.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { DurableActionConnector, DurableJSON, DurableTaskStore } from "@agentium/core";
|
|
2
|
+
export interface WatchIdentity {
|
|
3
|
+
tenantId: string;
|
|
4
|
+
actorId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface WatchQuietHours {
|
|
7
|
+
start: string;
|
|
8
|
+
end: string;
|
|
9
|
+
}
|
|
10
|
+
export interface WatchLimits {
|
|
11
|
+
maxOperations: number;
|
|
12
|
+
maxWakes: number;
|
|
13
|
+
maxEventsPerWake: number;
|
|
14
|
+
maxPagesPerWake: number;
|
|
15
|
+
maxResyncEvents: number;
|
|
16
|
+
maxPendingEvents: number;
|
|
17
|
+
maxDecisions: number;
|
|
18
|
+
maxOutbox: number;
|
|
19
|
+
maxEventBytes: number;
|
|
20
|
+
maxStateBytes: number;
|
|
21
|
+
maxNotificationsPerDay: number;
|
|
22
|
+
}
|
|
23
|
+
export interface WatchDefinition {
|
|
24
|
+
id: string;
|
|
25
|
+
version: number;
|
|
26
|
+
identity: WatchIdentity;
|
|
27
|
+
sourceId: string;
|
|
28
|
+
sourceScope: string;
|
|
29
|
+
destination: string;
|
|
30
|
+
channel: string;
|
|
31
|
+
policyRevision: number;
|
|
32
|
+
grantRefs: string[];
|
|
33
|
+
timeZone: string;
|
|
34
|
+
quietHours?: WatchQuietHours;
|
|
35
|
+
pollIntervalMs: number;
|
|
36
|
+
renewalIntervalMs: number;
|
|
37
|
+
cooldownMs: number;
|
|
38
|
+
limits: WatchLimits;
|
|
39
|
+
}
|
|
40
|
+
export type WatchDefinitionInput = Omit<WatchDefinition, "limits" | "pollIntervalMs" | "renewalIntervalMs" | "cooldownMs"> & {
|
|
41
|
+
limits?: Partial<WatchLimits>;
|
|
42
|
+
pollIntervalMs?: number;
|
|
43
|
+
renewalIntervalMs?: number;
|
|
44
|
+
cooldownMs?: number;
|
|
45
|
+
};
|
|
46
|
+
export interface WatchEvent {
|
|
47
|
+
id: string;
|
|
48
|
+
occurredAt: number;
|
|
49
|
+
data: DurableJSON;
|
|
50
|
+
}
|
|
51
|
+
export interface WatchSubscription {
|
|
52
|
+
reference: string;
|
|
53
|
+
expiresAt: number;
|
|
54
|
+
}
|
|
55
|
+
export interface WatchSourceBatch {
|
|
56
|
+
cursor: string;
|
|
57
|
+
events: WatchEvent[];
|
|
58
|
+
resynced: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface VerifiedWatchTrigger extends WatchIdentity {
|
|
61
|
+
sourceId: string;
|
|
62
|
+
sourceScope: string;
|
|
63
|
+
eventId: string;
|
|
64
|
+
cursor: string;
|
|
65
|
+
}
|
|
66
|
+
/** A scoped, host-owned source. Implementations must honor read bounds before returning a cursor. */
|
|
67
|
+
export interface WatchSource {
|
|
68
|
+
id: string;
|
|
69
|
+
scope: string;
|
|
70
|
+
capabilities: {
|
|
71
|
+
idempotentActivation: true;
|
|
72
|
+
polling: true;
|
|
73
|
+
push: boolean;
|
|
74
|
+
};
|
|
75
|
+
baseline(signal: AbortSignal): Promise<string>;
|
|
76
|
+
activate(key: string, signal: AbortSignal): Promise<WatchSubscription>;
|
|
77
|
+
stop(subscription: WatchSubscription | null, signal: AbortSignal): Promise<void>;
|
|
78
|
+
read(cursor: string, limits: Pick<WatchLimits, "maxEventsPerWake" | "maxPagesPerWake" | "maxResyncEvents">, signal: AbortSignal): Promise<WatchSourceBatch>;
|
|
79
|
+
compareCursors(left: string, right: string): number;
|
|
80
|
+
/** Verify signature/audience and authenticated mailbox ownership before returning a trusted hint. */
|
|
81
|
+
verifyTrigger?(raw: unknown): Promise<VerifiedWatchTrigger>;
|
|
82
|
+
}
|
|
83
|
+
export type WatchScheduleKind = "poll" | "renew" | "flush";
|
|
84
|
+
export interface WatchSchedule {
|
|
85
|
+
key: string;
|
|
86
|
+
identity: WatchIdentity;
|
|
87
|
+
watchId: string;
|
|
88
|
+
configVersion: number;
|
|
89
|
+
kind: WatchScheduleKind;
|
|
90
|
+
at: number;
|
|
91
|
+
}
|
|
92
|
+
export interface WatchScheduler {
|
|
93
|
+
capabilities: {
|
|
94
|
+
durable: boolean;
|
|
95
|
+
idempotentUpsert: true;
|
|
96
|
+
};
|
|
97
|
+
schedule(job: WatchSchedule): Promise<void>;
|
|
98
|
+
cancel(key: string): Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
export type WatchOperation = "activate" | "update" | "pause" | "resume" | "delete" | "trigger" | "poll" | "renew" | "flush" | "reconcile" | "inspect";
|
|
101
|
+
export interface WatchAuthorization {
|
|
102
|
+
operation: WatchOperation;
|
|
103
|
+
definition: Readonly<WatchDefinition>;
|
|
104
|
+
/** Notification count includes digests; authorization must validate destination/channel and amount. */
|
|
105
|
+
notifications: number;
|
|
106
|
+
events: number;
|
|
107
|
+
}
|
|
108
|
+
export interface WatchServices {
|
|
109
|
+
store: DurableTaskStore;
|
|
110
|
+
source: WatchSource;
|
|
111
|
+
scheduler: WatchScheduler;
|
|
112
|
+
notifications: DurableActionConnector & {
|
|
113
|
+
channel: string;
|
|
114
|
+
destination: string;
|
|
115
|
+
};
|
|
116
|
+
/** Trusted host authority, including exclusive ownership of a source mailbox where required. */
|
|
117
|
+
authorize(request: WatchAuthorization): Promise<boolean>;
|
|
118
|
+
/** Deterministic local classification only; no model/network work in this callback. */
|
|
119
|
+
filter?(event: Readonly<WatchEvent>): boolean;
|
|
120
|
+
leaseMs?: number;
|
|
121
|
+
requireDurability?: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface WatchOutbox {
|
|
124
|
+
id: string;
|
|
125
|
+
eventIds: string[];
|
|
126
|
+
events: WatchEvent[];
|
|
127
|
+
state: "pending" | "confirmed";
|
|
128
|
+
reservedDay: string | null;
|
|
129
|
+
resultRef: string | null;
|
|
130
|
+
}
|
|
131
|
+
export interface WatchState {
|
|
132
|
+
status: "inactive" | "activating" | "active" | "paused" | "deleted";
|
|
133
|
+
cursor: string | null;
|
|
134
|
+
subscription: WatchSubscription | null;
|
|
135
|
+
wakes: number;
|
|
136
|
+
decisions: Record<string, {
|
|
137
|
+
id: string;
|
|
138
|
+
decision: "pending" | "ignored" | "resync" | "outbox";
|
|
139
|
+
at: number;
|
|
140
|
+
}>;
|
|
141
|
+
pending: WatchEvent[];
|
|
142
|
+
outbox: Record<string, WatchOutbox>;
|
|
143
|
+
daily: Record<string, number>;
|
|
144
|
+
cooldownUntil: number;
|
|
145
|
+
schedules: Partial<Record<WatchScheduleKind, number>>;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/watch/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agentium/harness",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "Composable harness developer kit for Agentium tools, context, middleware and presets",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/agentiumOS/agentium.git",
|
|
12
|
+
"directory": "packages/harness"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"ai",
|
|
16
|
+
"agents",
|
|
17
|
+
"harness",
|
|
18
|
+
"tools",
|
|
19
|
+
"context",
|
|
20
|
+
"middleware"
|
|
21
|
+
],
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./dist/index.cjs",
|
|
24
|
+
"module": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"require": "./dist/index.cjs",
|
|
31
|
+
"default": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./testing": {
|
|
34
|
+
"types": "./dist/testing.d.ts",
|
|
35
|
+
"import": "./dist/testing.js",
|
|
36
|
+
"require": "./dist/testing.cjs",
|
|
37
|
+
"default": "./dist/testing.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsdown --config ../../tsdown.config.ts && tsc -p tsconfig.build.json --emitDeclarationOnly --declaration --pretty false",
|
|
45
|
+
"dev": "tsdown --config ../../tsdown.config.ts --watch",
|
|
46
|
+
"prepublishOnly": "npm run build",
|
|
47
|
+
"test:package": "cd ../.. && AGENTIUM_TEST_PACKAGES=1 vitest run packages/harness/src/__tests__/package-consumption.test.ts"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"@agentium/core": "^4.0.0"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"zod": "^4.6.5"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@types/node": "^25.3.1",
|
|
57
|
+
"typescript": "^5.6.0",
|
|
58
|
+
"tsdown": "0.23.0"
|
|
59
|
+
},
|
|
60
|
+
"homepage": "https://agentium.in",
|
|
61
|
+
"bugs": {
|
|
62
|
+
"url": "https://github.com/agentiumOS/agentium/issues"
|
|
63
|
+
},
|
|
64
|
+
"sideEffects": false,
|
|
65
|
+
"engines": {
|
|
66
|
+
"node": "^22.18.0 || ^24.11.0"
|
|
67
|
+
}
|
|
68
|
+
}
|