mcp-perforce-server 3.0.0 → 3.2.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.
@@ -6,10 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.p4ReviewBundle = p4ReviewBundle;
7
7
  exports.p4ChangeInspect = p4ChangeInspect;
8
8
  exports.p4PathSyncCheck = p4PathSyncCheck;
9
+ exports.p4FileInspect = p4FileInspect;
10
+ exports.p4WorkspaceSnapshot = p4WorkspaceSnapshot;
11
+ exports.p4SearchInspect = p4SearchInspect;
12
+ exports.p4ReviewPrepare = p4ReviewPrepare;
9
13
  const basic_js_1 = require("./basic.js");
10
14
  const changelist_js_1 = require("./changelist.js");
11
15
  const advanced_js_1 = require("./advanced.js");
12
16
  const utils_js_1 = require("./utils.js");
17
+ const arg_utils_js_1 = require("./arg-utils.js");
13
18
  function getArrayResult(value) {
14
19
  return Array.isArray(value) ? value : [];
15
20
  }
@@ -22,6 +27,32 @@ function getStringChangelist(value) {
22
27
  }
23
28
  return null;
24
29
  }
30
+ function getStringArray(value) {
31
+ return Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];
32
+ }
33
+ function getFstatRecordForInput(records, input) {
34
+ const normalizedInput = input.trim();
35
+ return records.find((record) => {
36
+ const depotFile = typeof record.depotFile === 'string' ? record.depotFile : null;
37
+ const clientFile = typeof record.clientFile === 'string' ? record.clientFile : null;
38
+ const path = typeof record.path === 'string' ? record.path : null;
39
+ return depotFile === normalizedInput || clientFile === normalizedInput || path === normalizedInput;
40
+ });
41
+ }
42
+ function buildContextSnippets(content, matchLines, contextLines) {
43
+ const lines = content.split(/\r?\n/);
44
+ return matchLines.map((lineNumber) => {
45
+ const startLine = Math.max(1, lineNumber - contextLines);
46
+ const endLine = Math.min(lines.length, lineNumber + contextLines);
47
+ const snippet = lines.slice(startLine - 1, endLine).join('\n');
48
+ return {
49
+ line: lineNumber,
50
+ startLine,
51
+ endLine,
52
+ snippet,
53
+ };
54
+ });
55
+ }
25
56
  function getWorkflowConcurrency() {
26
57
  const parsed = parseInt(process.env.P4_WORKFLOW_CONCURRENCY || '6', 10);
27
58
  if (!Number.isFinite(parsed) || parsed <= 0) {
@@ -472,4 +503,520 @@ async function p4PathSyncCheck(context, args) {
472
503
  },
473
504
  };
474
505
  }
