pumuki 6.3.71 → 6.3.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/AGENTS.md +269 -0
  2. package/CHANGELOG.md +666 -0
  3. package/README.md +32 -0
  4. package/docs/README.md +7 -2
  5. package/docs/operations/RELEASE_NOTES.md +7 -0
  6. package/docs/product/USAGE.md +15 -2
  7. package/docs/tracking/plan-curso-pumuki-stack-my-architecture.md +111 -0
  8. package/integrations/git/GitService.ts +25 -0
  9. package/integrations/git/runPlatformGateFacts.ts +7 -0
  10. package/integrations/mcp/preFlightCheck.ts +2 -1
  11. package/integrations/sdd/openSpecCli.ts +12 -3
  12. package/package.json +4 -1
  13. package/scripts/consumer-menu-matrix-baseline-report-lib.ts +13 -38
  14. package/scripts/framework-menu-consumer-actions-lib.ts +28 -4
  15. package/scripts/framework-menu-consumer-preflight-hints.ts +5 -2
  16. package/scripts/framework-menu-consumer-runtime-actions.ts +86 -6
  17. package/scripts/framework-menu-consumer-runtime-audit.ts +36 -2
  18. package/scripts/framework-menu-consumer-runtime-evidence-classic.ts +140 -0
  19. package/scripts/framework-menu-consumer-runtime-lib.ts +2 -0
  20. package/scripts/framework-menu-consumer-runtime-types.ts +3 -1
  21. package/scripts/framework-menu-evidence-summary-lib.ts +1 -0
  22. package/scripts/framework-menu-evidence-summary-read.ts +57 -5
  23. package/scripts/framework-menu-evidence-summary-severity.ts +3 -1
  24. package/scripts/framework-menu-evidence-summary-types.ts +7 -0
  25. package/scripts/framework-menu-gate-lib.ts +9 -0
  26. package/scripts/framework-menu-layout-data.ts +5 -0
  27. package/scripts/framework-menu-matrix-baseline-lib.ts +15 -14
  28. package/scripts/framework-menu-matrix-canary-lib.ts +22 -1
  29. package/scripts/framework-menu-matrix-evidence-lib.ts +1 -0
  30. package/scripts/framework-menu-matrix-evidence-types.ts +13 -1
  31. package/scripts/framework-menu-matrix-runner-lib.ts +35 -0
  32. package/scripts/framework-menu-system-notifications-macos.ts +4 -0
  33. package/scripts/framework-menu.ts +3 -0
@@ -3,6 +3,8 @@ import {
3
3
  runRepoAndStagedPrePushGateSilent,
4
4
  runRepoGateSilent,
5
5
  runStagedGateSilent,
6
+ runUnstagedGateSilent,
7
+ runWorkingTreeGateSilent,
6
8
  runWorkingTreePrePushGateSilent,
7
9
  } from './framework-menu-gate-lib';
8
10
  import {
@@ -24,6 +26,8 @@ export type ConsumerMenuMatrixRunnerDependencies = {
24
26
  runRepoGateSilent: () => Promise<void>;
25
27
  runRepoAndStagedPrePushGateSilent: () => Promise<void>;
26
28
  runStagedGateSilent: () => Promise<void>;
29
+ runUnstagedGateSilent: () => Promise<void>;
30
+ runWorkingTreeGateSilent: () => Promise<void>;
27
31
  runWorkingTreePrePushGateSilent: () => Promise<void>;
28
32
  readMatrixOptionReport: (repoRoot: string, optionId: MatrixOptionId) => ConsumerMenuMatrixOptionReport;
29
33
  };
@@ -32,6 +36,8 @@ const createDefaultDependencies = (): ConsumerMenuMatrixRunnerDependencies => ({
32
36
  runRepoGateSilent,
33
37
  runRepoAndStagedPrePushGateSilent,
34
38
  runStagedGateSilent,
39
+ runUnstagedGateSilent,
40
+ runWorkingTreeGateSilent,
35
41
  runWorkingTreePrePushGateSilent,
36
42
  readMatrixOptionReport,
37
43
  });
@@ -84,6 +90,31 @@ export const runConsumerMenuMatrix = async (params?: {
84
90
  }
85
91
  })();
