digital-workers 2.1.1 → 2.3.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 (197) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +136 -180
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +34 -21
  5. package/dist/actions.js.map +1 -1
  6. package/dist/agent-comms.d.ts +438 -0
  7. package/dist/agent-comms.d.ts.map +1 -0
  8. package/dist/agent-comms.js +677 -0
  9. package/dist/agent-comms.js.map +1 -0
  10. package/dist/approve.d.ts +40 -8
  11. package/dist/approve.d.ts.map +1 -1
  12. package/dist/approve.js +86 -20
  13. package/dist/approve.js.map +1 -1
  14. package/dist/ask.d.ts +38 -7
  15. package/dist/ask.d.ts.map +1 -1
  16. package/dist/ask.js +85 -25
  17. package/dist/ask.js.map +1 -1
  18. package/dist/browse.d.ts +223 -0
  19. package/dist/browse.d.ts.map +1 -0
  20. package/dist/browse.js +392 -0
  21. package/dist/browse.js.map +1 -0
  22. package/dist/capability-tiers.d.ts +230 -0
  23. package/dist/capability-tiers.d.ts.map +1 -0
  24. package/dist/capability-tiers.js +388 -0
  25. package/dist/capability-tiers.js.map +1 -0
  26. package/dist/cascade-context.d.ts +523 -0
  27. package/dist/cascade-context.d.ts.map +1 -0
  28. package/dist/cascade-context.js +494 -0
  29. package/dist/cascade-context.js.map +1 -0
  30. package/dist/client.d.ts +162 -0
  31. package/dist/client.d.ts.map +1 -0
  32. package/dist/client.js +64 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/decide.d.ts +42 -6
  35. package/dist/decide.d.ts.map +1 -1
  36. package/dist/decide.js +54 -11
  37. package/dist/decide.js.map +1 -1
  38. package/dist/do.d.ts +36 -7
  39. package/dist/do.d.ts.map +1 -1
  40. package/dist/do.js +82 -39
  41. package/dist/do.js.map +1 -1
  42. package/dist/error-escalation.d.ts +416 -0
  43. package/dist/error-escalation.d.ts.map +1 -0
  44. package/dist/error-escalation.js +656 -0
  45. package/dist/error-escalation.js.map +1 -0
  46. package/dist/generate.d.ts +48 -7
  47. package/dist/generate.d.ts.map +1 -1
  48. package/dist/generate.js +49 -8
  49. package/dist/generate.js.map +1 -1
  50. package/dist/goals.d.ts +10 -9
  51. package/dist/goals.d.ts.map +1 -1
  52. package/dist/goals.js +30 -24
  53. package/dist/goals.js.map +1 -1
  54. package/dist/image.d.ts +189 -0
  55. package/dist/image.d.ts.map +1 -0
  56. package/dist/image.js +528 -0
  57. package/dist/image.js.map +1 -0
  58. package/dist/index.d.ts +59 -2
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +92 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/is.d.ts +45 -10
  63. package/dist/is.d.ts.map +1 -1
  64. package/dist/is.js +56 -21
  65. package/dist/is.js.map +1 -1
  66. package/dist/kpis.d.ts +24 -15
  67. package/dist/kpis.d.ts.map +1 -1
  68. package/dist/kpis.js +16 -14
  69. package/dist/kpis.js.map +1 -1
  70. package/dist/load-balancing.d.ts +395 -0
  71. package/dist/load-balancing.d.ts.map +1 -0
  72. package/dist/load-balancing.js +991 -0
  73. package/dist/load-balancing.js.map +1 -0
  74. package/dist/logger.d.ts +76 -0
  75. package/dist/logger.d.ts.map +1 -0
  76. package/dist/logger.js +39 -0
  77. package/dist/logger.js.map +1 -0
  78. package/dist/notify.d.ts +38 -9
  79. package/dist/notify.d.ts.map +1 -1
  80. package/dist/notify.js +72 -17
  81. package/dist/notify.js.map +1 -1
  82. package/dist/role.d.ts +5 -4
  83. package/dist/role.d.ts.map +1 -1
  84. package/dist/role.js +13 -10
  85. package/dist/role.js.map +1 -1
  86. package/dist/runtime.d.ts +310 -0
  87. package/dist/runtime.d.ts.map +1 -0
  88. package/dist/runtime.js +510 -0
  89. package/dist/runtime.js.map +1 -0
  90. package/dist/team.d.ts +11 -6
  91. package/dist/team.d.ts.map +1 -1
  92. package/dist/team.js +22 -15
  93. package/dist/team.js.map +1 -1
  94. package/dist/transports/email.d.ts +318 -0
  95. package/dist/transports/email.d.ts.map +1 -0
  96. package/dist/transports/email.js +779 -0
  97. package/dist/transports/email.js.map +1 -0
  98. package/dist/transports/slack.d.ts +515 -0
  99. package/dist/transports/slack.d.ts.map +1 -0
  100. package/dist/transports/slack.js +844 -0
  101. package/dist/transports/slack.js.map +1 -0
  102. package/dist/transports.d.ts.map +1 -1
  103. package/dist/transports.js +44 -25
  104. package/dist/transports.js.map +1 -1
  105. package/dist/types.d.ts +149 -19
  106. package/dist/types.d.ts.map +1 -1
  107. package/dist/types.js +6 -0
  108. package/dist/types.js.map +1 -1
  109. package/dist/utils/id.d.ts +19 -0
  110. package/dist/utils/id.d.ts.map +1 -0
  111. package/dist/utils/id.js +21 -0
  112. package/dist/utils/id.js.map +1 -0
  113. package/dist/video.d.ts +203 -0
  114. package/dist/video.d.ts.map +1 -0
  115. package/dist/video.js +528 -0
  116. package/dist/video.js.map +1 -0
  117. package/dist/worker.d.ts +343 -0
  118. package/dist/worker.d.ts.map +1 -0
  119. package/dist/worker.js +698 -0
  120. package/dist/worker.js.map +1 -0
  121. package/package.json +24 -5
  122. package/src/actions.ts +48 -38
  123. package/src/agent-comms.ts +1200 -0
  124. package/src/approve.ts +91 -20
  125. package/src/ask.ts +99 -25
  126. package/src/browse.ts +627 -0
  127. package/src/capability-tiers.ts +545 -0
  128. package/src/cascade-context.ts +648 -0
  129. package/src/client.ts +221 -0
  130. package/src/decide.ts +81 -35
  131. package/src/do.ts +98 -52
  132. package/src/error-escalation.ts +1123 -0
  133. package/src/generate.ts +52 -18
  134. package/src/goals.ts +36 -27
  135. package/src/image.ts +816 -0
  136. package/src/index.ts +410 -2
  137. package/src/is.ts +59 -25
  138. package/src/kpis.ts +41 -36
  139. package/src/load-balancing.ts +1467 -0
  140. package/src/logger.ts +93 -0
  141. package/src/notify.ts +78 -17
  142. package/src/role.ts +30 -20
  143. package/src/runtime.ts +796 -0
  144. package/src/team.ts +24 -19
  145. package/src/transports/email.ts +1160 -0
  146. package/src/transports/slack.ts +1320 -0
  147. package/src/transports.ts +58 -43
  148. package/src/types.ts +182 -46
  149. package/src/utils/id.ts +21 -0
  150. package/src/video.ts +906 -0
  151. package/src/worker.ts +1007 -0
  152. package/test/agent-comms.test.ts +1397 -0
  153. package/test/approve.test.ts +305 -0
  154. package/test/ask.test.ts +274 -0
  155. package/test/browse.test.ts +361 -0
  156. package/test/capability-tiers.test.ts +631 -0
  157. package/test/cascade-context.test.ts +692 -0
  158. package/test/decide.test.ts +252 -0
  159. package/test/do.test.ts +144 -0
  160. package/test/error-escalation.test.ts +1205 -0
  161. package/test/error-logging.test.ts +357 -0
  162. package/test/generate.test.ts +319 -0
  163. package/test/image.test.ts +398 -0
  164. package/test/is.test.ts +287 -0
  165. package/test/load-balancing-safety.test.ts +404 -0
  166. package/test/load-balancing-thread-safety.test.ts +464 -0
  167. package/test/load-balancing.test.ts +1145 -0
  168. package/test/notify.test.ts +434 -0
  169. package/test/primitives.test.ts +320 -0
  170. package/test/runtime-integration.test.ts +892 -0
  171. package/test/transports/crypto.test.ts +230 -0
  172. package/test/transports/email.test.ts +866 -0
  173. package/test/transports/id-generation.test.ts +91 -0
  174. package/test/transports/slack.test.ts +760 -0
  175. package/test/type-safety.test.ts +834 -0
  176. package/test/types.test.ts +95 -2
  177. package/test/video.test.ts +530 -0
  178. package/test/worker.test.ts +1433 -0
  179. package/tsconfig.json +4 -1
  180. package/vitest.config.ts +42 -0
  181. package/wrangler.jsonc +36 -0
  182. package/.turbo/turbo-build.log +0 -5
  183. package/src/actions.js +0 -436
  184. package/src/approve.js +0 -234
  185. package/src/ask.js +0 -226
  186. package/src/decide.js +0 -244
  187. package/src/do.js +0 -227
  188. package/src/generate.js +0 -298
  189. package/src/goals.js +0 -205
  190. package/src/index.js +0 -68
  191. package/src/is.js +0 -317
  192. package/src/kpis.js +0 -270
  193. package/src/notify.js +0 -219
  194. package/src/role.js +0 -110
  195. package/src/team.js +0 -130
  196. package/src/transports.js +0 -357
  197. package/src/types.js +0 -71