506
+ /**
507
+ * p4.file.inspect - Aggregate metadata, history, content, and blame for one or more files
508
+ */
509
+ async function p4FileInspect(context, args) {
510
+ const requestedFiles = (0, arg_utils_js_1.mergeStringArgs)(args.filespec, args.filespecs);
511
+ if (requestedFiles.length === 0) {
512
+ return {
513
+ ok: false,
514
+ command: 'file.inspect',
515
+ args: [],
516
+ cwd: process.cwd(),
517
+ configUsed: {},
518
+ error: {
519
+ code: 'P4_INVALID_ARGS',
520
+ message: 'filespec or filespecs is required',
521
+ },
522
+ };
523
+ }
524
+ const workflowConcurrency = getWorkflowConcurrency();
525
+ const maxFiles = Math.max(1, Math.min(args.maxFiles || requestedFiles.length, 25));
526
+ const maxRevisions = Math.max(1, Math.min(args.maxRevisions || 5, 50));
527
+ const selectedFiles = requestedFiles.slice(0, maxFiles);
528
+ const includeFstat = args.includeFstat !== false;
529
+ const includeHistory = args.includeHistory !== false;
530
+ const includeContent = args.includeContent === true;
531
+ const includeBlame = args.includeBlame === true;
532
+ const warnings = [];
533
+ const subcallCounts = {
534
+ fstat: 0,
535
+ filelog: 0,
536
+ print: 0,
537
+ blame: 0,
538
+ };
539
+ let fstatStep;
540
+ let fstatRecords = [];
541
+ if (includeFstat) {
542
+ const fstatResult = await (0, basic_js_1.p4Fstat)(context, {
543
+ filespecs: selectedFiles,
544
+ workspacePath: args.workspacePath,
545
+ });
546
+ subcallCounts.fstat = 1;
547
+ fstatStep = {
548
+ ok: fstatResult.ok,
549
+ result: fstatResult.result,
550
+ error: fstatResult.error,
551
+ };
552
+ fstatRecords = getArrayResult(fstatResult.result);
553
+ if (fstatResult.warnings) {
554
+ warnings.push(...fstatResult.warnings);
555
+ }
556
+ }
557
+ const historyResults = includeHistory
558
+ ? await runWithConcurrencyLimit(selectedFiles, workflowConcurrency, async (filespec) => ({
559
+ filespec,
560
+ response: await (0, utils_js_1.p4Filelog)(context, {
561
+ filespec,
562
+ maxRevisions,
563
+ workspacePath: args.workspacePath,
564
+ }),
565
+ }))
566
+ : [];
567
+ subcallCounts.filelog = historyResults.length;
568
+ const printResults = includeContent
569
+ ? await runWithConcurrencyLimit(selectedFiles, workflowConcurrency, async (filespec) => ({
570
+ filespec,
571
+ response: await (0, basic_js_1.p4Print)(context, {
572
+ filespec,
573
+ quiet: true,
574
+ workspacePath: args.workspacePath,
575
+ }),
576
+ }))
577
+ : [];
578
+ subcallCounts.print = printResults.length;
579
+ const blameResults = includeBlame
580
+ ? await runWithConcurrencyLimit(selectedFiles, workflowConcurrency, async (filespec) => ({
581
+ filespec,
582
+ response: await (0, basic_js_1.p4Blame)(context, {
583
+ file: filespec,
584
+ workspacePath: args.workspacePath,
585
+ }),
586
+ }))
587
+ : [];
588
+ subcallCounts.blame = blameResults.length;
589
+ const historyByFile = new Map(historyResults.map((entry) => [entry.filespec, entry.response]));
590
+ const printByFile = new Map(printResults.map((entry) => [entry.filespec, entry.response]));
591
+ const blameByFile = new Map(blameResults.map((entry) => [entry.filespec, entry.response]));
592
+ for (const entry of [...historyResults, ...printResults, ...blameResults]) {
593
+ if (entry.response.warnings) {
594
+ warnings.push(...entry.response.warnings);
595
+ }
596
+ }
597
+ const inspectedFiles = selectedFiles.map((filespec) => {
598
+ const history = historyByFile.get(filespec);
599
+ const printed = printByFile.get(filespec);
600
+ const blame = blameByFile.get(filespec);
601
+ return {
602
+ filespec,
603
+ fstat: includeFstat
604
+ ? {
605
+ ok: !!fstatStep?.ok,
606
+ result: getFstatRecordForInput(fstatRecords, filespec),
607
+ error: fstatStep?.ok ? undefined : fstatStep?.error,
608
+ }
609
+ : undefined,
610
+ history: history
611
+ ? {
612
+ ok: history.ok,
613
+ result: history.result,
614
+ error: history.error,
615
+ }
616
+ : undefined,
617
+ content: printed
618
+ ? {
619
+ ok: printed.ok,
620
+ result: printed.result,
621
+ error: printed.error,
622
+ }
623
+ : undefined,
624
+ blame: blame
625
+ ? {
626
+ ok: blame.ok,
627
+ result: blame.result,
628
+ error: blame.error,
629
+ }
630
+ : undefined,
631
+ };
632
+ });
633
+ const firstResponse = historyResults[0]?.response ||
634
+ printResults[0]?.response ||
635
+ blameResults[0]?.response;
636
+ return {
637
+ ok: true,
638
+ command: 'file.inspect',
639
+ args: [],
640
+ cwd: firstResponse?.cwd || process.cwd(),
641
+ configUsed: firstResponse?.configUsed || {},
642
+ warnings: warnings.length > 0 ? warnings : undefined,
643
+ result: {
644
+ summary: {
645
+ requestedFiles: requestedFiles.length,
646
+ includedFiles: inspectedFiles.length,
647
+ includeFstat,
648
+ includeHistory,
649
+ includeContent,
650
+ includeBlame,
651
+ maxRevisions,
652
+ workflowConcurrency,
653
+ },
654
+ files: inspectedFiles,
655
+ meta: {
656
+ subcallCounts,
657
+ totalSubcalls: Object.values(subcallCounts).reduce((sum, value) => sum + value, 0),
658
+ },
659
+ steps: {
660
+ fstat: fstatStep,
661
+ },
662
+ },
663
+ };
664
+ }
665
+ /**
666
+ * p4.workspace.snapshot - Aggregate workspace info, status, config, and optional details
667
+ */
668
+ async function p4WorkspaceSnapshot(context, args = {}) {
669
+ const includeConfig = args.includeConfig !== false;
670
+ const includeOpened = args.includeOpened === true;
671
+ const includeRecentChanges = args.includeRecentChanges === true;
672
+ const recentChangesMax = Math.max(1, Math.min(args.recentChangesMax || 10, 50));
673
+ const [infoResult, statusResult, configResult, openedResult, recentChangesResult] = await Promise.all([
674
+ (0, basic_js_1.p4Info)(context, { workspacePath: args.workspacePath }),
675
+ (0, basic_js_1.p4Status)(context, { workspacePath: args.workspacePath }),
676
+ includeConfig ? (0, utils_js_1.p4ConfigDetect)(context, { workspacePath: args.workspacePath }) : Promise.resolve(null),
677
+ includeOpened ? (0, basic_js_1.p4Opened)(context, { workspacePath: args.workspacePath }) : Promise.resolve(null),
678
+ includeRecentChanges
679
+ ? (0, basic_js_1.p4Changes)(context, {
680
+ max: recentChangesMax,
681
+ workspacePath: args.workspacePath,
682
+ })
683
+ : Promise.resolve(null),
684
+ ]);
685
+ if (!infoResult.ok && !statusResult.ok) {
686
+ return {
687
+ ok: false,
688
+ command: 'workspace.snapshot',
689
+ args: [],
690
+ cwd: statusResult.cwd || infoResult.cwd || process.cwd(),
691
+ configUsed: statusResult.configUsed || infoResult.configUsed || {},
692
+ error: statusResult.error || infoResult.error,
693
+ warnings: [...(infoResult.warnings || []), ...(statusResult.warnings || [])],
694
+ };
695
+ }
696
+ const warnings = [
697
+ ...(infoResult.warnings || []),
698
+ ...(statusResult.warnings || []),
699
+ ...(configResult?.warnings || []),
700
+ ...(openedResult?.warnings || []),
701
+ ...(recentChangesResult?.warnings || []),
702
+ ];
703
+ const statusData = statusResult.result && typeof statusResult.result === 'object'
704
+ ? statusResult.result
705
+ : {};
706
+ const summaryData = statusData.summary && typeof statusData.summary === 'object'
707
+ ? statusData.summary
708
+ : {};
709
+ return {
710
+ ok: true,
711
+ command: 'workspace.snapshot',
712
+ args: [],
713
+ cwd: statusResult.cwd || infoResult.cwd || process.cwd(),
714
+ configUsed: statusResult.configUsed || infoResult.configUsed || {},
715
+ warnings: warnings.length > 0 ? warnings : undefined,
716
+ result: {
717
+ summary: {
718
+ totalOpenedFiles: summaryData.totalOpenedFiles || 0,
719
+ totalPendingChanges: summaryData.totalPendingChanges || 0,
720
+ filesByAction: summaryData.filesByAction || {},
721
+ recentChangesCount: recentChangesResult ? getArrayResult(recentChangesResult.result).length : 0,
722
+ includeConfig,
723
+ includeOpened,
724
+ includeRecentChanges,
725
+ },
726
+ steps: {
727
+ info: {
728
+ ok: infoResult.ok,
729
+ result: infoResult.result,
730
+ error: infoResult.error,
731
+ },
732
+ status: {
733
+ ok: statusResult.ok,
734
+ result: statusResult.result,
735
+ error: statusResult.error,
736
+ },
737
+ config: configResult
738
+ ? {
739
+ ok: configResult.ok,
740
+ result: configResult.result,
741
+ error: configResult.error,
742
+ }
743
+ : undefined,
744
+ opened: openedResult
745
+ ? {
746
+ ok: openedResult.ok,
747
+ result: openedResult.result,
748
+ error: openedResult.error,
749
+ }
750
+ : undefined,
751
+ recentChanges: recentChangesResult
752
+ ? {
753
+ ok: recentChangesResult.ok,
754
+ result: recentChangesResult.result,
755
+ error: recentChangesResult.error,
756
+ }
757
+ : undefined,
758
+ },
759
+ meta: {
760
+ subcallCounts: {
761
+ info: 1,
762
+ status: 1,
763
+ config: includeConfig ? 1 : 0,
764
+ opened: includeOpened ? 1 : 0,
765
+ changes: includeRecentChanges ? 1 : 0,
766
+ },
767
+ },
768
+ },
769
+ };
770
+ }
771
+ /**
772
+ * p4.search.inspect - Aggregate grep matches with grouped file metadata and optional content snippets
773
+ */
774
+ async function p4SearchInspect(context, args) {
775
+ if (!args.pattern) {
776
+ return {
777
+ ok: false,
778
+ command: 'search.inspect',
779
+ args: [],
780
+ cwd: process.cwd(),
781
+ configUsed: {},
782
+ error: {
783
+ code: 'P4_INVALID_ARGS',
784
+ message: 'pattern is required',
785
+ },
786
+ };
787
+ }
788
+ const requestedFilespecs = (0, arg_utils_js_1.mergeStringArgs)(args.filespec, args.filespecs);
789
+ const maxFiles = Math.max(1, Math.min(args.maxFiles || 20, 100));
790
+ const maxMatchesPerFile = Math.max(1, Math.min(args.maxMatchesPerFile || 10, 100));
791
+ const previewContextLines = Math.max(0, Math.min(args.previewContextLines || 2, 20));
792
+ const includeFstat = args.includeFstat !== false;
793
+ const includeContentPreview = args.includeContentPreview === true;
794
+ const workflowConcurrency = getWorkflowConcurrency();
795
+ const grepResult = await (0, basic_js_1.p4Grep)(context, {
796
+ pattern: args.pattern,
797
+ filespecs: requestedFilespecs.length > 0 ? requestedFilespecs : undefined,
798
+ caseInsensitive: args.caseInsensitive,
799
+ workspacePath: args.workspacePath,
800
+ });
801
+ if (!grepResult.ok) {
802
+ return {
803
+ ok: false,
804
+ command: 'search.inspect',
805
+ args: [],
806
+ cwd: grepResult.cwd,
807
+ configUsed: grepResult.configUsed || {},
808
+ error: grepResult.error,
809
+ warnings: grepResult.warnings,
810
+ };
811
+ }
812
+ const grepMatches = getArrayResult(grepResult.result);
813
+ const groupedMatches = new Map();
814
+ for (const match of grepMatches) {
815
+ const file = typeof match.file === 'string' ? match.file : null;
816
+ if (!file)
817
+ continue;
818
+ const existing = groupedMatches.get(file) || [];
819
+ if (existing.length < maxMatchesPerFile) {
820
+ existing.push(match);
821
+ groupedMatches.set(file, existing);
822
+ }
823
+ }
824
+ const selectedFiles = Array.from(groupedMatches.keys()).slice(0, maxFiles);
825
+ const warnings = [...(grepResult.warnings || [])];
826
+ const subcallCounts = {
827
+ grep: 1,
828
+ fstat: 0,
829
+ print: 0,
830
+ };
831
+ let fstatRecords = [];
832
+ if (includeFstat && selectedFiles.length > 0) {
833
+ const fstatResult = await (0, basic_js_1.p4Fstat)(context, {
834
+ filespecs: selectedFiles,
835
+ workspacePath: args.workspacePath,
836
+ });
837
+ subcallCounts.fstat = 1;
838
+ fstatRecords = getArrayResult(fstatResult.result);
839
+ if (fstatResult.warnings) {
840
+ warnings.push(...fstatResult.warnings);
841
+ }
842
+ }
843
+ const printResults = includeContentPreview && selectedFiles.length > 0
844
+ ? await runWithConcurrencyLimit(selectedFiles, workflowConcurrency, async (filespec) => ({
845
+ filespec,
846
+ response: await (0, basic_js_1.p4Print)(context, {
847
+ filespec,
848
+ quiet: true,
849
+ workspacePath: args.workspacePath,
850
+ }),
851
+ }))
852
+ : [];
853
+ subcallCounts.print = printResults.length;
854
+ const printByFile = new Map(printResults.map((entry) => [entry.filespec, entry.response]));
855
+ for (const entry of printResults) {
856
+ if (entry.response.warnings) {
857
+ warnings.push(...entry.response.warnings);
858
+ }
859
+ }
860
+ const files = selectedFiles.map((filespec) => {
861
+ const matches = groupedMatches.get(filespec) || [];
862
+ const printed = printByFile.get(filespec);
863
+ const content = printed &&
864
+ printed.result &&
865
+ typeof printed.result === 'object' &&
866
+ typeof printed.result.content === 'string'
867
+ ? printed.result.content
868
+ : '';
869
+ const matchLines = matches
870
+ .map((match) => (typeof match.line === 'number' ? match.line : null))
871
+ .filter((line) => line !== null);
872
+ return {
873
+ filespec,
874
+ totalMatches: matches.length,
875
+ matches,
876
+ fstat: includeFstat ? getFstatRecordForInput(fstatRecords, filespec) : undefined,
877
+ previews: includeContentPreview && content
878
+ ? buildContextSnippets(content, matchLines, previewContextLines)
879
+ : undefined,
880
+ };
881
+ });
882
+ return {
883
+ ok: true,
884
+ command: 'search.inspect',
885
+ args: [],
886
+ cwd: grepResult.cwd,
887
+ configUsed: grepResult.configUsed || {},
888
+ warnings: warnings.length > 0 ? warnings : undefined,
889
+ result: {
890
+ summary: {
891
+ pattern: args.pattern,
892
+ requestedFilespecs: requestedFilespecs.length,
893
+ matchedFiles: groupedMatches.size,
894
+ includedFiles: files.length,
895
+ totalMatches: grepMatches.length,
896
+ includeFstat,
897
+ includeContentPreview,
898
+ previewContextLines,
899
+ workflowConcurrency,
900
+ },
901
+ files,
902
+ meta: {
903
+ subcallCounts,
904
+ totalSubcalls: Object.values(subcallCounts).reduce((sum, value) => sum + value, 0),
905
+ },
906
+ steps: {
907
+ grep: {
908
+ ok: grepResult.ok,
909
+ result: grepResult.result,
910
+ error: grepResult.error,
911
+ },
912
+ },
913
+ },
914
+ };
915
+ }
916
+ /**
917
+ * p4.review.prepare - Build review-ready context for explicit or discovered changelists
918
+ */
919
+ async function p4ReviewPrepare(context, args = {}) {
920
+ const explicitChanges = (0, arg_utils_js_1.mergeStringArgs)(args.changelist, args.changelists).filter((value) => /^\d+$/.test(value));
921
+ const maxChanges = Math.max(1, Math.min(args.maxChanges || explicitChanges.length || 10, 50));
922
+ const workflowConcurrency = getWorkflowConcurrency();
923
+ let selectedChanges = explicitChanges.slice(0, maxChanges);
924
+ let discoveryStep;
925
+ const warnings = [];
926
+ const subcallCounts = {
927
+ changes: 0,
928
+ changeInspect: 0,
929
+ };
930
+ if (selectedChanges.length === 0) {
931
+ const filespecs = (0, arg_utils_js_1.mergeStringArgs)(args.filespec, args.filespecs);
932
+ const changesResult = await (0, basic_js_1.p4Changes)(context, {
933
+ status: args.status,
934
+ user: args.user,
935
+ client: args.client,
936
+ filespecs: filespecs.length > 0 ? filespecs : undefined,
937
+ max: maxChanges,
938
+ workspacePath: args.workspacePath,
939
+ });
940
+ subcallCounts.changes = 1;
941
+ discoveryStep = {
942
+ ok: changesResult.ok,
943
+ result: changesResult.result,
944
+ error: changesResult.error,
945
+ };
946
+ if (!changesResult.ok) {
947
+ return {
948
+ ok: false,
949
+ command: 'review.prepare',
950
+ args: [],
951
+ cwd: changesResult.cwd,
952
+ configUsed: changesResult.configUsed || {},
953
+ error: changesResult.error,
954
+ warnings: changesResult.warnings,
955
+ result: {
956
+ steps: {
957
+ discovery: discoveryStep,
958
+ },
959
+ },
960
+ };
961
+ }
962
+ if (changesResult.warnings) {
963
+ warnings.push(...changesResult.warnings);
964
+ }
965
+ selectedChanges = getArrayResult(changesResult.result)
966
+ .map((record) => getStringChangelist(record.change))
967
+ .filter((value) => value !== null)
968
+ .slice(0, maxChanges);
969
+ }
970
+ const inspectionResults = await runWithConcurrencyLimit(selectedChanges, workflowConcurrency, async (changelist) => ({
971
+ changelist,
972
+ response: await p4ChangeInspect(context, {
973
+ changelist,
974
+ includeDiff: args.includeDiff,
975
+ diffFormat: args.diffFormat,
976
+ includeFileHistory: args.includeFileHistory,
977
+ maxFilesWithHistory: args.maxFilesWithHistory,
978
+ maxRevisions: args.maxRevisions,
979
+ workspacePath: args.workspacePath,
980
+ }),
981
+ }));
982
+ subcallCounts.changeInspect = inspectionResults.length;
983
+ for (const entry of inspectionResults) {
984
+ if (entry.response.warnings) {
985
+ warnings.push(...entry.response.warnings);
986
+ }
987
+ }
988
+ const changes = inspectionResults.map((entry) => ({
989
+ changelist: entry.changelist,
990
+ inspection: {
991
+ ok: entry.response.ok,
992
+ result: entry.response.result,
993
+ error: entry.response.error,
994
+ },
995
+ }));
996
+ const firstResponse = inspectionResults[0]?.response;
997
+ return {
998
+ ok: true,
999
+ command: 'review.prepare',
1000
+ args: [],
1001
+ cwd: firstResponse?.cwd || process.cwd(),
1002
+ configUsed: firstResponse?.configUsed || {},
1003
+ warnings: warnings.length > 0 ? warnings : undefined,
1004
+ result: {
1005
+ summary: {
1006
+ selectedChanges: selectedChanges.length,
1007
+ includeDiff: args.includeDiff === true,
1008
+ includeFileHistory: args.includeFileHistory === true,
1009
+ workflowConcurrency,
1010
+ },
1011
+ changes,
1012
+ meta: {
1013
+ subcallCounts,
1014
+ totalSubcalls: Object.values(subcallCounts).reduce((sum, value) => sum + value, 0),
1015
+ },
1016
+ steps: {
1017
+ discovery: discoveryStep,
1018
+ },
1019
+ },
1020
+ };
1021
+ }
475
1022
  //# sourceMappingURL=workflows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/tools/workflows.ts"],"names":[],"mappings":"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"}