@elevasis/core 0.15.1 → 0.17.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 (72) hide show
  1. package/dist/index.d.ts +1662 -23
  2. package/dist/index.js +171 -24
  3. package/dist/knowledge/index.d.ts +1340 -0
  4. package/dist/knowledge/index.js +138 -0
  5. package/dist/organization-model/index.d.ts +1662 -23
  6. package/dist/organization-model/index.js +171 -24
  7. package/dist/test-utils/index.d.ts +711 -10
  8. package/dist/test-utils/index.js +159 -16
  9. package/package.json +7 -3
  10. package/src/__tests__/publish.test.ts +14 -13
  11. package/src/__tests__/template-core-compatibility.test.ts +4 -4
  12. package/src/_gen/__tests__/__snapshots__/contracts.md.snap +1265 -1154
  13. package/src/auth/multi-tenancy/index.ts +3 -0
  14. package/src/auth/multi-tenancy/theme-presets.ts +45 -0
  15. package/src/auth/multi-tenancy/types.ts +57 -83
  16. package/src/auth/multi-tenancy/users/api-schemas.ts +165 -194
  17. package/src/business/acquisition/activity-events.ts +1 -1
  18. package/src/business/acquisition/api-schemas.ts +1196 -1177
  19. package/src/business/acquisition/crm-state-actions.test.ts +139 -139
  20. package/src/business/acquisition/types.ts +381 -390
  21. package/src/business/crm/api-schemas.ts +40 -0
  22. package/src/business/crm/index.ts +1 -0
  23. package/src/business/deals/api-schemas.ts +79 -0
  24. package/src/business/deals/index.ts +1 -0
  25. package/src/business/projects/types.ts +124 -88
  26. package/src/execution/core/runner-types.ts +61 -80
  27. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +105 -104
  28. package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1474 -1473
  29. package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +103 -102
  30. package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-tools.ts +182 -179
  31. package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +310 -309
  32. package/src/execution/engine/tools/integration/tool.ts +255 -253
  33. package/src/execution/engine/tools/lead-service-types.ts +895 -894
  34. package/src/execution/engine/tools/messages.ts +43 -0
  35. package/src/execution/engine/tools/platform/acquisition/types.ts +2 -1
  36. package/src/execution/engine/tools/platform/email/types.ts +97 -96
  37. package/src/execution/engine/tools/types.ts +234 -233
  38. package/src/execution/engine/workflow/types.ts +195 -193
  39. package/src/execution/external/api-schemas.ts +40 -0
  40. package/src/execution/external/index.ts +1 -0
  41. package/src/knowledge/README.md +32 -0
  42. package/src/knowledge/__tests__/queries.test.ts +504 -0
  43. package/src/knowledge/format.ts +99 -0
  44. package/src/knowledge/index.ts +5 -0
  45. package/src/knowledge/published.ts +5 -0
  46. package/src/knowledge/queries.ts +256 -0
  47. package/src/organization-model/__tests__/defaults.test.ts +172 -172
  48. package/src/organization-model/__tests__/foundation.test.ts +7 -7
  49. package/src/organization-model/__tests__/icons.test.ts +27 -0
  50. package/src/organization-model/__tests__/knowledge.test.ts +214 -0
  51. package/src/organization-model/contracts.ts +17 -15
  52. package/src/organization-model/defaults.ts +74 -19
  53. package/src/organization-model/domains/knowledge.ts +53 -0
  54. package/src/organization-model/domains/navigation.ts +416 -399
  55. package/src/organization-model/domains/shared.ts +6 -5
  56. package/src/organization-model/foundation.ts +10 -6
  57. package/src/organization-model/graph/build.ts +209 -182
  58. package/src/organization-model/graph/schema.ts +37 -34
  59. package/src/organization-model/graph/types.ts +47 -31
  60. package/src/organization-model/icons.ts +81 -0
  61. package/src/organization-model/index.ts +8 -3
  62. package/src/organization-model/organization-model.mdx +1 -1
  63. package/src/organization-model/published.ts +103 -86
  64. package/src/organization-model/schema.ts +90 -85
  65. package/src/organization-model/types.ts +40 -33
  66. package/src/platform/index.ts +23 -27
  67. package/src/platform/registry/index.ts +0 -4
  68. package/src/platform/registry/resource-registry.ts +0 -77
  69. package/src/platform/registry/serialized-types.ts +148 -219
  70. package/src/platform/registry/stats-types.ts +60 -60
  71. package/src/reference/_generated/contracts.md +1265 -1154
  72. package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +0 -393
@@ -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
+ }