@elevasis/core 0.15.1 → 0.16.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 (68) hide show
  1. package/dist/index.d.ts +1662 -23
  2. package/dist/index.js +171 -24
  3. package/dist/organization-model/index.d.ts +1662 -23
  4. package/dist/organization-model/index.js +171 -24
  5. package/dist/test-utils/index.d.ts +711 -10
  6. package/dist/test-utils/index.js +159 -16
  7. package/package.json +7 -3
  8. package/src/__tests__/publish.test.ts +14 -13
  9. package/src/__tests__/template-core-compatibility.test.ts +4 -4
  10. package/src/_gen/__tests__/__snapshots__/contracts.md.snap +305 -201
  11. package/src/auth/multi-tenancy/index.ts +3 -0
  12. package/src/auth/multi-tenancy/theme-presets.ts +45 -0
  13. package/src/auth/multi-tenancy/types.ts +57 -83
  14. package/src/auth/multi-tenancy/users/api-schemas.ts +165 -194
  15. package/src/business/acquisition/activity-events.ts +1 -1
  16. package/src/business/acquisition/api-schemas.ts +1196 -1177
  17. package/src/business/acquisition/crm-state-actions.test.ts +139 -139
  18. package/src/business/acquisition/types.ts +381 -390
  19. package/src/business/crm/api-schemas.ts +40 -0
  20. package/src/business/crm/index.ts +1 -0
  21. package/src/business/deals/api-schemas.ts +79 -0
  22. package/src/business/deals/index.ts +1 -0
  23. package/src/business/projects/types.ts +124 -88
  24. package/src/execution/core/runner-types.ts +61 -80
  25. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +105 -104
  26. package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1474 -1473
  27. package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +103 -102
  28. package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-tools.ts +182 -179
  29. package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +310 -309
  30. package/src/execution/engine/tools/integration/tool.ts +255 -253
  31. package/src/execution/engine/tools/lead-service-types.ts +895 -894
  32. package/src/execution/engine/tools/messages.ts +43 -0
  33. package/src/execution/engine/tools/platform/acquisition/types.ts +2 -1
  34. package/src/execution/engine/tools/platform/email/types.ts +97 -96
  35. package/src/execution/engine/tools/types.ts +234 -233
  36. package/src/execution/engine/workflow/types.ts +195 -193
  37. package/src/execution/external/api-schemas.ts +40 -0
  38. package/src/execution/external/index.ts +1 -0
  39. package/src/knowledge/README.md +32 -0
  40. package/src/knowledge/__tests__/queries.test.ts +504 -0
  41. package/src/knowledge/format.ts +99 -0
  42. package/src/knowledge/index.ts +5 -0
  43. package/src/knowledge/queries.ts +256 -0
  44. package/src/organization-model/__tests__/defaults.test.ts +172 -172
  45. package/src/organization-model/__tests__/foundation.test.ts +7 -7
  46. package/src/organization-model/__tests__/icons.test.ts +27 -0
  47. package/src/organization-model/__tests__/knowledge.test.ts +214 -0
  48. package/src/organization-model/contracts.ts +17 -15
  49. package/src/organization-model/defaults.ts +74 -19
  50. package/src/organization-model/domains/knowledge.ts +53 -0
  51. package/src/organization-model/domains/navigation.ts +416 -399
  52. package/src/organization-model/domains/shared.ts +6 -5
  53. package/src/organization-model/foundation.ts +10 -6
  54. package/src/organization-model/graph/build.ts +209 -182
  55. package/src/organization-model/graph/schema.ts +37 -34
  56. package/src/organization-model/graph/types.ts +47 -31
  57. package/src/organization-model/icons.ts +81 -0
  58. package/src/organization-model/index.ts +8 -3
  59. package/src/organization-model/organization-model.mdx +1 -1
  60. package/src/organization-model/published.ts +103 -86
  61. package/src/organization-model/schema.ts +90 -85
  62. package/src/organization-model/types.ts +40 -33
  63. package/src/platform/index.ts +23 -27
  64. package/src/platform/registry/index.ts +0 -4
  65. package/src/platform/registry/resource-registry.ts +0 -77
  66. package/src/platform/registry/serialized-types.ts +148 -219
  67. package/src/platform/registry/stats-types.ts +60 -60
  68. package/src/reference/_generated/contracts.md +1265 -1154
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Tool message protocol types (SSOT)
3
+ *
4
+ * Shared by worker-side (packages/sdk) and parent-side (apps/api) to
5
+ * describe the postMessage() messages that cross the worker thread boundary.
6
+ *
7
+ * ToolCallMessage — worker → parent (outbound request)
8
+ * ToolCallResponse — parent → worker (inbound response)
9
+ */
10
+
11
+ import type { ToolingErrorType } from './types'
12
+
13
+ /**
14
+ * Token usage metadata optionally attached to a ToolCallResponse.
15
+ * Populated for LLM tool calls where cost accounting is available.
16
+ */
17
+ export interface TokenUsage {
18
+ inputTokens: number
19
+ outputTokens: number
20
+ cost?: number
21
+ }
22
+
23
+ /** Outbound tool-call from worker to parent */
24
+ export interface ToolCallMessage {
25
+ type: 'tool-call'
26
+ id: string
27
+ tool: string
28
+ method: string
29
+ params: unknown
30
+ credential?: string
31
+ }
32
+
33
+ /** Inbound tool-result from parent to worker */
34
+ export interface ToolCallResponse {
35
+ type: 'tool-result'
36
+ id: string
37
+ result?: unknown
38
+ error?: string
39
+ /** Structured error code from platform (ToolingErrorType) */
40
+ code?: ToolingErrorType
41
+ /** Token usage metadata (LLM tool calls only) */
42
+ usage?: TokenUsage
43
+ }
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod'
2
2
  import { isProspectingBuildTemplateId } from '../../../../../business/acquisition/build-templates'
