@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.
Files changed (54) hide show
  1. package/README.md +488 -0
  2. package/dist/definition.d.ts +39 -0
  3. package/dist/definition.d.ts.map +1 -0
  4. package/dist/driver-BvzvqvpB.js +2049 -0
  5. package/dist/driver-Cr2BGG4h.cjs +2138 -0
  6. package/dist/drivers.d.ts +14 -0
  7. package/dist/drivers.d.ts.map +1 -0
  8. package/dist/index.cjs +1531 -0
  9. package/dist/index.d.ts +16 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +1500 -0
  12. package/dist/mcp-resources.d.ts +42 -0
  13. package/dist/mcp-resources.d.ts.map +1 -0
  14. package/dist/policies.d.ts +29 -0
  15. package/dist/policies.d.ts.map +1 -0
  16. package/dist/presets.d.ts +41 -0
  17. package/dist/presets.d.ts.map +1 -0
  18. package/dist/runtime/context-policy.d.ts +20 -0
  19. package/dist/runtime/context-policy.d.ts.map +1 -0
  20. package/dist/runtime/context.d.ts +15 -0
  21. package/dist/runtime/context.d.ts.map +1 -0
  22. package/dist/runtime/controller.d.ts +51 -0
  23. package/dist/runtime/controller.d.ts.map +1 -0
  24. package/dist/runtime/driver.d.ts +146 -0
  25. package/dist/runtime/driver.d.ts.map +1 -0
  26. package/dist/runtime/events.d.ts +83 -0
  27. package/dist/runtime/events.d.ts.map +1 -0
  28. package/dist/runtime/index.d.ts +9 -0
  29. package/dist/runtime/index.d.ts.map +1 -0
  30. package/dist/runtime/middleware.d.ts +10 -0
  31. package/dist/runtime/middleware.d.ts.map +1 -0
  32. package/dist/runtime/resolve.d.ts +20 -0
  33. package/dist/runtime/resolve.d.ts.map +1 -0
  34. package/dist/runtime/runtime-registry.d.ts +35 -0
  35. package/dist/runtime/runtime-registry.d.ts.map +1 -0
  36. package/dist/runtime/session-bindings.d.ts +60 -0
  37. package/dist/runtime/session-bindings.d.ts.map +1 -0
  38. package/dist/runtime/types.d.ts +176 -0
  39. package/dist/runtime/types.d.ts.map +1 -0
  40. package/dist/testing.cjs +67 -0
  41. package/dist/testing.d.ts +7 -0
  42. package/dist/testing.d.ts.map +1 -0
  43. package/dist/testing.js +66 -0
  44. package/dist/watch/definition.d.ts +11 -0
  45. package/dist/watch/definition.d.ts.map +1 -0
  46. package/dist/watch/gmail.d.ts +104 -0
  47. package/dist/watch/gmail.d.ts.map +1 -0
  48. package/dist/watch/quiet-hours.d.ts +10 -0
  49. package/dist/watch/quiet-hours.d.ts.map +1 -0
  50. package/dist/watch/runtime.d.ts +42 -0
  51. package/dist/watch/runtime.d.ts.map +1 -0
  52. package/dist/watch/types.d.ts +147 -0
  53. package/dist/watch/types.d.ts.map +1 -0
  54. 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
+ }