86
92
 
93
+ const option11 = await runOption(
94
+ '11',
95
+ repoRoot,
96
+ dependencies.runStagedGateSilent,
97
+ dependencies.readMatrixOptionReport
98
+ );
99
+ const option12 = await runOption(
100
+ '12',
101
+ repoRoot,
102
+ dependencies.runUnstagedGateSilent,
103
+ dependencies.readMatrixOptionReport
104
+ );
105
+ const option13 = await runOption(
106
+ '13',
107
+ repoRoot,
108
+ dependencies.runWorkingTreeGateSilent,
109
+ dependencies.readMatrixOptionReport
110
+ );
111
+ const option14 = await runOption(
112
+ '14',
113
+ repoRoot,
114
+ dependencies.runRepoGateSilent,
115
+ dependencies.readMatrixOptionReport
116
+ );
117
+
87
118
  return {
88
119
  byOption: {
89
120
  '1': option1,
@@ -91,6 +122,10 @@ export const runConsumerMenuMatrix = async (params?: {
91
122
  '3': option3,
92
123
  '4': option4,
93
124
  '9': option9,
125
+ '11': option11,
126
+ '12': option12,
127
+ '13': option13,
128
+ '14': option14,
94
129
  },
95
130
  };
96
131
  } finally {
@@ -5,6 +5,7 @@ import {
5
5
  type SystemNotificationCommandRunnerWithOutput,
6
6
  type SystemNotificationsConfig,
7
7
  } from './framework-menu-system-notifications-types';
8
+ import { isTruthyEnvValue } from './framework-menu-system-notifications-env';
8
9
  import { resolveBlockedDialogEnabled } from './framework-menu-system-notifications-macos-dialog-enabled';
9
10
  import { emitMacOsBannerStage } from './framework-menu-system-notifications-macos-banner-stage';
10
11
  import { emitMacOsBlockedDialogStage } from './framework-menu-system-notifications-macos-blocked-stage';
@@ -19,6 +20,9 @@ const shouldSkipMacOsBannerForInteractiveBlockedDialog = (params: {
19
20
  config: SystemNotificationsConfig;
20
21
  env: NodeJS.ProcessEnv;
21
22
  }): boolean => {
23
+ if (!isTruthyEnvValue(params.env.PUMUKI_MACOS_GATE_BLOCKED_BANNER_DEDUPE)) {
24
+ return false;
25
+ }
22
26
  if (params.event.kind !== 'gate.blocked') {
23
27
  return false;
24
28
  }
@@ -16,6 +16,7 @@ import {
16
16
  runWorkingTreeGateSilent,
17
17
  runRepoAndStagedPrePushGateSilent,
18
18
  runWorkingTreePrePushGateSilent,
19
+ runUnstagedGateSilent,
19
20
  } from './framework-menu-gate-lib';
20
21
  import { createFrameworkMenuPrompts } from './framework-menu-prompts';
21
22
  import { resolveDefaultRangeFrom } from './framework-menu-runners';
@@ -62,7 +63,9 @@ const menu = async (): Promise<void> => {
62
63
  runRepoGate: runRepoGateSilent,
63
64
  runRepoAndStagedGate: runRepoAndStagedPrePushGateSilent,
64
65
  runStagedGate: runStagedGateSilent,
66
+ runUnstagedGate: runUnstagedGateSilent,
65
67
  runWorkingTreeGate: runWorkingTreePrePushGateSilent,
68
+ runWorkingTreePreCommitGate: runWorkingTreeGateSilent,
66
69
  write: (text) => {
67
70
  output.write(text);
68
71
  },