3
+ import { EmailSchema } from '../../../../../platform/utils/validation'
3
4
 
4
5
  // ============================================
5
6
  // LIST SCHEMAS
@@ -134,7 +135,7 @@ export const CompanyArrayOutputSchema = z.array(CompanyOutputSchema)
134
135
  // ============================================
135
136
 
136
137
  export const CreateContactInputSchema = z.object({
137
- email: z.string().email(),
138
+ email: EmailSchema,
138
139
  companyId: z.string().uuid().optional(),
139
140
  firstName: z.string().optional(),
140
141
  lastName: z.string().optional(),
@@ -1,96 +1,97 @@
1
- /**
2
- * Platform Email Tool Types
3
- *
4
- * Zod schemas and inferred types for platform email sending.
5
- * Supports three targeting modes: explicit userIds, role-based, or broadcast.
6
- */
7
-
8
- import { z } from 'zod'
9
-
10
- // =============================================================================
11
- // INPUT SCHEMA
12
- // =============================================================================
13
-
14
- /**
15
- * Input schema for sending platform emails
16
- *
17
- * Targeting modes (exactly one required):
18
- * - userIds: Explicit list of user IDs to email
19
- * - targetRole: Role to target (e.g., "admin")
20
- * - targetAll: Send to all org members
21
- *
22
- * Content (at least one required):
23
- * - html: HTML email body
24
- * - text: Plain text email body
25
- */
26
- export const SendPlatformEmailInputSchema = z
27
- .object({
28
- // Targeting (exactly one required)
29
- userIds: z.array(z.string().uuid()).optional().describe('Explicit list of user IDs to email'),
30
- targetRole: z.string().optional().describe('Role to target (e.g., "admin")'),
31
- targetAll: z.boolean().optional().describe('Send to all org members'),
32
-
33
- // Content
34
- subject: z.string().min(1).max(200),
35
- html: z.string().optional(),
36
- text: z.string().optional(),
37
-
38
- // Optional
39
- replyTo: z.string().email().optional(),
40
- tags: z
41
- .array(
42
- z.object({
43
- name: z.string(),
44
- value: z.string()
45
- })
46
- )
47
- .optional()
48
- })
49
- .refine(
50
- (data) => {
51
- const modes = [data.userIds?.length, data.targetRole, data.targetAll].filter(Boolean)
52
- return modes.length === 1
53
- },
54
- { message: 'Exactly one targeting mode required: userIds, targetRole, or targetAll' }
55
- )
56
- .refine((data) => data.html || data.text, { message: 'Must provide either html or text body' })
57
-
58
- export type SendPlatformEmailInput = z.infer<typeof SendPlatformEmailInputSchema>
59
-
60
- // =============================================================================
61
- // OUTPUT SCHEMA
62
- // =============================================================================
63
-
64
- /**
65
- * Output schema for platform email send result
66
- * Follows partial success pattern (similar to BatchProcessResult)
67
- */
68
- export const SendPlatformEmailOutputSchema = z.object({
69
- sent: z.number().int(),
70
- failed: z.number().int(),
71
- errors: z
72
- .array(
73
- z.object({
74
- userId: z.string().uuid(),
75
- email: z.string().email(),
76
- error: z.string()
77
- })
78
- )
79
- .optional()
80
- })
81
-
82
- export type SendPlatformEmailOutput = z.infer<typeof SendPlatformEmailOutputSchema>
83
-
84
- // =============================================================================
85
- // TOOL CONFIG
86
- // =============================================================================
87
-
88
- /**
89
- * Configuration for creating a platform email tool
90
- */
91
- export interface PlatformEmailToolConfig {
92
- /** Unique name for the tool */
93
- name: string
94
- /** Description of what the tool does (shown to LLM) */
95
- description: string
96
- }
1
+ /**
2
+ * Platform Email Tool Types
3
+ *
4
+ * Zod schemas and inferred types for platform email sending.
5
+ * Supports three targeting modes: explicit userIds, role-based, or broadcast.
6
+ */
7
+
8
+ import { z } from 'zod'
9
+ import { EmailSchema } from '../../../../../platform/utils/validation'
10
+
11
+ // =============================================================================
12
+ // INPUT SCHEMA
13
+ // =============================================================================
14
+
15
+ /**
16
+ * Input schema for sending platform emails
17
+ *
18
+ * Targeting modes (exactly one required):
19
+ * - userIds: Explicit list of user IDs to email
20
+ * - targetRole: Role to target (e.g., "admin")
21
+ * - targetAll: Send to all org members
22
+ *
23
+ * Content (at least one required):
24
+ * - html: HTML email body
25
+ * - text: Plain text email body
26
+ */
27
+ export const SendPlatformEmailInputSchema = z
28
+ .object({
29
+ // Targeting (exactly one required)
30
+ userIds: z.array(z.string().uuid()).optional().describe('Explicit list of user IDs to email'),
31
+ targetRole: z.string().optional().describe('Role to target (e.g., "admin")'),
32
+ targetAll: z.boolean().optional().describe('Send to all org members'),
33
+
34
+ // Content
35
+ subject: z.string().min(1).max(200),
36
+ html: z.string().optional(),
37
+ text: z.string().optional(),
38
+
39
+ // Optional
40
+ replyTo: EmailSchema.optional(),
41
+ tags: z
42
+ .array(
43
+ z.object({
44
+ name: z.string(),
45
+ value: z.string()
46
+ })
47
+ )
48
+ .optional()
49
+ })
50
+ .refine(
51
+ (data) => {
52
+ const modes = [data.userIds?.length, data.targetRole, data.targetAll].filter(Boolean)
53
+ return modes.length === 1
54
+ },
55
+ { message: 'Exactly one targeting mode required: userIds, targetRole, or targetAll' }
56
+ )
57
+ .refine((data) => data.html || data.text, { message: 'Must provide either html or text body' })
58
+
59
+ export type SendPlatformEmailInput = z.infer<typeof SendPlatformEmailInputSchema>
60
+
61
+ // =============================================================================
62
+ // OUTPUT SCHEMA
63
+ // =============================================================================
64
+
65
+ /**
66
+ * Output schema for platform email send result
67
+ * Follows partial success pattern (similar to BatchProcessResult)
68
+ */
69
+ export const SendPlatformEmailOutputSchema = z.object({
70
+ sent: z.number().int(),
71
+ failed: z.number().int(),
72
+ errors: z
73
+ .array(
74
+ z.object({
75
+ userId: z.string().uuid(),
76
+ email: EmailSchema,
77
+ error: z.string()
78
+ })
79
+ )
80
+ .optional()
81
+ })
82
+
83
+ export type SendPlatformEmailOutput = z.infer<typeof SendPlatformEmailOutputSchema>
84
+
85
+ // =============================================================================
86
+ // TOOL CONFIG
87
+ // =============================================================================
88
+
89
+ /**
90
+ * Configuration for creating a platform email tool
91
+ */
92
+ export interface PlatformEmailToolConfig {
93
+ /** Unique name for the tool */
94
+ name: string
95
+ /** Description of what the tool does (shown to LLM) */
96
+ description: string
97
+ }