package/dist/index.js CHANGED
@@ -6,7 +6,29 @@
6
6
  * defines a unified Worker interface that enables workflows to be designed
7
7
  * once and executed by any combination of AI and human workers.
8
8
  *
9
- * Package relationships:
9
+ * ## Worker Routing vs ai-functions Primitives
10
+ *
11
+ * **IMPORTANT:** This package exports functions that overlap in name with
12
+ * `ai-functions` primitives (do, ask, decide, approve, generate, is) but
13
+ * serve fundamentally different purposes:
14
+ *
15
+ * | Function | digital-workers | ai-functions |
16
+ * |----------|----------------|--------------|
17
+ * | `do` | Routes tasks to Workers | Direct LLM task description |
18
+ * | `ask` | Routes questions via Slack/email | LLM content for human UI |
19
+ * | `decide` | Multi-criteria decision framework | LLM-as-judge comparison |
20
+ * | `approve` | Real approval workflow via channels | LLM-generated approval content |
21
+ * | `generate` | Content generation with metadata | Core LLM generation primitive |
22
+ * | `is` | Type/schema validation with errors | Boolean assertion via LLM |
23
+ * | `notify` | Real channel delivery | (no equivalent) |
24
+ *
25
+ * **digital-workers functions are worker coordination primitives** that route
26
+ * work to AI Agents or Humans via real communication channels.
27
+ *
28
+ * **ai-functions primitives are direct LLM operations** for text generation,
29
+ * decision-making, and content creation.
30
+ *
31
+ * ## Package relationships:
10
32
  * - `autonomous-agents` - Implements Worker for AI agents
