@happyvertical/smrt-projects 0.51.39 → 0.53.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.
- package/AGENTS.md +20 -9
- package/README.md +13 -1
- package/SERVICE_TIME_MIGRATION.md +45 -3
- package/dist/index.js +154 -588
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +3 -1484
- package/dist/models/Repository.d.ts +9 -0
- package/dist/models/Repository.d.ts.map +1 -1
- package/dist/models/service-evidence.d.ts +13 -92
- package/dist/models/service-evidence.d.ts.map +1 -1
- package/dist/playground.js +2 -2
- package/dist/playground.js.map +1 -1
- package/dist/services/service-evidence-service.d.ts +6 -55
- package/dist/services/service-evidence-service.d.ts.map +1 -1
- package/dist/services/subscription-commercial-resolver.d.ts +1 -1
- package/dist/services/subscription-commercial-resolver.d.ts.map +1 -1
- package/dist/smrt-knowledge.json +11 -1069
- package/dist/svelte/components/ApprovalActions.svelte +1 -1
- package/dist/svelte/components/ApprovalActions.svelte.d.ts +1 -1
- package/dist/svelte/components/ApprovalActions.svelte.d.ts.map +1 -1
- package/dist/svelte/components/__tests__/TimesheetsReexports.test.js +18 -0
- package/dist/svelte/i18n.d.ts +0 -9
- package/dist/svelte/i18n.d.ts.map +1 -1
- package/dist/svelte/i18n.js +0 -9
- package/dist/svelte/index.d.ts +2 -8
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +3 -4
- package/dist/svelte/playground.d.ts +7 -2
- package/dist/svelte/playground.d.ts.map +1 -1
- package/dist/svelte/playground.js +7 -2
- package/dist/svelte/utils.d.ts +4 -48
- package/dist/svelte/utils.d.ts.map +1 -1
- package/dist/svelte/utils.js +4 -56
- package/dist/svelte/utils.test.js +1 -1
- package/dist/types.d.ts +1 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +19 -19
- package/dist/svelte/components/DurationDisplay.svelte +0 -81
- package/dist/svelte/components/DurationDisplay.svelte.d.ts +0 -20
- package/dist/svelte/components/DurationDisplay.svelte.d.ts.map +0 -1
- package/dist/svelte/components/TimeEntryCard.svelte +0 -304
- package/dist/svelte/components/TimeEntryCard.svelte.d.ts +0 -25
- package/dist/svelte/components/TimeEntryCard.svelte.d.ts.map +0 -1
- package/dist/svelte/components/TimeEntryList.svelte +0 -360
- package/dist/svelte/components/TimeEntryList.svelte.d.ts +0 -24
- package/dist/svelte/components/TimeEntryList.svelte.d.ts.map +0 -1
- package/dist/svelte/components/TimeSummary.svelte +0 -176
- package/dist/svelte/components/TimeSummary.svelte.d.ts +0 -30
- package/dist/svelte/components/TimeSummary.svelte.d.ts.map +0 -1
- package/dist/svelte/components/__tests__/DurationDisplay.test.js +0 -57
- package/dist/svelte/components/__tests__/TimeEntryCard.test.js +0 -45
- package/dist/svelte/components/__tests__/TimeEntryList.test.js +0 -50
- package/dist/svelte/components/__tests__/TimeSummary.test.js +0 -39
- package/dist/svelte/components/utils.d.ts +0 -51
- package/dist/svelte/components/utils.d.ts.map +0 -1
- package/dist/svelte/components/utils.js +0 -58
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-projects",
|
|
6
|
-
"packageVersion": "0.
|
|
6
|
+
"packageVersion": "0.53.0",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
12
|
-
"agents": "
|
|
10
|
+
"manifest": "03fbed2fed8ed2623ac7ac1862f50961715ca6c451335e7b7f57fa5ee91f54cd",
|
|
11
|
+
"packageJson": "7aff600ea00a9818f4ed96904641723adb245edd3d774c5cdc496d7a512b94a8",
|
|
12
|
+
"agents": "0bfcad468f2684901c34ae04db8a82343060ed97f9917ca415a82501fefed78d"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
15
15
|
".",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@happyvertical/smrt-svelte": "workspace:*",
|
|
31
31
|
"@happyvertical/smrt-subscriptions": "workspace:*",
|
|
32
32
|
"@happyvertical/smrt-tenancy": "workspace:*",
|
|
33
|
+
"@happyvertical/smrt-timesheets": "workspace:*",
|
|
33
34
|
"@happyvertical/smrt-types": "workspace:*",
|
|
34
35
|
"@happyvertical/smrt-ui": "workspace:*",
|
|
35
36
|
"@happyvertical/sql": "catalog:",
|
|
@@ -40,7 +41,7 @@
|
|
|
40
41
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|
|
41
42
|
"@types/node": "24.13.6",
|
|
42
43
|
"fast-glob": "3.3.3",
|
|
43
|
-
"svelte": "^5.57.
|
|
44
|
+
"svelte": "^5.57.0",
|
|
44
45
|
"svelte-check": "^4.7.6",
|
|
45
46
|
"typescript": "6.0.3",
|
|
46
47
|
"vite": "8.1.4",
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
"@happyvertical/smrt-subscriptions",
|
|
55
56
|
"@happyvertical/smrt-svelte",
|
|
56
57
|
"@happyvertical/smrt-tenancy",
|
|
58
|
+
"@happyvertical/smrt-timesheets",
|
|
57
59
|
"@happyvertical/smrt-types",
|
|
58
60
|
"@happyvertical/smrt-ui",
|
|
59
61
|
"@happyvertical/smrt-vitest"
|
|
@@ -77,7 +79,6 @@
|
|
|
77
79
|
"smrt"
|
|
78
80
|
],
|
|
79
81
|
"risks": [
|
|
80
|
-
"cross-package-refs:6",
|
|
81
82
|
"sensitive-fields-excluded",
|
|
82
83
|
"sti-inheritance"
|
|
83
84
|
],
|
|
@@ -5238,865 +5239,6 @@
|
|
|
5238
5239
|
],
|
|
5239
5240
|
"tags": [],
|
|
5240
5241
|
"risks": []
|
|
5241
|
-
},
|
|
5242
|
-
{
|
|
5243
|
-
"name": "ServiceTimeEntry",
|
|
5244
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntry",
|
|
5245
|
-
"collection": "servicetimeentries",
|
|
5246
|
-
"tableName": "service_time_entries",
|
|
5247
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
5248
|
-
"extends": "SmrtObject",
|
|
5249
|
-
"fields": [
|
|
5250
|
-
{
|
|
5251
|
-
"name": "tenantId",
|
|
5252
|
-
"type": "text",
|
|
5253
|
-
"required": false,
|
|
5254
|
-
"columnType": "UUID"
|
|
5255
|
-
},
|
|
5256
|
-
{
|
|
5257
|
-
"name": "caseId",
|
|
5258
|
-
"type": "crossPackageRef",
|
|
5259
|
-
"required": false,
|
|
5260
|
-
"related": "@happyvertical/smrt-support:SupportCase",
|
|
5261
|
-
"columnType": "UUID"
|
|
5262
|
-
},
|
|
5263
|
-
{
|
|
5264
|
-
"name": "workRefType",
|
|
5265
|
-
"type": "text",
|
|
5266
|
-
"required": false,
|
|
5267
|
-
"columnType": "TEXT"
|
|
5268
|
-
},
|
|
5269
|
-
{
|
|
5270
|
-
"name": "workRefId",
|
|
5271
|
-
"type": "text",
|
|
5272
|
-
"required": false,
|
|
5273
|
-
"columnType": "TEXT"
|
|
5274
|
-
},
|
|
5275
|
-
{
|
|
5276
|
-
"name": "specialistId",
|
|
5277
|
-
"type": "crossPackageRef",
|
|
5278
|
-
"required": false,
|
|
5279
|
-
"related": "@happyvertical/smrt-support:SupportSpecialist",
|
|
5280
|
-
"columnType": "UUID"
|
|
5281
|
-
},
|
|
5282
|
-
{
|
|
5283
|
-
"name": "participantKind",
|
|
5284
|
-
"type": "text",
|
|
5285
|
-
"required": false,
|
|
5286
|
-
"columnType": "TEXT"
|
|
5287
|
-
},
|
|
5288
|
-
{
|
|
5289
|
-
"name": "participantProfileId",
|
|
5290
|
-
"type": "crossPackageRef",
|
|
5291
|
-
"required": false,
|
|
5292
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5293
|
-
"columnType": "UUID"
|
|
5294
|
-
},
|
|
5295
|
-
{
|
|
5296
|
-
"name": "agentRef",
|
|
5297
|
-
"type": "text",
|
|
5298
|
-
"required": false,
|
|
5299
|
-
"columnType": "TEXT"
|
|
5300
|
-
},
|
|
5301
|
-
{
|
|
5302
|
-
"name": "source",
|
|
5303
|
-
"type": "text",
|
|
5304
|
-
"required": false,
|
|
5305
|
-
"columnType": "TEXT"
|
|
5306
|
-
},
|
|
5307
|
-
{
|
|
5308
|
-
"name": "description",
|
|
5309
|
-
"type": "text",
|
|
5310
|
-
"required": false,
|
|
5311
|
-
"columnType": "TEXT"
|
|
5312
|
-
},
|
|
5313
|
-
{
|
|
5314
|
-
"name": "startedAt",
|
|
5315
|
-
"type": "datetime",
|
|
5316
|
-
"required": false,
|
|
5317
|
-
"columnType": "TIMESTAMP"
|
|
5318
|
-
},
|
|
5319
|
-
{
|
|
5320
|
-
"name": "endedAt",
|
|
5321
|
-
"type": "datetime",
|
|
5322
|
-
"required": false,
|
|
5323
|
-
"columnType": "TIMESTAMP"
|
|
5324
|
-
},
|
|
5325
|
-
{
|
|
5326
|
-
"name": "durationSeconds",
|
|
5327
|
-
"type": "integer",
|
|
5328
|
-
"required": false,
|
|
5329
|
-
"columnType": "INTEGER",
|
|
5330
|
-
"default": 0
|
|
5331
|
-
},
|
|
5332
|
-
{
|
|
5333
|
-
"name": "evidence",
|
|
5334
|
-
"type": "text",
|
|
5335
|
-
"required": false,
|
|
5336
|
-
"columnType": "TEXT"
|
|
5337
|
-
},
|
|
5338
|
-
{
|
|
5339
|
-
"name": "status",
|
|
5340
|
-
"type": "text",
|
|
5341
|
-
"required": false,
|
|
5342
|
-
"columnType": "TEXT"
|
|
5343
|
-
},
|
|
5344
|
-
{
|
|
5345
|
-
"name": "submittedAt",
|
|
5346
|
-
"type": "datetime",
|
|
5347
|
-
"required": false,
|
|
5348
|
-
"columnType": "TIMESTAMP"
|
|
5349
|
-
},
|
|
5350
|
-
{
|
|
5351
|
-
"name": "submittedByProfileId",
|
|
5352
|
-
"type": "crossPackageRef",
|
|
5353
|
-
"required": false,
|
|
5354
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5355
|
-
"columnType": "UUID"
|
|
5356
|
-
},
|
|
5357
|
-
{
|
|
5358
|
-
"name": "approvedAt",
|
|
5359
|
-
"type": "datetime",
|
|
5360
|
-
"required": false,
|
|
5361
|
-
"columnType": "TIMESTAMP"
|
|
5362
|
-
},
|
|
5363
|
-
{
|
|
5364
|
-
"name": "approvedByProfileId",
|
|
5365
|
-
"type": "crossPackageRef",
|
|
5366
|
-
"required": false,
|
|
5367
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5368
|
-
"columnType": "UUID"
|
|
5369
|
-
},
|
|
5370
|
-
{
|
|
5371
|
-
"name": "approvalPath",
|
|
5372
|
-
"type": "text",
|
|
5373
|
-
"required": false,
|
|
5374
|
-
"columnType": "TEXT"
|
|
5375
|
-
},
|
|
5376
|
-
{
|
|
5377
|
-
"name": "rejectedAt",
|
|
5378
|
-
"type": "datetime",
|
|
5379
|
-
"required": false,
|
|
5380
|
-
"columnType": "TIMESTAMP"
|
|
5381
|
-
},
|
|
5382
|
-
{
|
|
5383
|
-
"name": "rejectedByProfileId",
|
|
5384
|
-
"type": "crossPackageRef",
|
|
5385
|
-
"required": false,
|
|
5386
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5387
|
-
"columnType": "UUID"
|
|
5388
|
-
},
|
|
5389
|
-
{
|
|
5390
|
-
"name": "rejectionReason",
|
|
5391
|
-
"type": "text",
|
|
5392
|
-
"required": false,
|
|
5393
|
-
"columnType": "TEXT"
|
|
5394
|
-
},
|
|
5395
|
-
{
|
|
5396
|
-
"name": "correctionOfId",
|
|
5397
|
-
"type": "foreignKey",
|
|
5398
|
-
"required": false,
|
|
5399
|
-
"related": "ServiceTimeEntry",
|
|
5400
|
-
"columnType": "UUID"
|
|
5401
|
-
},
|
|
5402
|
-
{
|
|
5403
|
-
"name": "metadata",
|
|
5404
|
-
"type": "text",
|
|
5405
|
-
"required": false,
|
|
5406
|
-
"columnType": "TEXT"
|
|
5407
|
-
}
|
|
5408
|
-
],
|
|
5409
|
-
"relationships": [
|
|
5410
|
-
{
|
|
5411
|
-
"name": "caseId",
|
|
5412
|
-
"type": "crossPackageRef",
|
|
5413
|
-
"required": false,
|
|
5414
|
-
"related": "@happyvertical/smrt-support:SupportCase",
|
|
5415
|
-
"columnType": "UUID"
|
|
5416
|
-
},
|
|
5417
|
-
{
|
|
5418
|
-
"name": "specialistId",
|
|
5419
|
-
"type": "crossPackageRef",
|
|
5420
|
-
"required": false,
|
|
5421
|
-
"related": "@happyvertical/smrt-support:SupportSpecialist",
|
|
5422
|
-
"columnType": "UUID"
|
|
5423
|
-
},
|
|
5424
|
-
{
|
|
5425
|
-
"name": "participantProfileId",
|
|
5426
|
-
"type": "crossPackageRef",
|
|
5427
|
-
"required": false,
|
|
5428
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5429
|
-
"columnType": "UUID"
|
|
5430
|
-
},
|
|
5431
|
-
{
|
|
5432
|
-
"name": "submittedByProfileId",
|
|
5433
|
-
"type": "crossPackageRef",
|
|
5434
|
-
"required": false,
|
|
5435
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5436
|
-
"columnType": "UUID"
|
|
5437
|
-
},
|
|
5438
|
-
{
|
|
5439
|
-
"name": "approvedByProfileId",
|
|
5440
|
-
"type": "crossPackageRef",
|
|
5441
|
-
"required": false,
|
|
5442
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5443
|
-
"columnType": "UUID"
|
|
5444
|
-
},
|
|
5445
|
-
{
|
|
5446
|
-
"name": "rejectedByProfileId",
|
|
5447
|
-
"type": "crossPackageRef",
|
|
5448
|
-
"required": false,
|
|
5449
|
-
"related": "@happyvertical/smrt-profiles:Profile",
|
|
5450
|
-
"columnType": "UUID"
|
|
5451
|
-
},
|
|
5452
|
-
{
|
|
5453
|
-
"name": "correctionOfId",
|
|
5454
|
-
"type": "foreignKey",
|
|
5455
|
-
"required": false,
|
|
5456
|
-
"related": "ServiceTimeEntry",
|
|
5457
|
-
"columnType": "UUID"
|
|
5458
|
-
}
|
|
5459
|
-
],
|
|
5460
|
-
"methods": [
|
|
5461
|
-
"durationHours",
|
|
5462
|
-
"getEvidence",
|
|
5463
|
-
"getMetadata",
|
|
5464
|
-
"initialize",
|
|
5465
|
-
"save",
|
|
5466
|
-
"setEvidence",
|
|
5467
|
-
"setMetadata"
|
|
5468
|
-
],
|
|
5469
|
-
"methodSignatures": [
|
|
5470
|
-
{
|
|
5471
|
-
"name": "durationHours",
|
|
5472
|
-
"returns": "number"
|
|
5473
|
-
},
|
|
5474
|
-
{
|
|
5475
|
-
"name": "getEvidence",
|
|
5476
|
-
"returns": "ServiceEvidence[]"
|
|
5477
|
-
},
|
|
5478
|
-
{
|
|
5479
|
-
"name": "getMetadata",
|
|
5480
|
-
"returns": "Record<string, unknown>"
|
|
5481
|
-
},
|
|
5482
|
-
{
|
|
5483
|
-
"name": "initialize",
|
|
5484
|
-
"async": true,
|
|
5485
|
-
"returns": "Promise<this>"
|
|
5486
|
-
},
|
|
5487
|
-
{
|
|
5488
|
-
"name": "save",
|
|
5489
|
-
"async": true,
|
|
5490
|
-
"returns": "Promise<this>"
|
|
5491
|
-
},
|
|
5492
|
-
{
|
|
5493
|
-
"name": "setEvidence",
|
|
5494
|
-
"params": [
|
|
5495
|
-
"value: ServiceEvidence[]"
|
|
5496
|
-
],
|
|
5497
|
-
"returns": "void"
|
|
5498
|
-
},
|
|
5499
|
-
{
|
|
5500
|
-
"name": "setMetadata",
|
|
5501
|
-
"params": [
|
|
5502
|
-
"value: Record<string, unknown>"
|
|
5503
|
-
],
|
|
5504
|
-
"returns": "void"
|
|
5505
|
-
}
|
|
5506
|
-
],
|
|
5507
|
-
"tenant": {
|
|
5508
|
-
"scoped": true,
|
|
5509
|
-
"mode": "optional",
|
|
5510
|
-
"field": "tenantId"
|
|
5511
|
-
},
|
|
5512
|
-
"conflictColumns": [
|
|
5513
|
-
"tenant_id",
|
|
5514
|
-
"slug",
|
|
5515
|
-
"context"
|
|
5516
|
-
],
|
|
5517
|
-
"surfaces": [
|
|
5518
|
-
{
|
|
5519
|
-
"kind": "api",
|
|
5520
|
-
"name": "servicetimeentries.list",
|
|
5521
|
-
"operation": "list",
|
|
5522
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
|
|
5523
|
-
"path": "/servicetimeentries",
|
|
5524
|
-
"method": "GET"
|
|
5525
|
-
},
|
|
5526
|
-
{
|
|
5527
|
-
"kind": "api",
|
|
5528
|
-
"name": "servicetimeentries.get",
|
|
5529
|
-
"operation": "get",
|
|
5530
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
|
|
5531
|
-
"path": "/servicetimeentries/[id]",
|
|
5532
|
-
"method": "GET"
|
|
5533
|
-
},
|
|
5534
|
-
{
|
|
5535
|
-
"kind": "cli",
|
|
5536
|
-
"name": "servicetimeentry_list",
|
|
5537
|
-
"operation": "list",
|
|
5538
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5539
|
-
},
|
|
5540
|
-
{
|
|
5541
|
-
"kind": "cli",
|
|
5542
|
-
"name": "servicetimeentry_get",
|
|
5543
|
-
"operation": "get",
|
|
5544
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5545
|
-
},
|
|
5546
|
-
{
|
|
5547
|
-
"kind": "mcp",
|
|
5548
|
-
"name": "servicetimeentry_list",
|
|
5549
|
-
"operation": "list",
|
|
5550
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5551
|
-
},
|
|
5552
|
-
{
|
|
5553
|
-
"kind": "mcp",
|
|
5554
|
-
"name": "servicetimeentry_get",
|
|
5555
|
-
"operation": "get",
|
|
5556
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5557
|
-
}
|
|
5558
|
-
],
|
|
5559
|
-
"withheldSurfaces": [
|
|
5560
|
-
{
|
|
5561
|
-
"kind": "api",
|
|
5562
|
-
"operation": "durationHours",
|
|
5563
|
-
"code": "not-included",
|
|
5564
|
-
"reason": "not listed in api.include",
|
|
5565
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5566
|
-
},
|
|
5567
|
-
{
|
|
5568
|
-
"kind": "api",
|
|
5569
|
-
"operation": "getEvidence",
|
|
5570
|
-
"code": "not-included",
|
|
5571
|
-
"reason": "not listed in api.include",
|
|
5572
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5573
|
-
},
|
|
5574
|
-
{
|
|
5575
|
-
"kind": "api",
|
|
5576
|
-
"operation": "getMetadata",
|
|
5577
|
-
"code": "not-included",
|
|
5578
|
-
"reason": "not listed in api.include",
|
|
5579
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5580
|
-
},
|
|
5581
|
-
{
|
|
5582
|
-
"kind": "api",
|
|
5583
|
-
"operation": "initialize",
|
|
5584
|
-
"code": "lifecycle-method",
|
|
5585
|
-
"reason": "`initialize` is a framework lifecycle method, not a distinct operation",
|
|
5586
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5587
|
-
},
|
|
5588
|
-
{
|
|
5589
|
-
"kind": "api",
|
|
5590
|
-
"operation": "save",
|
|
5591
|
-
"code": "lifecycle-method",
|
|
5592
|
-
"reason": "`save` is a framework lifecycle method, not a distinct operation",
|
|
5593
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5594
|
-
},
|
|
5595
|
-
{
|
|
5596
|
-
"kind": "api",
|
|
5597
|
-
"operation": "setEvidence",
|
|
5598
|
-
"code": "not-included",
|
|
5599
|
-
"reason": "not listed in api.include",
|
|
5600
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5601
|
-
},
|
|
5602
|
-
{
|
|
5603
|
-
"kind": "api",
|
|
5604
|
-
"operation": "setMetadata",
|
|
5605
|
-
"code": "not-included",
|
|
5606
|
-
"reason": "not listed in api.include",
|
|
5607
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
5608
|
-
}
|
|
5609
|
-
],
|
|
5610
|
-
"relationshipFeatures": [
|
|
5611
|
-
"crossPackageRef",
|
|
5612
|
-
"foreignKey",
|
|
5613
|
-
"uuidColumns"
|
|
5614
|
-
],
|
|
5615
|
-
"tags": [],
|
|
5616
|
-
"risks": []
|
|
5617
|
-
},
|
|
5618
|
-
{
|
|
5619
|
-
"name": "ServiceChargeSnapshot",
|
|
5620
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
|
|
5621
|
-
"collection": "servicechargesnapshots",
|
|
5622
|
-
"tableName": "service_charge_snapshots",
|
|
5623
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
5624
|
-
"extends": "SmrtObject",
|
|
5625
|
-
"fields": [
|
|
5626
|
-
{
|
|
5627
|
-
"name": "tenantId",
|
|
5628
|
-
"type": "text",
|
|
5629
|
-
"required": false,
|
|
5630
|
-
"columnType": "UUID"
|
|
5631
|
-
},
|
|
5632
|
-
{
|
|
5633
|
-
"name": "timeEntryId",
|
|
5634
|
-
"type": "foreignKey",
|
|
5635
|
-
"required": true,
|
|
5636
|
-
"related": "ServiceTimeEntry",
|
|
5637
|
-
"columnType": "UUID"
|
|
5638
|
-
},
|
|
5639
|
-
{
|
|
5640
|
-
"name": "amount",
|
|
5641
|
-
"type": "integer",
|
|
5642
|
-
"required": false,
|
|
5643
|
-
"columnType": "INTEGER",
|
|
5644
|
-
"default": 0
|
|
5645
|
-
},
|
|
5646
|
-
{
|
|
5647
|
-
"name": "currency",
|
|
5648
|
-
"type": "text",
|
|
5649
|
-
"required": false,
|
|
5650
|
-
"columnType": "TEXT"
|
|
5651
|
-
},
|
|
5652
|
-
{
|
|
5653
|
-
"name": "pricingVersion",
|
|
5654
|
-
"type": "text",
|
|
5655
|
-
"required": false,
|
|
5656
|
-
"columnType": "TEXT"
|
|
5657
|
-
},
|
|
5658
|
-
{
|
|
5659
|
-
"name": "strategy",
|
|
5660
|
-
"type": "text",
|
|
5661
|
-
"required": false,
|
|
5662
|
-
"columnType": "TEXT"
|
|
5663
|
-
},
|
|
5664
|
-
{
|
|
5665
|
-
"name": "rateSnapshot",
|
|
5666
|
-
"type": "text",
|
|
5667
|
-
"required": false,
|
|
5668
|
-
"columnType": "TEXT"
|
|
5669
|
-
},
|
|
5670
|
-
{
|
|
5671
|
-
"name": "sourceChargeRef",
|
|
5672
|
-
"type": "text",
|
|
5673
|
-
"required": false,
|
|
5674
|
-
"columnType": "TEXT"
|
|
5675
|
-
},
|
|
5676
|
-
{
|
|
5677
|
-
"name": "createdAt",
|
|
5678
|
-
"type": "datetime",
|
|
5679
|
-
"required": false,
|
|
5680
|
-
"columnType": "TIMESTAMP"
|
|
5681
|
-
}
|
|
5682
|
-
],
|
|
5683
|
-
"relationships": [
|
|
5684
|
-
{
|
|
5685
|
-
"name": "timeEntryId",
|
|
5686
|
-
"type": "foreignKey",
|
|
5687
|
-
"required": true,
|
|
5688
|
-
"related": "ServiceTimeEntry",
|
|
5689
|
-
"columnType": "UUID"
|
|
5690
|
-
}
|
|
5691
|
-
],
|
|
5692
|
-
"methods": [
|
|
5693
|
-
"initialize",
|
|
5694
|
-
"save"
|
|
5695
|
-
],
|
|
5696
|
-
"methodSignatures": [
|
|
5697
|
-
{
|
|
5698
|
-
"name": "initialize",
|
|
5699
|
-
"async": true,
|
|
5700
|
-
"returns": "Promise<this>"
|
|
5701
|
-
},
|
|
5702
|
-
{
|
|
5703
|
-
"name": "save",
|
|
5704
|
-
"async": true,
|
|
5705
|
-
"returns": "Promise<this>"
|
|
5706
|
-
}
|
|
5707
|
-
],
|
|
5708
|
-
"tenant": {
|
|
5709
|
-
"scoped": true,
|
|
5710
|
-
"mode": "optional",
|
|
5711
|
-
"field": "tenantId"
|
|
5712
|
-
},
|
|
5713
|
-
"conflictColumns": [
|
|
5714
|
-
"time_entry_id"
|
|
5715
|
-
],
|
|
5716
|
-
"surfaces": [
|
|
5717
|
-
{
|
|
5718
|
-
"kind": "api",
|
|
5719
|
-
"name": "servicechargesnapshots.list",
|
|
5720
|
-
"operation": "list",
|
|
5721
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
|
|
5722
|
-
"path": "/servicechargesnapshots",
|
|
5723
|
-
"method": "GET"
|
|
5724
|
-
},
|
|
5725
|
-
{
|
|
5726
|
-
"kind": "api",
|
|
5727
|
-
"name": "servicechargesnapshots.get",
|
|
5728
|
-
"operation": "get",
|
|
5729
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
|
|
5730
|
-
"path": "/servicechargesnapshots/[id]",
|
|
5731
|
-
"method": "GET"
|
|
5732
|
-
},
|
|
5733
|
-
{
|
|
5734
|
-
"kind": "cli",
|
|
5735
|
-
"name": "servicechargesnapshot_list",
|
|
5736
|
-
"operation": "list",
|
|
5737
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5738
|
-
},
|
|
5739
|
-
{
|
|
5740
|
-
"kind": "cli",
|
|
5741
|
-
"name": "servicechargesnapshot_get",
|
|
5742
|
-
"operation": "get",
|
|
5743
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5744
|
-
},
|
|
5745
|
-
{
|
|
5746
|
-
"kind": "mcp",
|
|
5747
|
-
"name": "servicechargesnapshot_list",
|
|
5748
|
-
"operation": "list",
|
|
5749
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5750
|
-
},
|
|
5751
|
-
{
|
|
5752
|
-
"kind": "mcp",
|
|
5753
|
-
"name": "servicechargesnapshot_get",
|
|
5754
|
-
"operation": "get",
|
|
5755
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5756
|
-
}
|
|
5757
|
-
],
|
|
5758
|
-
"withheldSurfaces": [
|
|
5759
|
-
{
|
|
5760
|
-
"kind": "api",
|
|
5761
|
-
"operation": "initialize",
|
|
5762
|
-
"code": "lifecycle-method",
|
|
5763
|
-
"reason": "`initialize` is a framework lifecycle method, not a distinct operation",
|
|
5764
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5765
|
-
},
|
|
5766
|
-
{
|
|
5767
|
-
"kind": "api",
|
|
5768
|
-
"operation": "save",
|
|
5769
|
-
"code": "lifecycle-method",
|
|
5770
|
-
"reason": "`save` is a framework lifecycle method, not a distinct operation",
|
|
5771
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
5772
|
-
}
|
|
5773
|
-
],
|
|
5774
|
-
"relationshipFeatures": [
|
|
5775
|
-
"foreignKey",
|
|
5776
|
-
"uuidColumns"
|
|
5777
|
-
],
|
|
5778
|
-
"tags": [],
|
|
5779
|
-
"risks": []
|
|
5780
|
-
},
|
|
5781
|
-
{
|
|
5782
|
-
"name": "ServiceCompensationSnapshot",
|
|
5783
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
|
|
5784
|
-
"collection": "servicecompensationsnapshots",
|
|
5785
|
-
"tableName": "service_compensation_snapshots",
|
|
5786
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
5787
|
-
"extends": "SmrtObject",
|
|
5788
|
-
"fields": [
|
|
5789
|
-
{
|
|
5790
|
-
"name": "tenantId",
|
|
5791
|
-
"type": "text",
|
|
5792
|
-
"required": false,
|
|
5793
|
-
"columnType": "UUID"
|
|
5794
|
-
},
|
|
5795
|
-
{
|
|
5796
|
-
"name": "timeEntryId",
|
|
5797
|
-
"type": "foreignKey",
|
|
5798
|
-
"required": true,
|
|
5799
|
-
"related": "ServiceTimeEntry",
|
|
5800
|
-
"columnType": "UUID"
|
|
5801
|
-
},
|
|
5802
|
-
{
|
|
5803
|
-
"name": "amount",
|
|
5804
|
-
"type": "integer",
|
|
5805
|
-
"required": false,
|
|
5806
|
-
"columnType": "INTEGER",
|
|
5807
|
-
"default": 0
|
|
5808
|
-
},
|
|
5809
|
-
{
|
|
5810
|
-
"name": "currency",
|
|
5811
|
-
"type": "text",
|
|
5812
|
-
"required": false,
|
|
5813
|
-
"columnType": "TEXT"
|
|
5814
|
-
},
|
|
5815
|
-
{
|
|
5816
|
-
"name": "termsVersion",
|
|
5817
|
-
"type": "text",
|
|
5818
|
-
"required": false,
|
|
5819
|
-
"columnType": "TEXT"
|
|
5820
|
-
},
|
|
5821
|
-
{
|
|
5822
|
-
"name": "rateSnapshot",
|
|
5823
|
-
"type": "text",
|
|
5824
|
-
"required": false,
|
|
5825
|
-
"columnType": "TEXT"
|
|
5826
|
-
},
|
|
5827
|
-
{
|
|
5828
|
-
"name": "createdAt",
|
|
5829
|
-
"type": "datetime",
|
|
5830
|
-
"required": false,
|
|
5831
|
-
"columnType": "TIMESTAMP"
|
|
5832
|
-
}
|
|
5833
|
-
],
|
|
5834
|
-
"relationships": [
|
|
5835
|
-
{
|
|
5836
|
-
"name": "timeEntryId",
|
|
5837
|
-
"type": "foreignKey",
|
|
5838
|
-
"required": true,
|
|
5839
|
-
"related": "ServiceTimeEntry",
|
|
5840
|
-
"columnType": "UUID"
|
|
5841
|
-
}
|
|
5842
|
-
],
|
|
5843
|
-
"methods": [
|
|
5844
|
-
"initialize",
|
|
5845
|
-
"save"
|
|
5846
|
-
],
|
|
5847
|
-
"methodSignatures": [
|
|
5848
|
-
{
|
|
5849
|
-
"name": "initialize",
|
|
5850
|
-
"async": true,
|
|
5851
|
-
"returns": "Promise<this>"
|
|
5852
|
-
},
|
|
5853
|
-
{
|
|
5854
|
-
"name": "save",
|
|
5855
|
-
"async": true,
|
|
5856
|
-
"returns": "Promise<this>"
|
|
5857
|
-
}
|
|
5858
|
-
],
|
|
5859
|
-
"tenant": {
|
|
5860
|
-
"scoped": true,
|
|
5861
|
-
"mode": "optional",
|
|
5862
|
-
"field": "tenantId"
|
|
5863
|
-
},
|
|
5864
|
-
"conflictColumns": [
|
|
5865
|
-
"time_entry_id"
|
|
5866
|
-
],
|
|
5867
|
-
"surfaces": [
|
|
5868
|
-
{
|
|
5869
|
-
"kind": "api",
|
|
5870
|
-
"name": "servicecompensationsnapshots.list",
|
|
5871
|
-
"operation": "list",
|
|
5872
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
|
|
5873
|
-
"path": "/servicecompensationsnapshots",
|
|
5874
|
-
"method": "GET"
|
|
5875
|
-
},
|
|
5876
|
-
{
|
|
5877
|
-
"kind": "api",
|
|
5878
|
-
"name": "servicecompensationsnapshots.get",
|
|
5879
|
-
"operation": "get",
|
|
5880
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
|
|
5881
|
-
"path": "/servicecompensationsnapshots/[id]",
|
|
5882
|
-
"method": "GET"
|
|
5883
|
-
},
|
|
5884
|
-
{
|
|
5885
|
-
"kind": "cli",
|
|
5886
|
-
"name": "servicecompensationsnapshot_list",
|
|
5887
|
-
"operation": "list",
|
|
5888
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5889
|
-
},
|
|
5890
|
-
{
|
|
5891
|
-
"kind": "cli",
|
|
5892
|
-
"name": "servicecompensationsnapshot_get",
|
|
5893
|
-
"operation": "get",
|
|
5894
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5895
|
-
},
|
|
5896
|
-
{
|
|
5897
|
-
"kind": "mcp",
|
|
5898
|
-
"name": "servicecompensationsnapshot_list",
|
|
5899
|
-
"operation": "list",
|
|
5900
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5901
|
-
},
|
|
5902
|
-
{
|
|
5903
|
-
"kind": "mcp",
|
|
5904
|
-
"name": "servicecompensationsnapshot_get",
|
|
5905
|
-
"operation": "get",
|
|
5906
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5907
|
-
}
|
|
5908
|
-
],
|
|
5909
|
-
"withheldSurfaces": [
|
|
5910
|
-
{
|
|
5911
|
-
"kind": "api",
|
|
5912
|
-
"operation": "initialize",
|
|
5913
|
-
"code": "lifecycle-method",
|
|
5914
|
-
"reason": "`initialize` is a framework lifecycle method, not a distinct operation",
|
|
5915
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5916
|
-
},
|
|
5917
|
-
{
|
|
5918
|
-
"kind": "api",
|
|
5919
|
-
"operation": "save",
|
|
5920
|
-
"code": "lifecycle-method",
|
|
5921
|
-
"reason": "`save` is a framework lifecycle method, not a distinct operation",
|
|
5922
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
5923
|
-
}
|
|
5924
|
-
],
|
|
5925
|
-
"relationshipFeatures": [
|
|
5926
|
-
"foreignKey",
|
|
5927
|
-
"uuidColumns"
|
|
5928
|
-
],
|
|
5929
|
-
"tags": [],
|
|
5930
|
-
"risks": []
|
|
5931
|
-
},
|
|
5932
|
-
{
|
|
5933
|
-
"name": "ServiceTimeEntryCollection",
|
|
5934
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
5935
|
-
"collection": "servicetimeentries",
|
|
5936
|
-
"tableName": "service_time_entries",
|
|
5937
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
5938
|
-
"extends": "SmrtCollection",
|
|
5939
|
-
"fields": [],
|
|
5940
|
-
"relationships": [],
|
|
5941
|
-
"methods": [
|
|
5942
|
-
"forCase",
|
|
5943
|
-
"forSpecialist",
|
|
5944
|
-
"forWork",
|
|
5945
|
-
"pendingApproval"
|
|
5946
|
-
],
|
|
5947
|
-
"methodSignatures": [
|
|
5948
|
-
{
|
|
5949
|
-
"name": "forCase",
|
|
5950
|
-
"async": true,
|
|
5951
|
-
"params": [
|
|
5952
|
-
"caseId: string"
|
|
5953
|
-
],
|
|
5954
|
-
"returns": "Promise<ServiceTimeEntry[]>"
|
|
5955
|
-
},
|
|
5956
|
-
{
|
|
5957
|
-
"name": "forSpecialist",
|
|
5958
|
-
"async": true,
|
|
5959
|
-
"params": [
|
|
5960
|
-
"specialistId: string"
|
|
5961
|
-
],
|
|
5962
|
-
"returns": "Promise<ServiceTimeEntry[]>"
|
|
5963
|
-
},
|
|
5964
|
-
{
|
|
5965
|
-
"name": "forWork",
|
|
5966
|
-
"async": true,
|
|
5967
|
-
"params": [
|
|
5968
|
-
"workRefType: string",
|
|
5969
|
-
"workRefId: string"
|
|
5970
|
-
],
|
|
5971
|
-
"returns": "Promise<ServiceTimeEntry[]>"
|
|
5972
|
-
},
|
|
5973
|
-
{
|
|
5974
|
-
"name": "pendingApproval",
|
|
5975
|
-
"async": true,
|
|
5976
|
-
"returns": "Promise<ServiceTimeEntry[]>"
|
|
5977
|
-
}
|
|
5978
|
-
],
|
|
5979
|
-
"surfaces": [
|
|
5980
|
-
{
|
|
5981
|
-
"kind": "api",
|
|
5982
|
-
"name": "servicetimeentries.forWork",
|
|
5983
|
-
"operation": "forWork",
|
|
5984
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
5985
|
-
"path": "/servicetimeentries/forWork",
|
|
5986
|
-
"method": "POST"
|
|
5987
|
-
},
|
|
5988
|
-
{
|
|
5989
|
-
"kind": "api",
|
|
5990
|
-
"name": "servicetimeentries.forCase",
|
|
5991
|
-
"operation": "forCase",
|
|
5992
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
5993
|
-
"path": "/servicetimeentries/forCase",
|
|
5994
|
-
"method": "POST"
|
|
5995
|
-
},
|
|
5996
|
-
{
|
|
5997
|
-
"kind": "api",
|
|
5998
|
-
"name": "servicetimeentries.forSpecialist",
|
|
5999
|
-
"operation": "forSpecialist",
|
|
6000
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
6001
|
-
"path": "/servicetimeentries/forSpecialist",
|
|
6002
|
-
"method": "POST"
|
|
6003
|
-
},
|
|
6004
|
-
{
|
|
6005
|
-
"kind": "api",
|
|
6006
|
-
"name": "servicetimeentries.pendingApproval",
|
|
6007
|
-
"operation": "pendingApproval",
|
|
6008
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
6009
|
-
"path": "/servicetimeentries/pendingApproval",
|
|
6010
|
-
"method": "POST"
|
|
6011
|
-
},
|
|
6012
|
-
{
|
|
6013
|
-
"kind": "cli",
|
|
6014
|
-
"name": "servicetimeentrycollection_forWork",
|
|
6015
|
-
"operation": "forWork",
|
|
6016
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6017
|
-
},
|
|
6018
|
-
{
|
|
6019
|
-
"kind": "cli",
|
|
6020
|
-
"name": "servicetimeentrycollection_forCase",
|
|
6021
|
-
"operation": "forCase",
|
|
6022
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6023
|
-
},
|
|
6024
|
-
{
|
|
6025
|
-
"kind": "cli",
|
|
6026
|
-
"name": "servicetimeentrycollection_forSpecialist",
|
|
6027
|
-
"operation": "forSpecialist",
|
|
6028
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6029
|
-
},
|
|
6030
|
-
{
|
|
6031
|
-
"kind": "cli",
|
|
6032
|
-
"name": "servicetimeentrycollection_pendingApproval",
|
|
6033
|
-
"operation": "pendingApproval",
|
|
6034
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6035
|
-
},
|
|
6036
|
-
{
|
|
6037
|
-
"kind": "mcp",
|
|
6038
|
-
"name": "servicetimeentrycollection_forwork",
|
|
6039
|
-
"operation": "forWork",
|
|
6040
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6041
|
-
},
|
|
6042
|
-
{
|
|
6043
|
-
"kind": "mcp",
|
|
6044
|
-
"name": "servicetimeentrycollection_forcase",
|
|
6045
|
-
"operation": "forCase",
|
|
6046
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6047
|
-
},
|
|
6048
|
-
{
|
|
6049
|
-
"kind": "mcp",
|
|
6050
|
-
"name": "servicetimeentrycollection_forspecialist",
|
|
6051
|
-
"operation": "forSpecialist",
|
|
6052
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6053
|
-
},
|
|
6054
|
-
{
|
|
6055
|
-
"kind": "mcp",
|
|
6056
|
-
"name": "servicetimeentrycollection_pendingapproval",
|
|
6057
|
-
"operation": "pendingApproval",
|
|
6058
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
6059
|
-
}
|
|
6060
|
-
],
|
|
6061
|
-
"relationshipFeatures": [
|
|
6062
|
-
"uuidColumns"
|
|
6063
|
-
],
|
|
6064
|
-
"tags": [],
|
|
6065
|
-
"risks": []
|
|
6066
|
-
},
|
|
6067
|
-
{
|
|
6068
|
-
"name": "ServiceChargeSnapshotCollection",
|
|
6069
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceChargeSnapshotCollection",
|
|
6070
|
-
"collection": "servicechargesnapshots",
|
|
6071
|
-
"tableName": "service_charge_snapshots",
|
|
6072
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
6073
|
-
"extends": "SmrtCollection",
|
|
6074
|
-
"fields": [],
|
|
6075
|
-
"relationships": [],
|
|
6076
|
-
"methods": [],
|
|
6077
|
-
"surfaces": [],
|
|
6078
|
-
"relationshipFeatures": [
|
|
6079
|
-
"uuidColumns"
|
|
6080
|
-
],
|
|
6081
|
-
"tags": [],
|
|
6082
|
-
"risks": []
|
|
6083
|
-
},
|
|
6084
|
-
{
|
|
6085
|
-
"name": "ServiceCompensationSnapshotCollection",
|
|
6086
|
-
"qualifiedName": "@happyvertical/smrt-projects:ServiceCompensationSnapshotCollection",
|
|
6087
|
-
"collection": "servicecompensationsnapshots",
|
|
6088
|
-
"tableName": "service_compensation_snapshots",
|
|
6089
|
-
"packageName": "@happyvertical/smrt-projects",
|
|
6090
|
-
"extends": "SmrtCollection",
|
|
6091
|
-
"fields": [],
|
|
6092
|
-
"relationships": [],
|
|
6093
|
-
"methods": [],
|
|
6094
|
-
"surfaces": [],
|
|
6095
|
-
"relationshipFeatures": [
|
|
6096
|
-
"uuidColumns"
|
|
6097
|
-
],
|
|
6098
|
-
"tags": [],
|
|
6099
|
-
"risks": []
|
|
6100
5242
|
}
|
|
6101
5243
|
],
|
|
6102
5244
|
"surfaces": [
|
|
@@ -7591,206 +6733,6 @@
|
|
|
7591
6733
|
"name": "repository_sync",
|
|
7592
6734
|
"operation": "sync",
|
|
7593
6735
|
"objectName": "@happyvertical/smrt-projects:Repository"
|
|
7594
|
-
},
|
|
7595
|
-
{
|
|
7596
|
-
"kind": "api",
|
|
7597
|
-
"name": "servicetimeentries.list",
|
|
7598
|
-
"operation": "list",
|
|
7599
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
|
|
7600
|
-
"path": "/servicetimeentries",
|
|
7601
|
-
"method": "GET"
|
|
7602
|
-
},
|
|
7603
|
-
{
|
|
7604
|
-
"kind": "api",
|
|
7605
|
-
"name": "servicetimeentries.get",
|
|
7606
|
-
"operation": "get",
|
|
7607
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry",
|
|
7608
|
-
"path": "/servicetimeentries/[id]",
|
|
7609
|
-
"method": "GET"
|
|
7610
|
-
},
|
|
7611
|
-
{
|
|
7612
|
-
"kind": "cli",
|
|
7613
|
-
"name": "servicetimeentry_list",
|
|
7614
|
-
"operation": "list",
|
|
7615
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
7616
|
-
},
|
|
7617
|
-
{
|
|
7618
|
-
"kind": "cli",
|
|
7619
|
-
"name": "servicetimeentry_get",
|
|
7620
|
-
"operation": "get",
|
|
7621
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
7622
|
-
},
|
|
7623
|
-
{
|
|
7624
|
-
"kind": "mcp",
|
|
7625
|
-
"name": "servicetimeentry_list",
|
|
7626
|
-
"operation": "list",
|
|
7627
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
7628
|
-
},
|
|
7629
|
-
{
|
|
7630
|
-
"kind": "mcp",
|
|
7631
|
-
"name": "servicetimeentry_get",
|
|
7632
|
-
"operation": "get",
|
|
7633
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntry"
|
|
7634
|
-
},
|
|
7635
|
-
{
|
|
7636
|
-
"kind": "api",
|
|
7637
|
-
"name": "servicechargesnapshots.list",
|
|
7638
|
-
"operation": "list",
|
|
7639
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
|
|
7640
|
-
"path": "/servicechargesnapshots",
|
|
7641
|
-
"method": "GET"
|
|
7642
|
-
},
|
|
7643
|
-
{
|
|
7644
|
-
"kind": "api",
|
|
7645
|
-
"name": "servicechargesnapshots.get",
|
|
7646
|
-
"operation": "get",
|
|
7647
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot",
|
|
7648
|
-
"path": "/servicechargesnapshots/[id]",
|
|
7649
|
-
"method": "GET"
|
|
7650
|
-
},
|
|
7651
|
-
{
|
|
7652
|
-
"kind": "cli",
|
|
7653
|
-
"name": "servicechargesnapshot_list",
|
|
7654
|
-
"operation": "list",
|
|
7655
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
7656
|
-
},
|
|
7657
|
-
{
|
|
7658
|
-
"kind": "cli",
|
|
7659
|
-
"name": "servicechargesnapshot_get",
|
|
7660
|
-
"operation": "get",
|
|
7661
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
7662
|
-
},
|
|
7663
|
-
{
|
|
7664
|
-
"kind": "mcp",
|
|
7665
|
-
"name": "servicechargesnapshot_list",
|
|
7666
|
-
"operation": "list",
|
|
7667
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
7668
|
-
},
|
|
7669
|
-
{
|
|
7670
|
-
"kind": "mcp",
|
|
7671
|
-
"name": "servicechargesnapshot_get",
|
|
7672
|
-
"operation": "get",
|
|
7673
|
-
"objectName": "@happyvertical/smrt-projects:ServiceChargeSnapshot"
|
|
7674
|
-
},
|
|
7675
|
-
{
|
|
7676
|
-
"kind": "api",
|
|
7677
|
-
"name": "servicecompensationsnapshots.list",
|
|
7678
|
-
"operation": "list",
|
|
7679
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
|
|
7680
|
-
"path": "/servicecompensationsnapshots",
|
|
7681
|
-
"method": "GET"
|
|
7682
|
-
},
|
|
7683
|
-
{
|
|
7684
|
-
"kind": "api",
|
|
7685
|
-
"name": "servicecompensationsnapshots.get",
|
|
7686
|
-
"operation": "get",
|
|
7687
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot",
|
|
7688
|
-
"path": "/servicecompensationsnapshots/[id]",
|
|
7689
|
-
"method": "GET"
|
|
7690
|
-
},
|
|
7691
|
-
{
|
|
7692
|
-
"kind": "cli",
|
|
7693
|
-
"name": "servicecompensationsnapshot_list",
|
|
7694
|
-
"operation": "list",
|
|
7695
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
7696
|
-
},
|
|
7697
|
-
{
|
|
7698
|
-
"kind": "cli",
|
|
7699
|
-
"name": "servicecompensationsnapshot_get",
|
|
7700
|
-
"operation": "get",
|
|
7701
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
7702
|
-
},
|
|
7703
|
-
{
|
|
7704
|
-
"kind": "mcp",
|
|
7705
|
-
"name": "servicecompensationsnapshot_list",
|
|
7706
|
-
"operation": "list",
|
|
7707
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
7708
|
-
},
|
|
7709
|
-
{
|
|
7710
|
-
"kind": "mcp",
|
|
7711
|
-
"name": "servicecompensationsnapshot_get",
|
|
7712
|
-
"operation": "get",
|
|
7713
|
-
"objectName": "@happyvertical/smrt-projects:ServiceCompensationSnapshot"
|
|
7714
|
-
},
|
|
7715
|
-
{
|
|
7716
|
-
"kind": "api",
|
|
7717
|
-
"name": "servicetimeentries.forWork",
|
|
7718
|
-
"operation": "forWork",
|
|
7719
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
7720
|
-
"path": "/servicetimeentries/forWork",
|
|
7721
|
-
"method": "POST"
|
|
7722
|
-
},
|
|
7723
|
-
{
|
|
7724
|
-
"kind": "api",
|
|
7725
|
-
"name": "servicetimeentries.forCase",
|
|
7726
|
-
"operation": "forCase",
|
|
7727
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
7728
|
-
"path": "/servicetimeentries/forCase",
|
|
7729
|
-
"method": "POST"
|
|
7730
|
-
},
|
|
7731
|
-
{
|
|
7732
|
-
"kind": "api",
|
|
7733
|
-
"name": "servicetimeentries.forSpecialist",
|
|
7734
|
-
"operation": "forSpecialist",
|
|
7735
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
7736
|
-
"path": "/servicetimeentries/forSpecialist",
|
|
7737
|
-
"method": "POST"
|
|
7738
|
-
},
|
|
7739
|
-
{
|
|
7740
|
-
"kind": "api",
|
|
7741
|
-
"name": "servicetimeentries.pendingApproval",
|
|
7742
|
-
"operation": "pendingApproval",
|
|
7743
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection",
|
|
7744
|
-
"path": "/servicetimeentries/pendingApproval",
|
|
7745
|
-
"method": "POST"
|
|
7746
|
-
},
|
|
7747
|
-
{
|
|
7748
|
-
"kind": "cli",
|
|
7749
|
-
"name": "servicetimeentrycollection_forWork",
|
|
7750
|
-
"operation": "forWork",
|
|
7751
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7752
|
-
},
|
|
7753
|
-
{
|
|
7754
|
-
"kind": "cli",
|
|
7755
|
-
"name": "servicetimeentrycollection_forCase",
|
|
7756
|
-
"operation": "forCase",
|
|
7757
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7758
|
-
},
|
|
7759
|
-
{
|
|
7760
|
-
"kind": "cli",
|
|
7761
|
-
"name": "servicetimeentrycollection_forSpecialist",
|
|
7762
|
-
"operation": "forSpecialist",
|
|
7763
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7764
|
-
},
|
|
7765
|
-
{
|
|
7766
|
-
"kind": "cli",
|
|
7767
|
-
"name": "servicetimeentrycollection_pendingApproval",
|
|
7768
|
-
"operation": "pendingApproval",
|
|
7769
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7770
|
-
},
|
|
7771
|
-
{
|
|
7772
|
-
"kind": "mcp",
|
|
7773
|
-
"name": "servicetimeentrycollection_forwork",
|
|
7774
|
-
"operation": "forWork",
|
|
7775
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7776
|
-
},
|
|
7777
|
-
{
|
|
7778
|
-
"kind": "mcp",
|
|
7779
|
-
"name": "servicetimeentrycollection_forcase",
|
|
7780
|
-
"operation": "forCase",
|
|
7781
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7782
|
-
},
|
|
7783
|
-
{
|
|
7784
|
-
"kind": "mcp",
|
|
7785
|
-
"name": "servicetimeentrycollection_forspecialist",
|
|
7786
|
-
"operation": "forSpecialist",
|
|
7787
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7788
|
-
},
|
|
7789
|
-
{
|
|
7790
|
-
"kind": "mcp",
|
|
7791
|
-
"name": "servicetimeentrycollection_pendingapproval",
|
|
7792
|
-
"operation": "pendingApproval",
|
|
7793
|
-
"objectName": "@happyvertical/smrt-projects:ServiceTimeEntryCollection"
|
|
7794
6736
|
}
|
|
7795
6737
|
],
|
|
7796
6738
|
"prompts": [
|
|
@@ -7799,12 +6741,12 @@
|
|
|
7799
6741
|
}
|
|
7800
6742
|
],
|
|
7801
6743
|
"relationshipsV2": {
|
|
7802
|
-
"foreignKeyFields":
|
|
7803
|
-
"crossPackageRefFields":
|
|
6744
|
+
"foreignKeyFields": 13,
|
|
6745
|
+
"crossPackageRefFields": 0,
|
|
7804
6746
|
"junctionCollections": 0,
|
|
7805
6747
|
"hierarchicalObjects": 0,
|
|
7806
6748
|
"polymorphicAssociations": 0,
|
|
7807
|
-
"uuidColumns":
|
|
6749
|
+
"uuidColumns": 79
|
|
7808
6750
|
},
|
|
7809
|
-
"agentDoc": "# @happyvertical/smrt-projects\n\nProvider-agnostic project management plus the managed-application delivery\ncontrol plane. Repository and board providers remain canonical; managed apps\nonly receive scoped Project Integration credentials and provider-neutral\nrequest/delivery projections.\n\n## Managed application delivery (#1949)\n\n- `ProjectIntegration` stores capability grants and a sensitive credential\n hash; the raw credential is returned once by\n `ProjectIntegrationCollection.provision()`/`rotate()` and is never persisted.\n Provisioning, rotation, and revocation are append-only audited.\n- The stable requester identity is supplied when authenticating\n `ManagedProjectClient`; request reads are always restricted to that requester\n and integration.\n- `DevelopmentRequest` preserves evidence, origin, discussion, visibility, and\n lifecycle history. `ManagedProjectClient` owns managed intake and\n `DevelopmentRequestService` adds internal triage and work projection.\n- `DevelopmentRequestWorkLink` connects zero-to-many provider-neutral work\n items. Canonical status stays on the link and drives request lifecycle\n projection without granting the managed app provider credentials.\n- `ProjectDeliveryEvent` is idempotent per integration key and sequenced for\n replay. Preview decisions flow through the control-plane adapter, never\n directly to repository providers.\n- `AssistanceRequest` preserves conversational intake before lossless routing\n to Support, Development, or both. `smrt-support` supplies the concrete\n `ProjectAssistanceSupportAdapter`.\n- `ManagedProjectClient` deliberately exposes no repository or board client;\n delivery and assistance use separate capability-gated service facades.\n\n## Shared Professional Service evidence (#1955)\n\n`ServiceTimeEntry`
|
|
6751
|
+
"agentDoc": "# @happyvertical/smrt-projects\n\nProvider-agnostic project management plus the managed-application delivery\ncontrol plane. Repository and board providers remain canonical; managed apps\nonly receive scoped Project Integration credentials and provider-neutral\nrequest/delivery projections.\n\n## Managed application delivery (#1949)\n\n- `ProjectIntegration` stores capability grants and a sensitive credential\n hash; the raw credential is returned once by\n `ProjectIntegrationCollection.provision()`/`rotate()` and is never persisted.\n Provisioning, rotation, and revocation are append-only audited.\n- The stable requester identity is supplied when authenticating\n `ManagedProjectClient`; request reads are always restricted to that requester\n and integration.\n- `DevelopmentRequest` preserves evidence, origin, discussion, visibility, and\n lifecycle history. `ManagedProjectClient` owns managed intake and\n `DevelopmentRequestService` adds internal triage and work projection.\n- `DevelopmentRequestWorkLink` connects zero-to-many provider-neutral work\n items. Canonical status stays on the link and drives request lifecycle\n projection without granting the managed app provider credentials.\n- `ProjectDeliveryEvent` is idempotent per integration key and sequenced for\n replay. Preview decisions flow through the control-plane adapter, never\n directly to repository providers.\n- `AssistanceRequest` preserves conversational intake before lossless routing\n to Support, Development, or both. `smrt-support` supplies the concrete\n `ProjectAssistanceSupportAdapter`.\n- `ManagedProjectClient` deliberately exposes no repository or board client;\n delivery and assistance use separate capability-gated service facades.\n\n## Shared Professional Service evidence (#1955, #3288)\n\n`ServiceTimeEntry`, `ServiceChargeSnapshot`, `ServiceCompensationSnapshot`,\ntheir collections, and `ServiceEvidenceService` are owned by\n`@happyvertical/smrt-timesheets` (#3288) and **re-exported** here unchanged,\non the unchanged `service_time_entries` / snapshot tables. Do not reintroduce\na projects subclass: a third same-named class on the table breaks the\nsingle-table-family resolution (see `packages/timesheets/AGENTS.md`).\n`caseId` / `specialistId` exist only on smrt-support's subtype;\n`SubscriptionServiceCommercialResolver` reads them duck-typed when a support\nentry is priced. It prices client work through `smrt-subscriptions` (#1925);\nprovider compensation remains a separate resolver and snapshot. The\ntime-entry Svelte components are re-exported from smrt-timesheets too. See\n`SERVICE_TIME_MIGRATION.md`.\n\n## Models\n\n| Model | Key Fields | Notes |\n|-------|-----------|-------|\n| **Repository** | `owner`, `name`, `providerType`, `tokenConfigKey` | `sync()`, `getIssues()`, `getPullRequests()` |\n| **Issue** | `repositoryId` (FK), `number`, `title`, `body`, `state`, `labels[]` | `incorporateFeedback()`, `rollback()`, `suggestLabels()` |\n| **PullRequest** | extends Issue + `headRef`, `baseRef`, `merged`, `draft` | STI on Issue table. `summarize()`, `merge()` |\n| **Project** | `projectId`, `title`, `statuses[]`, `statusFieldId` | GitHub Projects V2. `addItem()`, `moveItem()`, `analyzeHealth()` |\n| **Comment** | `issueId` (FK), `body`, `authorLogin` | AI analysis support |\n| **Label** | `repositoryId` (FK), `name`, `color` | |\n\n## Key Patterns\n\n- **Token config reference**: stores env var name (`tokenConfigKey: 'GITHUB_TOKEN'`), not the token itself. Resolved at runtime from `process.env` or `getModuleConfig()`\n- **Living spec** (`incorporateFeedback()`): AI synthesizes issue comments into updated body. Supports preview mode and `rollback()`\n- **Provider-agnostic**: GitHub primary, GitLab/Bitbucket/Azure planned. Uses `@happyvertical/repos` and `@happyvertical/projects` SDK packages\n- **PullRequest is STI on Issue**: shares table, discriminated by `_meta_type`\n\n## Collection Methods\n\nAll collections provide: `discover({ repository, filters })`, `findByRepository(repoId)`, `findOpen(repoId?)`, `batchSync(repository)`.\n\n## Gotchas\n\n- **Money is integer minor units** (cents) — `$19.99` is `1999`.\n `ServiceChargeSnapshot.amount` and `ServiceCompensationSnapshot.amount`\n (declared in smrt-timesheets)\n initialize `= 0`, never `= 0.0`: the integer literal is what maps them to\n INTEGER columns (BIGINT on fresh PostgreSQL/DuckDB databases; #2401, #2373). The two convert as a pair — the delivery margin is\n `charge - compensation`, an exact integer subtraction with no tolerance —\n and both are fed verbatim by `CommercialSnapshot.amount`, so a resolver that\n returns major units is wrong on every engine: snapshot `save()` refuses a\n fractional value (`19.99`) on SQLite and PostgreSQL alike, but a whole\n major-unit value (`150` for $150.00) is a valid integer and is stored\n 100× too small. `pnpm --filter @happyvertical/smrt-timesheets\n test:postgres` is the lane that holds the line (moved with the snapshots in\n #3288).\n- **UI formats by dividing, never by `toFixed`**: `formatCurrency()` and\n `ServiceEvidenceList`'s `money()` scale back to major units using the\n currency's own minor-unit exponent, so zero-decimal currencies (JPY, KRW) are\n not divided.\n- **Migrating an existing database**: `preflightProjectsMoneyMinorUnits(db)`\n reports which columns still hold major units and which rows would be rounded\n or exceed JavaScript's safe-integer range; `migrateProjectsMoneyToMinorUnits(db)` converts them\n (idempotent via `_smrt_backfills`). On SQLite the values are rescaled but the\n declared type needs the table-rebuild path (#2370). Fresh PostgreSQL/DuckDB\n INTEGER columns are BIGINT and hydration rejects values outside JavaScript's\n safe-integer range; existing PostgreSQL `int4` columns require #2424.\n- **SDK dependency**: requires `@happyvertical/repos` and `@happyvertical/projects` from SDK\n- **tokenConfigKey not tokenValue**: never store actual tokens in the database\n- **synthesisCount tracks incorporateFeedback calls**: incremented on each apply\n"
|
|
7810
6752
|
}
|