@happyvertical/smrt-sales 0.55.6 → 0.55.8
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/dist/agreements.js +1 -1
- package/dist/chunks/__smrt-register__-DFr5ksXZ.js +6 -0
- package/dist/chunks/__smrt-register__-DFr5ksXZ.js.map +1 -0
- package/dist/chunks/{crm-B-irXbbr.js → crm-DaUkdNoG.js} +126 -55
- package/dist/chunks/crm-DaUkdNoG.js.map +1 -0
- package/dist/commissions.js +1 -1
- package/dist/crm/index.d.ts +1 -0
- package/dist/crm/index.d.ts.map +1 -1
- package/dist/crm/models/Lead.d.ts.map +1 -1
- package/dist/crm/models/Opportunity.d.ts.map +1 -1
- package/dist/crm/models/PipelineDefinition.d.ts.map +1 -1
- package/dist/crm/models/PipelineStage.d.ts.map +1 -1
- package/dist/crm/models/SalesActivity.d.ts.map +1 -1
- package/dist/crm/recipes.d.ts +115 -0
- package/dist/crm/recipes.d.ts.map +1 -0
- package/dist/crm.js +3 -3
- package/dist/index.js +3 -3
- package/dist/manifest.json +323 -35
- package/dist/referrals.js +1 -1
- package/dist/smrt-knowledge.json +234 -39
- package/package.json +8 -8
- package/dist/chunks/__smrt-register__-eOj6oe0J.js +0 -6
- package/dist/chunks/__smrt-register__-eOj6oe0J.js.map +0 -1
- package/dist/chunks/crm-B-irXbbr.js.map +0 -1
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-sales",
|
|
6
|
-
"packageVersion": "0.55.
|
|
6
|
+
"packageVersion": "0.55.8",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "1887146936b7a4eb60c24a5b62240cc447fba429693c4330dd90683323e85362",
|
|
11
|
+
"packageJson": "90f6fd25c8e143e0a5f0ed202edb263576b8e59195a6a9b9c19a9a2abb7d78ec",
|
|
12
12
|
"agents": "3100099d7cef116237e4deb4f83e32d836f3cc26e0f68a7dd55f14de942eda11",
|
|
13
13
|
"moduleDoc:agents/agreements.md": "eb6ff147a0f60ee627d3337e8e9394d06fda955b4a4fff228537a9bd2803f886",
|
|
14
14
|
"moduleDoc:agents/commissions.md": "e047024aafe5edcf072c1a6b7ea253c24cb15f2fa1beb2edd13651e735921f73",
|
|
@@ -3120,6 +3120,7 @@
|
|
|
3120
3120
|
"name": "CommissionAdjustmentOperation",
|
|
3121
3121
|
"qualifiedName": "@happyvertical/smrt-sales:CommissionAdjustmentOperation",
|
|
3122
3122
|
"collection": "commissionadjustmentoperations",
|
|
3123
|
+
"description": "One globally unique adjustment operation UUID mapped to its adjustment.",
|
|
3123
3124
|
"tableName": "commission_adjustment_operations",
|
|
3124
3125
|
"packageName": "@happyvertical/smrt-sales",
|
|
3125
3126
|
"extends": "SmrtObject",
|
|
@@ -5395,6 +5396,7 @@
|
|
|
5395
5396
|
"qualifiedName": "@happyvertical/smrt-sales:Lead",
|
|
5396
5397
|
"displayLabelField": "name",
|
|
5397
5398
|
"collection": "leads",
|
|
5399
|
+
"description": "Lead is an identified prospect: a person/organization that showed intent but has not yet been qualified into an Opportunity.",
|
|
5398
5400
|
"tableName": "leads",
|
|
5399
5401
|
"packageName": "@happyvertical/smrt-sales",
|
|
5400
5402
|
"extends": "SmrtObject",
|
|
@@ -5410,35 +5412,40 @@
|
|
|
5410
5412
|
"type": "text",
|
|
5411
5413
|
"required": true,
|
|
5412
5414
|
"columnType": "TEXT",
|
|
5413
|
-
"default": ""
|
|
5415
|
+
"default": "",
|
|
5416
|
+
"description": "What you call this lead."
|
|
5414
5417
|
},
|
|
5415
5418
|
{
|
|
5416
5419
|
"name": "contactName",
|
|
5417
5420
|
"type": "text",
|
|
5418
5421
|
"required": false,
|
|
5419
5422
|
"columnType": "TEXT",
|
|
5420
|
-
"default": ""
|
|
5423
|
+
"default": "",
|
|
5424
|
+
"description": "The person to talk to."
|
|
5421
5425
|
},
|
|
5422
5426
|
{
|
|
5423
5427
|
"name": "email",
|
|
5424
5428
|
"type": "text",
|
|
5425
5429
|
"required": false,
|
|
5426
5430
|
"columnType": "TEXT",
|
|
5427
|
-
"default": ""
|
|
5431
|
+
"default": "",
|
|
5432
|
+
"description": "Their email address."
|
|
5428
5433
|
},
|
|
5429
5434
|
{
|
|
5430
5435
|
"name": "phone",
|
|
5431
5436
|
"type": "text",
|
|
5432
5437
|
"required": false,
|
|
5433
5438
|
"columnType": "TEXT",
|
|
5434
|
-
"default": ""
|
|
5439
|
+
"default": "",
|
|
5440
|
+
"description": "Their phone number."
|
|
5435
5441
|
},
|
|
5436
5442
|
{
|
|
5437
5443
|
"name": "organizationName",
|
|
5438
5444
|
"type": "text",
|
|
5439
5445
|
"required": false,
|
|
5440
5446
|
"columnType": "TEXT",
|
|
5441
|
-
"default": ""
|
|
5447
|
+
"default": "",
|
|
5448
|
+
"description": "The company they are with."
|
|
5442
5449
|
},
|
|
5443
5450
|
{
|
|
5444
5451
|
"name": "profileId",
|
|
@@ -5452,14 +5459,16 @@
|
|
|
5452
5459
|
"type": "foreignKey",
|
|
5453
5460
|
"required": false,
|
|
5454
5461
|
"related": "SalesRepresentative",
|
|
5455
|
-
"columnType": "UUID"
|
|
5462
|
+
"columnType": "UUID",
|
|
5463
|
+
"description": "The sales representative who owns this lead."
|
|
5456
5464
|
},
|
|
5457
5465
|
{
|
|
5458
5466
|
"name": "status",
|
|
5459
5467
|
"type": "text",
|
|
5460
5468
|
"required": false,
|
|
5461
5469
|
"columnType": "TEXT",
|
|
5462
|
-
"default": "new"
|
|
5470
|
+
"default": "new",
|
|
5471
|
+
"description": "Where the lead stands, for example new or qualified."
|
|
5463
5472
|
},
|
|
5464
5473
|
{
|
|
5465
5474
|
"name": "sourceKind",
|
|
@@ -5784,6 +5793,7 @@
|
|
|
5784
5793
|
"qualifiedName": "@happyvertical/smrt-sales:Opportunity",
|
|
5785
5794
|
"displayLabelField": "name",
|
|
5786
5795
|
"collection": "opportunities",
|
|
5796
|
+
"description": "Opportunity is a qualified engagement: a deal with an expected value moving through the stages of a PipelineDefinition.",
|
|
5787
5797
|
"tableName": "opportunities",
|
|
5788
5798
|
"packageName": "@happyvertical/smrt-sales",
|
|
5789
5799
|
"extends": "SmrtObject",
|
|
@@ -5799,69 +5809,79 @@
|
|
|
5799
5809
|
"type": "text",
|
|
5800
5810
|
"required": true,
|
|
5801
5811
|
"columnType": "TEXT",
|
|
5802
|
-
"default": ""
|
|
5812
|
+
"default": "",
|
|
5813
|
+
"description": "What you call this deal."
|
|
5803
5814
|
},
|
|
5804
5815
|
{
|
|
5805
5816
|
"name": "leadId",
|
|
5806
5817
|
"type": "foreignKey",
|
|
5807
5818
|
"required": false,
|
|
5808
5819
|
"related": "Lead",
|
|
5809
|
-
"columnType": "UUID"
|
|
5820
|
+
"columnType": "UUID",
|
|
5821
|
+
"description": "The lead it came from."
|
|
5810
5822
|
},
|
|
5811
5823
|
{
|
|
5812
5824
|
"name": "ownerRepId",
|
|
5813
5825
|
"type": "foreignKey",
|
|
5814
5826
|
"required": false,
|
|
5815
5827
|
"related": "SalesRepresentative",
|
|
5816
|
-
"columnType": "UUID"
|
|
5828
|
+
"columnType": "UUID",
|
|
5829
|
+
"description": "The sales representative who owns this deal."
|
|
5817
5830
|
},
|
|
5818
5831
|
{
|
|
5819
5832
|
"name": "pipelineId",
|
|
5820
5833
|
"type": "foreignKey",
|
|
5821
5834
|
"required": false,
|
|
5822
5835
|
"related": "PipelineDefinition",
|
|
5823
|
-
"columnType": "UUID"
|
|
5836
|
+
"columnType": "UUID",
|
|
5837
|
+
"description": "The pipeline it moves through."
|
|
5824
5838
|
},
|
|
5825
5839
|
{
|
|
5826
5840
|
"name": "stageId",
|
|
5827
5841
|
"type": "foreignKey",
|
|
5828
5842
|
"required": false,
|
|
5829
5843
|
"related": "PipelineStage",
|
|
5830
|
-
"columnType": "UUID"
|
|
5844
|
+
"columnType": "UUID",
|
|
5845
|
+
"description": "The stage it is at now."
|
|
5831
5846
|
},
|
|
5832
5847
|
{
|
|
5833
5848
|
"name": "expectedValueCents",
|
|
5834
5849
|
"type": "integer",
|
|
5835
5850
|
"required": false,
|
|
5836
5851
|
"columnType": "INTEGER",
|
|
5837
|
-
"default": 0
|
|
5852
|
+
"default": 0,
|
|
5853
|
+
"description": "What you expect the deal to be worth, in cents."
|
|
5838
5854
|
},
|
|
5839
5855
|
{
|
|
5840
5856
|
"name": "currency",
|
|
5841
5857
|
"type": "text",
|
|
5842
5858
|
"required": false,
|
|
5843
5859
|
"columnType": "TEXT",
|
|
5844
|
-
"default": "USD"
|
|
5860
|
+
"default": "USD",
|
|
5861
|
+
"description": "The currency of that value."
|
|
5845
5862
|
},
|
|
5846
5863
|
{
|
|
5847
5864
|
"name": "probability",
|
|
5848
5865
|
"type": "decimal",
|
|
5849
5866
|
"required": false,
|
|
5850
5867
|
"columnType": "REAL",
|
|
5851
|
-
"default": 0
|
|
5868
|
+
"default": 0,
|
|
5869
|
+
"description": "How likely it is to close, as a decimal (0.5 is 50%)."
|
|
5852
5870
|
},
|
|
5853
5871
|
{
|
|
5854
5872
|
"name": "expectedCloseAt",
|
|
5855
5873
|
"type": "datetime",
|
|
5856
5874
|
"required": false,
|
|
5857
|
-
"columnType": "TIMESTAMP"
|
|
5875
|
+
"columnType": "TIMESTAMP",
|
|
5876
|
+
"description": "When you expect it to close."
|
|
5858
5877
|
},
|
|
5859
5878
|
{
|
|
5860
5879
|
"name": "status",
|
|
5861
5880
|
"type": "text",
|
|
5862
5881
|
"required": false,
|
|
5863
5882
|
"columnType": "TEXT",
|
|
5864
|
-
"default": "open"
|
|
5883
|
+
"default": "open",
|
|
5884
|
+
"description": "open, won or lost."
|
|
5865
5885
|
},
|
|
5866
5886
|
{
|
|
5867
5887
|
"name": "outcomeReason",
|
|
@@ -6138,6 +6158,7 @@
|
|
|
6138
6158
|
"name": "OpportunityConversion",
|
|
6139
6159
|
"qualifiedName": "@happyvertical/smrt-sales:OpportunityConversion",
|
|
6140
6160
|
"collection": "opportunityconversions",
|
|
6161
|
+
"description": "OpportunityConversion records that a WON opportunity materialized into a downstream record — a client, project, contract, subscription, or any caller-defined kind.",
|
|
6141
6162
|
"tableName": "opportunity_conversions",
|
|
6142
6163
|
"packageName": "@happyvertical/smrt-sales",
|
|
6143
6164
|
"extends": "SmrtObject",
|
|
@@ -6299,6 +6320,7 @@
|
|
|
6299
6320
|
"qualifiedName": "@happyvertical/smrt-sales:PipelineDefinition",
|
|
6300
6321
|
"displayLabelField": "name",
|
|
6301
6322
|
"collection": "pipelinedefinitions",
|
|
6323
|
+
"description": "PipelineDefinition names an ordered set of stages that opportunities move through. Pipelines are configuration rows, not code: tenants can run several (e.g.",
|
|
6302
6324
|
"tableName": "pipeline_definitions",
|
|
6303
6325
|
"packageName": "@happyvertical/smrt-sales",
|
|
6304
6326
|
"extends": "SmrtObject",
|
|
@@ -6314,35 +6336,40 @@
|
|
|
6314
6336
|
"type": "text",
|
|
6315
6337
|
"required": true,
|
|
6316
6338
|
"columnType": "TEXT",
|
|
6317
|
-
"default": ""
|
|
6339
|
+
"default": "",
|
|
6340
|
+
"description": "A short code for the pipeline."
|
|
6318
6341
|
},
|
|
6319
6342
|
{
|
|
6320
6343
|
"name": "name",
|
|
6321
6344
|
"type": "text",
|
|
6322
6345
|
"required": false,
|
|
6323
6346
|
"columnType": "TEXT",
|
|
6324
|
-
"default": ""
|
|
6347
|
+
"default": "",
|
|
6348
|
+
"description": "What the pipeline is called."
|
|
6325
6349
|
},
|
|
6326
6350
|
{
|
|
6327
6351
|
"name": "isDefault",
|
|
6328
6352
|
"type": "boolean",
|
|
6329
6353
|
"required": false,
|
|
6330
6354
|
"columnType": "BOOLEAN",
|
|
6331
|
-
"default": false
|
|
6355
|
+
"default": false,
|
|
6356
|
+
"description": "Whether this is the default pipeline for new deals."
|
|
6332
6357
|
},
|
|
6333
6358
|
{
|
|
6334
6359
|
"name": "status",
|
|
6335
6360
|
"type": "text",
|
|
6336
6361
|
"required": false,
|
|
6337
6362
|
"columnType": "TEXT",
|
|
6338
|
-
"default": "active"
|
|
6363
|
+
"default": "active",
|
|
6364
|
+
"description": "Whether the pipeline is active (accepts new deals) or archived."
|
|
6339
6365
|
},
|
|
6340
6366
|
{
|
|
6341
6367
|
"name": "metadata",
|
|
6342
6368
|
"type": "text",
|
|
6343
6369
|
"required": false,
|
|
6344
6370
|
"columnType": "TEXT",
|
|
6345
|
-
"default": "{}"
|
|
6371
|
+
"default": "{}",
|
|
6372
|
+
"description": "Extra details kept with the pipeline."
|
|
6346
6373
|
}
|
|
6347
6374
|
],
|
|
6348
6375
|
"relationships": [],
|
|
@@ -6505,6 +6532,7 @@
|
|
|
6505
6532
|
"qualifiedName": "@happyvertical/smrt-sales:PipelineStage",
|
|
6506
6533
|
"displayLabelField": "name",
|
|
6507
6534
|
"collection": "pipelinestages",
|
|
6535
|
+
"description": "PipelineStage is a configurable step within a pipeline.",
|
|
6508
6536
|
"tableName": "pipeline_stages",
|
|
6509
6537
|
"packageName": "@happyvertical/smrt-sales",
|
|
6510
6538
|
"extends": "SmrtObject",
|
|
@@ -6520,49 +6548,56 @@
|
|
|
6520
6548
|
"type": "foreignKey",
|
|
6521
6549
|
"required": true,
|
|
6522
6550
|
"related": "PipelineDefinition",
|
|
6523
|
-
"columnType": "UUID"
|
|
6551
|
+
"columnType": "UUID",
|
|
6552
|
+
"description": "The pipeline this stage belongs to."
|
|
6524
6553
|
},
|
|
6525
6554
|
{
|
|
6526
6555
|
"name": "key",
|
|
6527
6556
|
"type": "text",
|
|
6528
6557
|
"required": true,
|
|
6529
6558
|
"columnType": "TEXT",
|
|
6530
|
-
"default": ""
|
|
6559
|
+
"default": "",
|
|
6560
|
+
"description": "A short code for the stage."
|
|
6531
6561
|
},
|
|
6532
6562
|
{
|
|
6533
6563
|
"name": "name",
|
|
6534
6564
|
"type": "text",
|
|
6535
6565
|
"required": false,
|
|
6536
6566
|
"columnType": "TEXT",
|
|
6537
|
-
"default": ""
|
|
6567
|
+
"default": "",
|
|
6568
|
+
"description": "What the stage is called."
|
|
6538
6569
|
},
|
|
6539
6570
|
{
|
|
6540
6571
|
"name": "sortOrder",
|
|
6541
6572
|
"type": "integer",
|
|
6542
6573
|
"required": false,
|
|
6543
6574
|
"columnType": "INTEGER",
|
|
6544
|
-
"default": 0
|
|
6575
|
+
"default": 0,
|
|
6576
|
+
"description": "Where it comes in the pipeline."
|
|
6545
6577
|
},
|
|
6546
6578
|
{
|
|
6547
6579
|
"name": "probability",
|
|
6548
6580
|
"type": "decimal",
|
|
6549
6581
|
"required": false,
|
|
6550
6582
|
"columnType": "REAL",
|
|
6551
|
-
"default": 0
|
|
6583
|
+
"default": 0,
|
|
6584
|
+
"description": "How likely a deal at this stage is to close, as a decimal."
|
|
6552
6585
|
},
|
|
6553
6586
|
{
|
|
6554
6587
|
"name": "isWon",
|
|
6555
6588
|
"type": "boolean",
|
|
6556
6589
|
"required": false,
|
|
6557
6590
|
"columnType": "BOOLEAN",
|
|
6558
|
-
"default": false
|
|
6591
|
+
"default": false,
|
|
6592
|
+
"description": "Whether reaching this stage closes the deal as won."
|
|
6559
6593
|
},
|
|
6560
6594
|
{
|
|
6561
6595
|
"name": "isLost",
|
|
6562
6596
|
"type": "boolean",
|
|
6563
6597
|
"required": false,
|
|
6564
6598
|
"columnType": "BOOLEAN",
|
|
6565
|
-
"default": false
|
|
6599
|
+
"default": false,
|
|
6600
|
+
"description": "Whether reaching this stage closes the deal as lost."
|
|
6566
6601
|
},
|
|
6567
6602
|
{
|
|
6568
6603
|
"name": "metadata",
|
|
@@ -6692,6 +6727,7 @@
|
|
|
6692
6727
|
"name": "SalesActivity",
|
|
6693
6728
|
"qualifiedName": "@happyvertical/smrt-sales:SalesActivity",
|
|
6694
6729
|
"collection": "salesactivities",
|
|
6730
|
+
"description": "SalesActivity is the shared trail for Leads and Opportunities: human touchpoints (note, call, email, meeting), next actions (task with dueAt/completedAt), and framework-written audit rows…",
|
|
6695
6731
|
"tableName": "sales_activities",
|
|
6696
6732
|
"packageName": "@happyvertical/smrt-sales",
|
|
6697
6733
|
"extends": "SmrtObject",
|
|
@@ -6707,40 +6743,46 @@
|
|
|
6707
6743
|
"type": "text",
|
|
6708
6744
|
"required": false,
|
|
6709
6745
|
"columnType": "TEXT",
|
|
6710
|
-
"default": "lead"
|
|
6746
|
+
"default": "lead",
|
|
6747
|
+
"description": "What the activity is about: a lead or an opportunity."
|
|
6711
6748
|
},
|
|
6712
6749
|
{
|
|
6713
6750
|
"name": "subjectId",
|
|
6714
6751
|
"type": "text",
|
|
6715
6752
|
"required": true,
|
|
6716
6753
|
"columnType": "TEXT",
|
|
6717
|
-
"default": ""
|
|
6754
|
+
"default": "",
|
|
6755
|
+
"description": "The lead or opportunity it is about."
|
|
6718
6756
|
},
|
|
6719
6757
|
{
|
|
6720
6758
|
"name": "activityKind",
|
|
6721
6759
|
"type": "text",
|
|
6722
6760
|
"required": false,
|
|
6723
6761
|
"columnType": "TEXT",
|
|
6724
|
-
"default": "note"
|
|
6762
|
+
"default": "note",
|
|
6763
|
+
"description": "The kind of activity, for example call, note or email."
|
|
6725
6764
|
},
|
|
6726
6765
|
{
|
|
6727
6766
|
"name": "summary",
|
|
6728
6767
|
"type": "text",
|
|
6729
6768
|
"required": false,
|
|
6730
6769
|
"columnType": "TEXT",
|
|
6731
|
-
"default": ""
|
|
6770
|
+
"default": "",
|
|
6771
|
+
"description": "What happened or what needs doing."
|
|
6732
6772
|
},
|
|
6733
6773
|
{
|
|
6734
6774
|
"name": "dueAt",
|
|
6735
6775
|
"type": "datetime",
|
|
6736
6776
|
"required": false,
|
|
6737
|
-
"columnType": "TIMESTAMP"
|
|
6777
|
+
"columnType": "TIMESTAMP",
|
|
6778
|
+
"description": "When it is due."
|
|
6738
6779
|
},
|
|
6739
6780
|
{
|
|
6740
6781
|
"name": "completedAt",
|
|
6741
6782
|
"type": "datetime",
|
|
6742
6783
|
"required": false,
|
|
6743
|
-
"columnType": "TIMESTAMP"
|
|
6784
|
+
"columnType": "TIMESTAMP",
|
|
6785
|
+
"description": "When it was done."
|
|
6744
6786
|
},
|
|
6745
6787
|
{
|
|
6746
6788
|
"name": "actorProfileId",
|
|
@@ -6884,6 +6926,7 @@
|
|
|
6884
6926
|
"qualifiedName": "@happyvertical/smrt-sales:SalesRepresentative",
|
|
6885
6927
|
"displayLabelField": "title",
|
|
6886
6928
|
"collection": "salesrepresentatives",
|
|
6929
|
+
"description": "SalesRepresentative is a ROLE model: it links an identity (smrt-profiles Profile) to sales ownership (Leads/Opportunities reference ownerRepId).",
|
|
6887
6930
|
"tableName": "sales_representatives",
|
|
6888
6931
|
"packageName": "@happyvertical/smrt-sales",
|
|
6889
6932
|
"extends": "SmrtObject",
|
|
@@ -9771,6 +9814,7 @@
|
|
|
9771
9814
|
"name": "ReferralClickOperation",
|
|
9772
9815
|
"qualifiedName": "@happyvertical/smrt-sales:ReferralClickOperation",
|
|
9773
9816
|
"collection": "referralclickoperations",
|
|
9817
|
+
"description": "One globally unique caller replay key mapped to its immutable click touch.",
|
|
9774
9818
|
"tableName": "referral_click_operations",
|
|
9775
9819
|
"packageName": "@happyvertical/smrt-sales",
|
|
9776
9820
|
"extends": "SmrtObject",
|
|
@@ -9866,6 +9910,7 @@
|
|
|
9866
9910
|
"qualifiedName": "@happyvertical/smrt-sales:ReferralLink",
|
|
9867
9911
|
"displayLabelField": "label",
|
|
9868
9912
|
"collection": "referrallinks",
|
|
9913
|
+
"description": "A ReferralLink is the shareable artifact a Referrer distributes: a globally unique code (natural key ['code'] — codes resolve without knowing the tenant/program) plus an optional destination…",
|
|
9869
9914
|
"tableName": "referral_links",
|
|
9870
9915
|
"packageName": "@happyvertical/smrt-sales",
|
|
9871
9916
|
"extends": "SmrtObject",
|
|
@@ -10127,6 +10172,7 @@
|
|
|
10127
10172
|
"qualifiedName": "@happyvertical/smrt-sales:ReferralProgram",
|
|
10128
10173
|
"displayLabelField": "name",
|
|
10129
10174
|
"collection": "referralprograms",
|
|
10175
|
+
"description": "A ReferralProgram anchors links, touches, referrals, agreements, and exceptions, and carries the program-level DEFAULTS:",
|
|
10130
10176
|
"tableName": "referral_programs",
|
|
10131
10177
|
"packageName": "@happyvertical/smrt-sales",
|
|
10132
10178
|
"extends": "SmrtObject",
|
|
@@ -10786,6 +10832,7 @@
|
|
|
10786
10832
|
"name": "Referrer",
|
|
10787
10833
|
"qualifiedName": "@happyvertical/smrt-sales:Referrer",
|
|
10788
10834
|
"collection": "referrers",
|
|
10835
|
+
"description": "Referrer is a ROLE model: it links an identity (smrt-profiles Profile) to referral activity (ReferralLinks, ReferralTouches, and Referrals reference referrerId).",
|
|
10789
10836
|
"tableName": "referrers",
|
|
10790
10837
|
"packageName": "@happyvertical/smrt-sales",
|
|
10791
10838
|
"extends": "SmrtObject",
|
|
@@ -14392,5 +14439,153 @@
|
|
|
14392
14439
|
"module": "svelte",
|
|
14393
14440
|
"content": "# smrt-sales/svelte\n\nPer-module semantics for `@happyvertical/smrt-sales/svelte`. Package orientation, the\ncross-module invariants (currency, tenancy, cross-package refs, roles vs.\nmoney), and the Gotchas that apply before editing anything live in\n[../AGENTS.md](../AGENTS.md) — read that first.\n\nProps-driven presentational components (no data fetching, no model-class imports, Provider-free smrt-ui primitives, `--smrt-*` tokens only): CRM — `SalesDashboard`, `LeadCreateForm`, `LeadList`, `LeadDetail`, `OpportunityBoard`, `OpportunityDetail`; referrer portal — `ReferralLinkManager`, `ReferralStatusList`, `ReferrerEarningsSummary`, `CommissionBreakdown` (trace-explained amounts), `PayoutHistoryList`, `ExecutedAgreementsList`; operator — `AttributionConflictQueue` (award editor + required resolution reason), `PayoutBatchReview`, `CommissionExpenseSummary` (explicitly distinct from client invoices). Monetary props stay integer cents; `format.ts` converts at render. View-model prop types are exported interfaces (never inline intersected generics in `$props()`). Pure helpers are unit-tested and Lead intake/inbox/detail components have mounted runtime tests through `vitest.ui.config.ts`.\n\n`LeadCreateForm` validates the required name and email-or-phone contact rule, normalizes email, and emits a host-mapped `LeadCreateDraft`; source choices, duplicate results, errors, and owner choices come from the host. `LeadList` accepts controlled filter/count, sort, page, selection/link, and row-action props; the host owns inbox fetching and callback mutations. `LeadDetail` renders a complete host-supplied timeline, an optional linked-opportunity summary snippet, and callback-only assignment, start/reopen, disqualification, human-activity, next-action, completion, and qualification controls. Its `busy` prop disables every mutation affordance; the host owns tenancy, authorization, service invocation, refresh, and any policy around due dates or reminders.\n"
|
|
14394
14441
|
}
|
|
14395
|
-
]
|
|
14442
|
+
],
|
|
14443
|
+
"recipes": [
|
|
14444
|
+
{
|
|
14445
|
+
"id": "sales.pipeline",
|
|
14446
|
+
"className": "SalesPipelineRecipe",
|
|
14447
|
+
"label": "Leads & pipeline",
|
|
14448
|
+
"summary": "Capture leads and move them through your sales stages.",
|
|
14449
|
+
"synonyms": [
|
|
14450
|
+
"crm",
|
|
14451
|
+
"prospects",
|
|
14452
|
+
"opportunities",
|
|
14453
|
+
"deals",
|
|
14454
|
+
"funnel"
|
|
14455
|
+
],
|
|
14456
|
+
"models": [
|
|
14457
|
+
"@happyvertical/smrt-sales:Lead",
|
|
14458
|
+
"@happyvertical/smrt-sales:Opportunity",
|
|
14459
|
+
"@happyvertical/smrt-sales:PipelineDefinition",
|
|
14460
|
+
"@happyvertical/smrt-sales:PipelineStage",
|
|
14461
|
+
"@happyvertical/smrt-sales:SalesActivity"
|
|
14462
|
+
],
|
|
14463
|
+
"nav": [
|
|
14464
|
+
{
|
|
14465
|
+
"label": "Leads",
|
|
14466
|
+
"model": "@happyvertical/smrt-sales:Lead",
|
|
14467
|
+
"icon": "users",
|
|
14468
|
+
"description": "People who might become customers, and where each one stands."
|
|
14469
|
+
},
|
|
14470
|
+
{
|
|
14471
|
+
"label": "Opportunities",
|
|
14472
|
+
"model": "@happyvertical/smrt-sales:Opportunity",
|
|
14473
|
+
"icon": "briefcase",
|
|
14474
|
+
"description": "Deals in progress, with their value and next step."
|
|
14475
|
+
},
|
|
14476
|
+
{
|
|
14477
|
+
"label": "Pipelines",
|
|
14478
|
+
"model": "@happyvertical/smrt-sales:PipelineDefinition",
|
|
14479
|
+
"icon": "layers",
|
|
14480
|
+
"description": "The stages a deal moves through on its way to a sale."
|
|
14481
|
+
}
|
|
14482
|
+
],
|
|
14483
|
+
"requires": [],
|
|
14484
|
+
"section": {
|
|
14485
|
+
"id": "sales",
|
|
14486
|
+
"label": "Sales",
|
|
14487
|
+
"icon": "shoppingBag",
|
|
14488
|
+
"description": "Customers, orders and quotes: everything you sell."
|
|
14489
|
+
},
|
|
14490
|
+
"options": {
|
|
14491
|
+
"@happyvertical/smrt-sales:Lead": {
|
|
14492
|
+
"fields": {
|
|
14493
|
+
"profileId": {
|
|
14494
|
+
"visibility": "hidden"
|
|
14495
|
+
},
|
|
14496
|
+
"mergedIntoId": {
|
|
14497
|
+
"visibility": "hidden"
|
|
14498
|
+
},
|
|
14499
|
+
"sourceKind": {
|
|
14500
|
+
"visibility": "hidden"
|
|
14501
|
+
},
|
|
14502
|
+
"sourceId": {
|
|
14503
|
+
"visibility": "hidden"
|
|
14504
|
+
},
|
|
14505
|
+
"acquisitionContext": {
|
|
14506
|
+
"visibility": "hidden"
|
|
14507
|
+
},
|
|
14508
|
+
"intakeRef": {
|
|
14509
|
+
"visibility": "hidden"
|
|
14510
|
+
},
|
|
14511
|
+
"metadata": {
|
|
14512
|
+
"visibility": "hidden"
|
|
14513
|
+
},
|
|
14514
|
+
"qualifiedAt": {
|
|
14515
|
+
"visibility": "hidden"
|
|
14516
|
+
}
|
|
14517
|
+
}
|
|
14518
|
+
},
|
|
14519
|
+
"@happyvertical/smrt-sales:Opportunity": {
|
|
14520
|
+
"fields": {
|
|
14521
|
+
"sourceKind": {
|
|
14522
|
+
"visibility": "hidden"
|
|
14523
|
+
},
|
|
14524
|
+
"sourceId": {
|
|
14525
|
+
"visibility": "hidden"
|
|
14526
|
+
},
|
|
14527
|
+
"metadata": {
|
|
14528
|
+
"visibility": "hidden"
|
|
14529
|
+
},
|
|
14530
|
+
"outcomeReason": {
|
|
14531
|
+
"visibility": "hidden"
|
|
14532
|
+
},
|
|
14533
|
+
"wonAt": {
|
|
14534
|
+
"visibility": "hidden"
|
|
14535
|
+
},
|
|
14536
|
+
"lostAt": {
|
|
14537
|
+
"visibility": "hidden"
|
|
14538
|
+
}
|
|
14539
|
+
}
|
|
14540
|
+
},
|
|
14541
|
+
"@happyvertical/smrt-sales:PipelineStage": {
|
|
14542
|
+
"fields": {
|
|
14543
|
+
"metadata": {
|
|
14544
|
+
"visibility": "hidden"
|
|
14545
|
+
}
|
|
14546
|
+
}
|
|
14547
|
+
},
|
|
14548
|
+
"@happyvertical/smrt-sales:SalesActivity": {
|
|
14549
|
+
"fields": {
|
|
14550
|
+
"metadata": {
|
|
14551
|
+
"visibility": "hidden"
|
|
14552
|
+
},
|
|
14553
|
+
"actorProfileId": {
|
|
14554
|
+
"visibility": "hidden"
|
|
14555
|
+
}
|
|
14556
|
+
}
|
|
14557
|
+
}
|
|
14558
|
+
},
|
|
14559
|
+
"help": {
|
|
14560
|
+
"markdown": "## Overview\n\nLeads and pipeline is a light CRM. You capture leads, turn the promising ones\ninto opportunities, and move each through the stages of a pipeline. Activities\nrecord calls, notes and follow-ups.\n\n## Tasks\n\n### Capture a lead\n\n1. Create a new lead.\n2. Enter the **{field:name}**, **{field:email}** and **{field:phone}**.\n3. Keep **{field:status}** up to date as you qualify them.\n\n### Work an opportunity\n\n1. Create a pipeline, then add its stages in order.\n2. Create a new opportunity and pick the **{field:leadId}**.\n3. Choose the **{field:pipelineId}** and **{field:stageId}**, and enter the\n **{field:expectedValueCents}** and **{field:expectedCloseAt}**.\n4. Move the **{field:stageId}** along as the deal progresses.\n",
|
|
14561
|
+
"fieldRefs": [
|
|
14562
|
+
"email",
|
|
14563
|
+
"expectedCloseAt",
|
|
14564
|
+
"expectedValueCents",
|
|
14565
|
+
"leadId",
|
|
14566
|
+
"name",
|
|
14567
|
+
"phone",
|
|
14568
|
+
"pipelineId",
|
|
14569
|
+
"stageId",
|
|
14570
|
+
"status"
|
|
14571
|
+
]
|
|
14572
|
+
},
|
|
14573
|
+
"demo": {
|
|
14574
|
+
"mode": "server",
|
|
14575
|
+
"reasons": [
|
|
14576
|
+
"Needs a server because its package does not build for a browser: node:crypto; and its package depends on @happyvertical/smrt-tenancy, which do not build for a browser (#3624)."
|
|
14577
|
+
]
|
|
14578
|
+
}
|
|
14579
|
+
}
|
|
14580
|
+
],
|
|
14581
|
+
"browser": {
|
|
14582
|
+
"status": "server-only",
|
|
14583
|
+
"issues": [
|
|
14584
|
+
"#3624"
|
|
14585
|
+
],
|
|
14586
|
+
"reason": "node:crypto",
|
|
14587
|
+
"via": [
|
|
14588
|
+
"@happyvertical/smrt-tenancy"
|
|
14589
|
+
]
|
|
14590
|
+
}
|
|
14396
14591
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-sales",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.8",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Modular sales for the SMRT framework: agreement execution, CRM, referral intake, neutral commissions, and reusable Svelte surfaces",
|
|
6
6
|
"type": "module",
|
|
@@ -42,18 +42,18 @@
|
|
|
42
42
|
"./manifest.json": "./dist/manifest.json"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@happyvertical/signatures": "^0.
|
|
46
|
-
"@happyvertical/smrt-assets": "0.55.
|
|
47
|
-
"@happyvertical/smrt-core": "0.55.
|
|
48
|
-
"@happyvertical/smrt-tenancy": "0.55.
|
|
49
|
-
"@happyvertical/smrt-ui": "0.55.
|
|
50
|
-
"@happyvertical/sql": "^0.
|
|
45
|
+
"@happyvertical/signatures": "^0.103.1",
|
|
46
|
+
"@happyvertical/smrt-assets": "0.55.8",
|
|
47
|
+
"@happyvertical/smrt-core": "0.55.8",
|
|
48
|
+
"@happyvertical/smrt-tenancy": "0.55.8",
|
|
49
|
+
"@happyvertical/smrt-ui": "0.55.8",
|
|
50
|
+
"@happyvertical/sql": "^0.103.1"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"svelte": "^5.57.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@happyvertical/smrt-vitest": "0.55.
|
|
56
|
+
"@happyvertical/smrt-vitest": "0.55.8",
|
|
57
57
|
"@sveltejs/package": "^2.5.8",
|
|
58
58
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
59
59
|
"@types/node": "24.13.6",
|