11
33
  * - `human-in-the-loop` - Implements Worker for humans
12
34
  * - `ai-workflows` - Uses digital-workers to orchestrate execution
@@ -32,12 +54,13 @@
32
54
  * const worker$ = withWorkers($)
33
55
  *
34
56
  * $.on.Expense.submitted(async (expense) => {
57
+ * // These route to REAL workers via REAL channels
35
58
  * await worker$.notify(finance, `New expense: ${expense.amount}`)
36
59
  *
37
60
  * const approval = await worker$.approve(
38
61
  * `Expense: $${expense.amount}`,
39
62
  * manager,
40
- * { via: 'slack' }
63
+ * { via: 'slack' } // Actually sends to Slack!
41
64
  * )
42
65
  *
43
66
  * if (approval.approved) {
@@ -55,15 +78,82 @@ export { registerWorkerActions, withWorkers, handleNotify, handleAsk, handleAppr
55
78
  export { Role } from './role.js';
56
79
  export { Team } from './team.js';
57
80
  export { Goals } from './goals.js';
81
+ /**
82
+ * Worker Routing Functions
83
+ *
84
+ * These functions route work to Workers (AI Agents or Humans) via real
85
+ * communication channels. They are NOT direct LLM primitives.
86
+ *
87
+ * For direct LLM primitives, use the identically-named functions from
88
+ * `ai-functions` instead. See module documentation for comparison table.
89
+ */
58
90
  export { approve } from './approve.js';
59
91
  export { ask } from './ask.js';
92
+ export { browse } from './browse.js';
60
93
  export { do } from './do.js';
61
94
  export { decide } from './decide.js';
62
95
  export { generate } from './generate.js';
96
+ export { image } from './image.js';
63
97
  export { is } from './is.js';
64
98
  export { notify } from './notify.js';
99
+ export { video } from './video.js';
65
100
  export { kpis, okrs } from './kpis.js';
66
101
  // Export verb definitions
67
102
  export { WorkerVerbs } from './types.js';
103
+ // Export capability tiers
104
+ export { CAPABILITY_TIERS, TIER_ORDER, compareTiers, isHigherTier, isLowerTier, getNextTier, getPreviousTier, getTierConfig, getToolsForTier, matchTierToComplexity, canExecuteAtTier, validateTierEscalation, createCapabilityProfile, TierRegistry, } from './capability-tiers.js';
68
105
  export { channelToTransport, getWorkerTransports, getTeamTransports, resolveAddress, resolveWorkerAddresses, getPrimaryAddress, registerTransport, getTransportHandler, hasTransport, listTransports, sendViaTransport, sendToMultipleTransports, buildNotifyPayload, buildAskPayload, buildApprovePayload, toDigitalToolsMessage, fromDigitalToolsMessage, MessageTypeMapping, CallTypeMapping, } from './transports.js';
106
+ // Export cascade context for agent coordination
107
+ export {
108
+ // Functions
109
+ createCascadeContext, validateContext, enrichContext, serializeContext, deserializeContext, mergeContexts, diffContexts, createContextVersion,
110
+ // Schemas
111
+ AgentCascadeContextSchema, AgentTierSchema, ContextVersionSchema, AgentRefSchema, TaskPrioritySchema, TaskInfoSchema, ExecutionPhaseSchema, ExecutionStateSchema, TraceEntrySchema, } from './cascade-context.js';
112
+ // Export agent-to-agent communication layer
113
+ export {
114
+ // Message Bus
115
+ AgentMessageBus, createMessageBus,
116
+ // Core Functions
117
+ sendToAgent, broadcastToGroup, requestFromAgent, onMessage, acknowledge,
118
+ // Coordination Patterns
119
+ requestResponse, fanOut, fanIn, pipeline,
120
+ // Handoff Protocol
121
+ initiateHandoff, acceptHandoff, rejectHandoff, completeHandoff, } from './agent-comms.js';
122
+ // Export load balancing and routing for agent coordination
123
+ export {
124
+ // Balancer Factories
125
+ createRoundRobinBalancer, createLeastBusyBalancer, createCapabilityRouter, createPriorityQueueBalancer, createAgentAvailabilityTracker, createCompositeBalancer, createRoutingRuleEngine,
126
+ // Metrics
127
+ collectRoutingMetrics, resetRoutingMetrics, } from './load-balancing.js';
128
+ // Export Slack transport adapter
129
+ export { SlackTransport, createSlackTransport, registerSlackTransport,
130
+ // Block Kit helpers
131
+ slackSection, slackHeader, slackDivider, slackContext, slackButton, slackActions, } from './transports/slack.js';
132
+ // Export Email transport adapter
133
+ export { EmailTransport, createEmailTransport, createEmailTransportWithProvider, createResendProvider,
134
+ // Template generators
135
+ generateNotificationEmail, generateApprovalEmail,
136
+ // Reply parsing
137
+ parseApprovalReply,
138
+ // Type guards
139
+ isEmailTransportConfig, isApproved, isRejected, } from './transports/email.js';
140
+ // Export error escalation for multi-level error handling
141
+ export {
142
+ // Error Classification
143
+ getErrorSeverity, getErrorCategory, createClassifiedError, classifyError, isEscalatable, preserveContext, buildErrorChain,
144
+ // Escalation Routing
145
+ createEscalationPolicy, getNextEscalationTier, determineEscalationPath, shouldEscalate, detectCircularEscalation, validateEscalationPath,
146
+ // Recovery Patterns
147
+ calculateBackoff, createRetryState, shouldRetry, selectFallbackAgent, getDegradationLevel, createRecoveryState, updateRecoveryState, isRecoverable,
148
+ // Escalation Engine
149
+ createEscalationEngine, } from './error-escalation.js';
150
+ // Export runtime integration for human request processing
151
+ export {
152
+ // Classes
153
+ HumanRequestProcessor, InMemoryRequestStore,
154
+ // Factory functions
155
+ createHumanRequestProcessor, } from './runtime.js';
156
+ export { noopLogger, createConsoleLogger } from './logger.js';
157
+ // Export ID generation utilities
158
+ export { generateRequestId } from './utils/id.js';
69
159
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAKH,8BAA8B;AAC9B,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,MAAM,IAAI,YAAY,EACtB,GAAG,IAAI,SAAS,EAChB,OAAO,IAAI,aAAa,EACxB,MAAM,IAAI,YAAY,GACvB,MAAM,cAAc,CAAA;AAErB,wBAAwB;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEtC,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAaxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,GAChB,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/is.d.ts CHANGED
@@ -1,29 +1,62 @@
1
1
  /**
2
2
  * Type validation and checking functionality for digital workers
3
+ *
4
+ * IMPORTANT: Schema Validation vs Boolean Assertion
5
+ * --------------------------------------------------
6
+ * This module provides comprehensive type/schema validation,
7
+ * NOT simple boolean assertions.
8
+ *
9
+ * - `digital-workers.is()` - Validates values against types or schemas,
10
+ * returns detailed validation results with errors and optional coercion.
11
+ *
12
+ * - `ai-functions.is()` - Boolean assertion via LLM (e.g., `is\`${x} is valid\``)
13
+ * returns true/false based on natural language checking.
14
+ *
15
+ * Use digital-workers when you need:
16
+ * - Type validation with error messages
17
+ * - Schema validation with field-level errors
18
+ * - Value coercion (string to number, etc.)
19
+ * - Structured validation results
20
+ *
21
+ * Use ai-functions when you need:
22
+ * - Natural language boolean checks
23
+ * - LLM-based semantic validation
24
+ * - Template literal assertions
25
+ *
26
+ * @module
3
27
  */
4
28
  import { type SimpleSchema } from 'ai-functions';
5
29
  import type { TypeCheckResult, IsOptions } from './types.js';
6
30
  /**
7
- * Check if a value matches an expected type or schema
31
+ * Validate a value against a type or schema with detailed results.
8
32
  *
9
- * Uses AI-powered validation for complex types and schemas.
10
- * Can also perform type coercion when enabled.
33
+ * **Key Difference from ai-functions.is():**
34
+ * Unlike `ai-functions.is()` which is a boolean assertion using natural
35
+ * language (e.g., `is\`${email} is valid\`` returns true/false), this
36
+ * function performs structured type/schema validation and returns a
37
+ * `TypeCheckResult` with:
38
+ * - Validation status
39
+ * - Error messages for invalid fields
40
+ * - Optionally coerced values
41
+ *
42
+ * This is a **validation primitive**, not a boolean assertion primitive.
11
43
  *
12
44
  * @param value - The value to check
13
- * @param type - Type name or schema to validate against
14
- * @param options - Validation options
15
- * @returns Promise resolving to validation result
45
+ * @param type - Type name ('email', 'url', 'number') or schema to validate against
46
+ * @param options - Validation options (coerce, strict)
47
+ * @returns Promise resolving to TypeCheckResult with valid, value, and errors
16
48
  *
17
49
  * @example
18
50
  * ```ts
19
- * // Simple type checking
51
+ * // Simple type checking with result object
20
52
  * const result = await is('hello@example.com', 'email')
21
53
  * console.log(result.valid) // true
54
+ * console.log(result.errors) // undefined when valid
22
55
  * ```
23
56
  *
24
57
  * @example
25
58
  * ```ts
26
- * // Schema validation
59
+ * // Schema validation with detailed errors
27
60
  * const result = await is(
28
61
  * { name: 'John', age: 30 },
29
62
  * {
@@ -38,11 +71,13 @@ import type { TypeCheckResult, IsOptions } from './types.js';
38
71
  *
39
72
  * @example
40
73
  * ```ts
41
- * // With coercion
74
+ * // With coercion - transforms value to target type
42
75
  * const result = await is('123', 'number', { coerce: true })
43
76
  * console.log(result.valid) // true
44
- * console.log(result.value) // 123 (as number)
77
+ * console.log(result.value) // 123 (as number, not string)
45
78
  * ```
79
+ *
80
+ * @see {@link ai-functions#is} for natural language boolean assertions
46
81
  */
47
82
  export declare function is(value: unknown, type: string | SimpleSchema, options?: IsOptions): Promise<TypeCheckResult>;
48
83
  export declare namespace is {
package/dist/is.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAsB,EAAE,CACtB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GAAG,YAAY,EAC3B,OAAO,GAAE,SAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAU1B;yBAdqB,EAAE;uBAqNC,OAAO,KAAG,OAAO,CAAC,eAAe,CAAC;qBAiBpC,OAAO,KAAG,OAAO,CAAC,eAAe,CAAC;sBA6BjC,OAAO,YAAW,SAAS,KAAQ,OAAO,CAAC,eAAe,CAAC;wBA+C1E,OAAO,aACH,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KACpD,OAAO,CAAC,eAAe,CAAC"}
1
+ {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,EAAE,CACtB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,GAAG,YAAY,EAC3B,OAAO,GAAE,SAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAU1B;yBAdqB,EAAE;uBAqNC,OAAO,KAAG,OAAO,CAAC,eAAe,CAAC;qBAgBpC,OAAO,KAAG,OAAO,CAAC,eAAe,CAAC;sBA6BjC,OAAO,YAAW,SAAS,KAAQ,OAAO,CAAC,eAAe,CAAC;wBAgD1E,OAAO,aACH,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KACpD,OAAO,CAAC,eAAe,CAAC"}
package/dist/is.js CHANGED
@@ -1,29 +1,62 @@
1
1
  /**
2
2
  * Type validation and checking functionality for digital workers
3
+ *
4
+ * IMPORTANT: Schema Validation vs Boolean Assertion
5
+ * --------------------------------------------------
6
+ * This module provides comprehensive type/schema validation,
7
+ * NOT simple boolean assertions.
8
+ *
9
+ * - `digital-workers.is()` - Validates values against types or schemas,
10
+ * returns detailed validation results with errors and optional coercion.
11
+ *
12
+ * - `ai-functions.is()` - Boolean assertion via LLM (e.g., `is\`${x} is valid\``)
13
+ * returns true/false based on natural language checking.
14
+ *
15
+ * Use digital-workers when you need:
16
+ * - Type validation with error messages
17
+ * - Schema validation with field-level errors
18
+ * - Value coercion (string to number, etc.)
19
+ * - Structured validation results
20
+ *
21
+ * Use ai-functions when you need:
22
+ * - Natural language boolean checks
23
+ * - LLM-based semantic validation
24
+ * - Template literal assertions
25
+ *
26
+ * @module
3
27
  */
4
28
  import { generateObject } from 'ai-functions';
5
29
  import { schema as convertSchema } from 'ai-functions';
6
30
  /**
7
- * Check if a value matches an expected type or schema
31
+ * Validate a value against a type or schema with detailed results.
8
32
  *
9
- * Uses AI-powered validation for complex types and schemas.
10
- * Can also perform type coercion when enabled.
33
+ * **Key Difference from ai-functions.is():**
34
+ * Unlike `ai-functions.is()` which is a boolean assertion using natural
35
+ * language (e.g., `is\`${email} is valid\`` returns true/false), this
36
+ * function performs structured type/schema validation and returns a
37
+ * `TypeCheckResult` with:
38
+ * - Validation status
39
+ * - Error messages for invalid fields
40
+ * - Optionally coerced values
41
+ *
42
+ * This is a **validation primitive**, not a boolean assertion primitive.
11
43
  *
12
44
  * @param value - The value to check
13
- * @param type - Type name or schema to validate against
14
- * @param options - Validation options
15
- * @returns Promise resolving to validation result
45
+ * @param type - Type name ('email', 'url', 'number') or schema to validate against
46
+ * @param options - Validation options (coerce, strict)
47
+ * @returns Promise resolving to TypeCheckResult with valid, value, and errors
16
48
  *
17
49
  * @example
18
50
  * ```ts
19
- * // Simple type checking
51
+ * // Simple type checking with result object
20
52
  * const result = await is('hello@example.com', 'email')
21
53
  * console.log(result.valid) // true
54
+ * console.log(result.errors) // undefined when valid
22
55
  * ```
23
56
  *
24
57
  * @example
25
58
  * ```ts
26
- * // Schema validation
59
+ * // Schema validation with detailed errors
27
60
  * const result = await is(
28
61
  * { name: 'John', age: 30 },
29
62
  * {
@@ -38,11 +71,13 @@ import { schema as convertSchema } from 'ai-functions';
38
71
  *
39
72
  * @example
40
73
  * ```ts
41
- * // With coercion
74
+ * // With coercion - transforms value to target type
42
75
  * const result = await is('123', 'number', { coerce: true })
43
76
  * console.log(result.valid) // true
44
- * console.log(result.value) // 123 (as number)
77
+ * console.log(result.value) // 123 (as number, not string)
45
78
  * ```
79
+ *
80
+ * @see {@link ai-functions#is} for natural language boolean assertions
46
81
  */
47
82
  export async function is(value, type, options = {}) {
48
83
  const { coerce = false, strict = false } = options;
@@ -84,8 +119,7 @@ async function validateSimpleType(value, type, options) {
84
119
  }
85
120
  return {
86
121
  valid: isValid,
87
- value: isValid ? value : undefined,
88
- errors: isValid ? undefined : [`Value is not a valid ${type}`],
122
+ ...(isValid ? { value } : { errors: [`Value is not a valid ${type}`] }),
89
123
  };
90
124
  }
91
125
  // Use AI for complex type validation
@@ -99,7 +133,9 @@ async function validateSimpleType(value, type, options) {
99
133
  system: `You are a type validation expert. Determine if a value matches an expected type.
100
134
 
101
135
  ${coerce ? 'If the value can be coerced to the expected type, provide the coerced value.' : ''}
102
- ${strict ? 'Be strict in your validation - require exact type matches.' : 'Be flexible - allow reasonable type conversions.'}`,
136
+ ${strict
137
+ ? 'Be strict in your validation - require exact type matches.'
138
+ : 'Be flexible - allow reasonable type conversions.'}`,
103
139
  prompt: `Validate if this value matches the expected type:
104
140
 
105
141
  Value: ${JSON.stringify(value)}
@@ -111,7 +147,7 @@ Determine if the value is valid for this type.`,
111
147
  return {
112
148
  valid: validation.valid,
113
149
  value: coerce && validation.coercedValue !== undefined ? validation.coercedValue : value,
114
- errors: validation.valid ? undefined : validation.errors,
150
+ ...(!validation.valid && { errors: validation.errors }),
115
151
  };
116
152
  }
117
153
  /**
@@ -162,7 +198,7 @@ Check if the value matches the schema structure and types.`,
162
198
  return {
163
199
  valid: validation.valid,
164
200
  value: coerce && validation.coercedValue !== undefined ? validation.coercedValue : value,
165
- errors: validation.valid ? undefined : validation.errors,
201
+ ...(!validation.valid && { errors: validation.errors }),
166
202
  };
167
203
  }
168
204
  }
@@ -218,8 +254,7 @@ is.email = async (value) => {
218
254
  const valid = typeof value === 'string' && emailRegex.test(value);
219
255
  return {
220
256
  valid,
221
- value: valid ? value : undefined,
222
- errors: valid ? undefined : ['Invalid email format'],
257
+ ...(valid ? { value } : { errors: ['Invalid email format'] }),
223
258
  };
224
259
  };
225
260
  /**
@@ -259,10 +294,11 @@ is.url = async (value) => {
259
294
  is.date = async (value, options = {}) => {
260
295
  const { coerce } = options;
261
296
  if (value instanceof Date) {
297
+ const isValid = !isNaN(value.getTime());
262
298
  return {
263
- valid: !isNaN(value.getTime()),
299
+ valid: isValid,
264
300
  value,
265
- errors: isNaN(value.getTime()) ? ['Invalid date'] : undefined,
301
+ ...(!isValid && { errors: ['Invalid date'] }),
266
302
  };
267
303
  }
268
304
  if (coerce) {
@@ -304,8 +340,7 @@ is.custom = async (value, validator) => {
304
340
  const valid = await validator(value);
305
341
  return {
306
342
  valid,
307
- value: valid ? value : undefined,
308
- errors: valid ? undefined : ['Custom validation failed'],
343
+ ...(valid ? { value } : { errors: ['Custom validation failed'] }),
309
344
  };
310
345
  }
311
346
  catch (error) {
package/dist/is.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"is.js","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"is.js","sourceRoot":"","sources":["../src/is.ts"],"names":[],"mappings":"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"}
package/dist/kpis.d.ts CHANGED
@@ -1,10 +1,15 @@
1
1
  /**
2
2
  * KPI and OKR tracking functionality for digital workers
3
3
  */
4
- import type { KPI, OKR } from './types.js';
4
+ import type { WorkerKPI, WorkerOKR } from './types.js';
5
+ export type { KPI, OKR, KeyResult } from 'org.ai';
5
6
  /**
6
7
  * Define and track Key Performance Indicators
7
8
  *
9
+ * Uses WorkerKPI which has a simpler interface with `current` and `target`
10
+ * as required number fields. For the full org.ai KPI with `id`, `value`,
11
+ * `category`, and `history`, use the KPI type directly.
12
+ *
8
13
  * @param definition - KPI definition or array of KPIs
9
14
  * @returns The defined KPI(s)
10
15
  *
@@ -44,15 +49,15 @@ import type { KPI, OKR } from './types.js';
44
49
  * ])
45
50
  * ```
46
51
  */
47
- export declare function kpis(definition: KPI): KPI;
48
- export declare function kpis(definition: KPI[]): KPI[];
52
+ export declare function kpis(definition: WorkerKPI): WorkerKPI;
53
+ export declare function kpis(definition: WorkerKPI[]): WorkerKPI[];
49
54
  export declare namespace kpis {
50
- var update: (kpi: KPI, current: number) => KPI;
51
- var progress: (kpi: Pick<KPI, "current" | "target">) => number;
52
- var onTrack: (kpi: Pick<KPI, "current" | "target">, threshold?: number) => boolean;
53
- var gap: (kpi: Pick<KPI, "current" | "target">) => number;
54
- var format: (kpi: KPI) => string;
55
- var compare: (previous: Pick<KPI, "current" | "target">, current: Pick<KPI, "current" | "target">) => {
55
+ var update: (kpi: WorkerKPI, current: number) => WorkerKPI;
56
+ var progress: (kpi: Pick<WorkerKPI, "current" | "target">) => number;
57
+ var onTrack: (kpi: Pick<WorkerKPI, "current" | "target">, threshold?: number) => boolean;
58
+ var gap: (kpi: Pick<WorkerKPI, "current" | "target">) => number;
59
+ var format: (kpi: WorkerKPI) => string;
60
+ var compare: (previous: Pick<WorkerKPI, "current" | "target">, current: Pick<WorkerKPI, "current" | "target">) => {
56
61
  delta: number;
57
62
  percentChange: number;
58
63
  improved: boolean;
@@ -61,6 +66,10 @@ export declare namespace kpis {
61
66
  /**
62
67
  * Define OKRs (Objectives and Key Results)
63
68
  *
69
+ * Uses WorkerOKR which has WorkerRef for owner.
70
+ * For the full org.ai OKR with `id`, `status`, `period`, etc.,
71
+ * use the OKR type directly.
72
+ *
64
73
  * @param definition - OKR definition
65
74
  * @returns The defined OKR
66
75
  *
@@ -88,16 +97,16 @@ export declare namespace kpis {
88
97
  * unit: '%',
89
98
  * },
90
99
  * ],
91
- * owner: 'engineering-team',
100
+ * owner: { id: 'engineering-team', type: 'agent' },
92
101
  * dueDate: new Date('2024-03-31'),
93
102
  * })
94
103
  * ```
95
104
  */
96
- export declare function okrs(definition: OKR): OKR;
105
+ export declare function okrs(definition: WorkerOKR): WorkerOKR;
97
106
  export declare namespace okrs {
98
- var progress: (okr: OKR) => number;
99
- var updateKeyResult: (okr: OKR, keyResultName: string, current: number) => OKR;
100
- var onTrack: (okr: OKR, threshold?: number) => boolean;
101
- var format: (okr: OKR) => string;
107
+ var progress: (okr: WorkerOKR) => number;
108
+ var updateKeyResult: (okr: WorkerOKR, keyResultName: string, current: number) => WorkerOKR;
109
+ var onTrack: (okr: WorkerOKR, threshold?: number) => boolean;
110
+ var format: (okr: WorkerOKR) => string;
102
111
  }
103
112
  //# sourceMappingURL=kpis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kpis.d.ts","sourceRoot":"","sources":["../src/kpis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAAA;AAC1C,wBAAgB,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;yBAA9B,IAAI;sBAmBA,GAAG,WAAW,MAAM,KAAG,GAAG;wBA4BxB,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAG,MAAM;uBAkBzC,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,yBAAoB,OAAO;mBAgB9D,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAG,MAAM;sBAuBrC,GAAG,KAAG,MAAM;4BAwBpB,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,WAChC,IAAI,CAAC,GAAG,EAAE,SAAS,GAAG,QAAQ,CAAC,KACvC;QACD,KAAK,EAAE,MAAM,CAAA;QACb,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,OAAO,CAAA;KAClB;;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAEzC;yBAFe,IAAI;wBAgBE,GAAG,KAAG,MAAM;+BA4B3B,GAAG,iBACO,MAAM,WACZ,MAAM,KACd,GAAG;uBAsBe,GAAG,yBAAoB,OAAO;sBAoB/B,GAAG,KAAG,MAAM"}
1
+ {"version":3,"file":"kpis.d.ts","sourceRoot":"","sources":["../src/kpis.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGtD,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAA;AACtD,wBAAgB,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAA;yBAA1C,IAAI;sBAmBA,SAAS,WAAW,MAAM,KAAG,SAAS;wBA4BpC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAG,MAAM;uBAiB/C,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,yBAAoB,OAAO;mBAgBpE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,KAAG,MAAM;sBAuB3C,SAAS,KAAG,MAAM;4BAwB1B,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,WACtC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,KAC7C;QACD,KAAK,EAAE,MAAM,CAAA;QACb,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,OAAO,CAAA;KAClB;;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,CAErD;yBAFe,IAAI;wBAgBE,SAAS,KAAG,MAAM;+BA2BX,SAAS,iBAAiB,MAAM,WAAW,MAAM,KAAG,SAAS;uBAoBrE,SAAS,yBAAoB,OAAO;sBAoBrC,SAAS,KAAG,MAAM"}
package/dist/kpis.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * KPI and OKR tracking functionality for digital workers
3
3
  */
4
+ import { calculateProgress, isOnTrack, calculateGap } from 'org.ai';
4
5
  export function kpis(definition) {
5
6
  return definition;
6
7
  }
@@ -46,9 +47,7 @@ kpis.update = (kpi, current) => {
46
47
  * ```
47
48
  */
48
49
  kpis.progress = (kpi) => {
49
- if (kpi.target === 0)
50
- return 0;
51
- return Math.min(1, Math.max(0, kpi.current / kpi.target));
50
+ return calculateProgress(kpi);
52
51
  };
53
52
  /**
54
53
  * Check if a KPI is on track
@@ -64,7 +63,7 @@ kpis.progress = (kpi) => {
64
63
  * ```
65
64
  */
66
65
  kpis.onTrack = (kpi, threshold = 0.8) => {
67
- return kpis.progress(kpi) >= threshold;
66
+ return isOnTrack(kpi, threshold);
68
67
  };
69
68
  /**
70
69
  * Get the gap to target
@@ -79,7 +78,7 @@ kpis.onTrack = (kpi, threshold = 0.8) => {
79
78
  * ```
80
79
  */
81
80
  kpis.gap = (kpi) => {
82
- return kpi.target - kpi.current;
81
+ return calculateGap(kpi);
83
82
  };
84
83
  /**
85
84
  * Format a KPI for display
@@ -123,9 +122,7 @@ kpis.format = (kpi) => {
123
122
  */
124
123
  kpis.compare = (previous, current) => {
125
124
  const delta = current.current - previous.current;
126
- const percentChange = previous.current !== 0
127
- ? (delta / previous.current) * 100
128
- : 0;
125
+ const percentChange = previous.current !== 0 ? (delta / previous.current) * 100 : 0;
129
126
  // Improved if we got closer to the target
130
127
  const previousGap = Math.abs(previous.target - previous.current);
131
128
  const currentGap = Math.abs(current.target - current.current);
@@ -139,6 +136,10 @@ kpis.compare = (previous, current) => {
139
136
  /**
140
137
  * Define OKRs (Objectives and Key Results)
141
138
  *
139
+ * Uses WorkerOKR which has WorkerRef for owner.
140
+ * For the full org.ai OKR with `id`, `status`, `period`, etc.,
141
+ * use the OKR type directly.
142
+ *
142
143
  * @param definition - OKR definition
143
144
  * @returns The defined OKR
144
145
  *
@@ -166,7 +167,7 @@ kpis.compare = (previous, current) => {
166
167
  * unit: '%',
167
168
  * },
168
169
  * ],
169
- * owner: 'engineering-team',
170
+ * owner: { id: 'engineering-team', type: 'agent' },
170
171
  * dueDate: new Date('2024-03-31'),
171
172
  * })
172
173
  * ```
@@ -212,10 +213,10 @@ okrs.progress = (okr) => {
212
213
  * ```
213
214
  */
214
215
  okrs.updateKeyResult = (okr, keyResultName, current) => {
216
+ const { progress: _progress, ...rest } = okr;
215
217
  return {
216
- ...okr,
217
- keyResults: okr.keyResults.map((kr) => kr.name === keyResultName ? { ...kr, current } : kr),
218
- progress: undefined, // Will be recalculated
218
+ ...rest,
219
+ keyResults: okr.keyResults.map((kr) => (kr.name === keyResultName ? { ...kr, current } : kr)),
219
220
  };
220
221
  };
221
222
  /**
@@ -257,11 +258,12 @@ okrs.format = (okr) => {
257
258
  ...okr.keyResults.map((kr) => {
258
259
  const krProgress = kpis.progress(kr);
259
260
  const krPercent = Math.round(krProgress * 100);
260
- return ` ${kr.name}: ${kr.current}/${kr.target} ${kr.unit} (${krPercent}%)`;
261
+ return ` - ${kr.name}: ${kr.current}/${kr.target} ${kr.unit} (${krPercent}%)`;
261
262
  }),
262
263
  ];
263
264
  if (okr.owner) {
264
- lines.push(` Owner: ${okr.owner}`);
265
+ const ownerDisplay = typeof okr.owner === 'string' ? okr.owner : okr.owner.id;
266
+ lines.push(` Owner: ${ownerDisplay}`);
265
267
  }
266
268
  if (okr.dueDate) {
267
269
  lines.push(` Due: ${okr.dueDate.toLocaleDateString()}`);
package/dist/kpis.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kpis.js","sourceRoot":"","sources":["../src/kpis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kpis.js","sourceRoot":"","sources":["../src/kpis.ts"],"names":[],"mappings":"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"}