maestro-flow 0.4.3 → 0.4.4
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/dashboard/dist/assets/{ArtifactsPage-iJZtYsmR.js → ArtifactsPage-CVh0Z2I2.js} +3 -3
- package/dashboard/dist/assets/{ChatInput-DNnDLdQF.js → ChatInput-CBI3qHQQ.js} +2 -2
- package/dashboard/dist/assets/ChatPage-BjJ9CYox.js +22 -0
- package/dashboard/dist/assets/CollabPage-CprGGO9y.js +1 -0
- package/dashboard/dist/assets/{ExecutionPanel-BKV3GZ7Q.js → ExecutionPanel-CClxD7cH.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-copqjdPg.js +16 -0
- package/dashboard/dist/assets/MaestroCoordinatePage-CioZjQ9N.js +4 -0
- package/dashboard/dist/assets/{MarkdownRenderer-cYFfe1uX.js → MarkdownRenderer-CtUhoxCT.js} +1 -1
- package/dashboard/dist/assets/McpPage-BcPPcJpr.js +21 -0
- package/dashboard/dist/assets/{MeetingRoomPage-wnvT7wlB.js → MeetingRoomPage-BgmAKxU-.js} +1 -1
- package/dashboard/dist/assets/{OutputPanel-DDL90Idy.js → OutputPanel-DgT3gMyp.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-zFN9IIs0.js → ProblemsPanel-BmG7rxoG.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-DOPJoT0I.js → RequirementBoardPage-k8YoeQ0r.js} +1 -1
- package/dashboard/dist/assets/{RequirementPage-CEVquRgM.js → RequirementPage-Da2354px.js} +1 -1
- package/dashboard/dist/assets/{RoomsPage-D5USEWDh.js → RoomsPage-BtqDiYaU.js} +1 -1
- package/dashboard/dist/assets/SpecsPage-ByPVH_M3.js +36 -0
- package/dashboard/dist/assets/{TeamsPage-DlcEmr_Q.js → TeamsPage-sFDLN30L.js} +1 -1
- package/dashboard/dist/assets/{TreeBrowser-Y48Wz-QY.js → TreeBrowser-oEx8YJXV.js} +1 -1
- package/dashboard/dist/assets/WorkflowPage-JrX7CVHh.js +6 -0
- package/dashboard/dist/assets/{arrow-left-NCUOENvg.js → arrow-left-DYvgSdIH.js} +1 -1
- package/dashboard/dist/assets/{check-o7nfGNHf.js → check-jcgYBWVR.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-BXySK2fn.js → chevron-right-DvZ5sMOg.js} +1 -1
- package/dashboard/dist/assets/{circle-cooAwnAR.js → circle-DYT-zoRZ.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-DcSBokh4.js → circle-alert-Bfbv3gt4.js} +1 -1
- package/dashboard/dist/assets/{circle-check-Cd-jce4j.js → circle-check-D82WnpbI.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-BN7Mdp4i.js → circle-check-big-CPVD1GKF.js} +1 -1
- package/dashboard/dist/assets/{code-BQa9oL1n.js → code-B3bKFGI4.js} +1 -1
- package/dashboard/dist/assets/{columns-3-BzgxelGx.js → columns-3-BeMAQCix.js} +1 -1
- package/dashboard/dist/assets/{download-swRJnate.js → download-BCtpoWYB.js} +1 -1
- package/dashboard/dist/assets/en-2h6fD0j8.js +1 -0
- package/dashboard/dist/assets/{folder-DbGbLNFN.js → folder-CTj6SNNu.js} +1 -1
- package/dashboard/dist/assets/index-6-yE5Yl9.css +1 -0
- package/dashboard/dist/assets/{index-DIoMBMbv.js → index-BxR_3IbJ.js} +1 -1
- package/dashboard/dist/assets/{index-DLBN_7fb.js → index-CWBJLu42.js} +1 -1
- package/dashboard/dist/assets/index-DpcPd-UG.js +236 -0
- package/dashboard/dist/assets/{list-BTRAIvDq.js → list-BMv8pIQn.js} +1 -1
- package/dashboard/dist/assets/{loader-NHtB6Mdn.js → loader-DdM4VOgF.js} +1 -1
- package/dashboard/dist/assets/{minus-BjMxRTET.js → minus-D15s2E__.js} +1 -1
- package/dashboard/dist/assets/{pen-line-C4_O16H0.js → pen-line-DO6o4xWz.js} +1 -1
- package/dashboard/dist/assets/{pencil-DTmKhyDY.js → pencil-qGxg9jOe.js} +1 -1
- package/dashboard/dist/assets/{proxy-Dtx5p6IO.js → proxy-DOffTzwA.js} +1 -1
- package/dashboard/dist/assets/refresh-cw-C9UNdLCy.js +6 -0
- package/dashboard/dist/assets/{rows-2-GR1dZtRu.js → rows-2-CifAA5SL.js} +1 -1
- package/dashboard/dist/assets/{search-DVtgy2W7.js → search-pe7pU1YN.js} +1 -1
- package/dashboard/dist/assets/{shallow-BOmvDNsv.js → shallow-r7YynQYA.js} +1 -1
- package/dashboard/dist/assets/table-Bh772iIw.js +6 -0
- package/dashboard/dist/assets/{team-types-BPeOvVdA.js → team-types-C_HqX2p2.js} +1 -1
- package/dashboard/dist/assets/{terminal-CzogW4cl.js → terminal-EpmtGBlw.js} +1 -1
- package/dashboard/dist/assets/{trash-2-52LATVfW.js → trash-2-Xen46iNQ.js} +1 -1
- package/dashboard/dist/assets/{users-DLFE2voE.js → users-BLueDPxF.js} +1 -1
- package/dashboard/dist/assets/{zap-DhiYlgyZ.js → zap-DsQCPF61.js} +1 -1
- package/dashboard/dist/assets/zh-CN-r3AvxxOL.js +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +70 -1
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +48 -6
- package/dist/src/commands/coordinate.d.ts.map +1 -1
- package/dist/src/commands/coordinate.js +2 -0
- package/dist/src/commands/coordinate.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +201 -6
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +466 -0
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/config/index.d.ts +5 -1
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +42 -0
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +63 -4
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/plugins/spec-analytics-plugin.d.ts +13 -0
- package/dist/src/hooks/plugins/spec-analytics-plugin.d.ts.map +1 -0
- package/dist/src/hooks/plugins/spec-analytics-plugin.js +92 -0
- package/dist/src/hooks/plugins/spec-analytics-plugin.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +57 -4
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/spec-analytics.d.ts +128 -0
- package/dist/src/hooks/spec-analytics.d.ts.map +1 -0
- package/dist/src/hooks/spec-analytics.js +311 -0
- package/dist/src/hooks/spec-analytics.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +127 -5
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +20 -0
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +58 -7
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tui/config-ui/ConfigHub.d.ts +1 -1
- package/dist/src/tui/config-ui/ConfigHub.d.ts.map +1 -1
- package/dist/src/tui/config-ui/ConfigHub.js +16 -10
- package/dist/src/tui/config-ui/ConfigHub.js.map +1 -1
- package/dist/src/tui/config-ui/ConfigSourcesView.d.ts.map +1 -1
- package/dist/src/tui/config-ui/ConfigSourcesView.js +3 -2
- package/dist/src/tui/config-ui/ConfigSourcesView.js.map +1 -1
- package/dist/src/tui/config-ui/HooksPanel.d.ts.map +1 -1
- package/dist/src/tui/config-ui/HooksPanel.js +15 -19
- package/dist/src/tui/config-ui/HooksPanel.js.map +1 -1
- package/dist/src/tui/config-ui/SkillConfigDashboard.d.ts.map +1 -1
- package/dist/src/tui/config-ui/SkillConfigDashboard.js +5 -9
- package/dist/src/tui/config-ui/SkillConfigDashboard.js.map +1 -1
- package/dist/src/tui/config-ui/SkillParamEditor.d.ts.map +1 -1
- package/dist/src/tui/config-ui/SkillParamEditor.js +1 -3
- package/dist/src/tui/config-ui/SkillParamEditor.js.map +1 -1
- package/dist/src/tui/config-ui/SkillsList.d.ts.map +1 -1
- package/dist/src/tui/config-ui/SkillsList.js +7 -9
- package/dist/src/tui/config-ui/SkillsList.js.map +1 -1
- package/dist/src/tui/config-ui/SpecAnalyticsPanel.d.ts +6 -0
- package/dist/src/tui/config-ui/SpecAnalyticsPanel.d.ts.map +1 -0
- package/dist/src/tui/config-ui/SpecAnalyticsPanel.js +164 -0
- package/dist/src/tui/config-ui/SpecAnalyticsPanel.js.map +1 -0
- package/dist/src/tui/config-ui/SpecPanel.d.ts.map +1 -1
- package/dist/src/tui/config-ui/SpecPanel.js +918 -20
- package/dist/src/tui/config-ui/SpecPanel.js.map +1 -1
- package/dist/src/tui/config-ui/index.d.ts +3 -1
- package/dist/src/tui/config-ui/index.d.ts.map +1 -1
- package/dist/src/tui/config-ui/index.js +4 -0
- package/dist/src/tui/config-ui/index.js.map +1 -1
- package/dist/src/tui/install-ui/BackupConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/BackupConfig.js +3 -2
- package/dist/src/tui/install-ui/BackupConfig.js.map +1 -1
- package/dist/src/tui/install-ui/BlueprintPreview.d.ts.map +1 -1
- package/dist/src/tui/install-ui/BlueprintPreview.js +7 -6
- package/dist/src/tui/install-ui/BlueprintPreview.js.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.js +3 -2
- package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.js +4 -3
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -1
- package/dist/src/tui/install-ui/CyberItem.js +7 -6
- package/dist/src/tui/install-ui/CyberItem.js.map +1 -1
- package/dist/src/tui/install-ui/CyberdeckBlueprint.d.ts.map +1 -1
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js +2 -1
- package/dist/src/tui/install-ui/CyberdeckBlueprint.js.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ExecutionView.js +3 -2
- package/dist/src/tui/install-ui/ExecutionView.js.map +1 -1
- package/dist/src/tui/install-ui/GradientHeader.d.ts.map +1 -1
- package/dist/src/tui/install-ui/GradientHeader.js +2 -1
- package/dist/src/tui/install-ui/GradientHeader.js.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.js +8 -8
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +4 -3
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +3 -2
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +3 -2
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +9 -8
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +3 -2
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/tui/install-ui/McpConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/McpConfig.js +4 -3
- package/dist/src/tui/install-ui/McpConfig.js.map +1 -1
- package/dist/src/tui/install-ui/ResultDashboard.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ResultDashboard.js +3 -2
- package/dist/src/tui/install-ui/ResultDashboard.js.map +1 -1
- package/dist/src/tui/install-ui/ReviewPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ReviewPanel.js +2 -1
- package/dist/src/tui/install-ui/ReviewPanel.js.map +1 -1
- package/dist/src/tui/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/StatuslineConfig.js +3 -2
- package/dist/src/tui/install-ui/StatuslineConfig.js.map +1 -1
- package/dist/src/tui/install-ui/StepSelector.d.ts.map +1 -1
- package/dist/src/tui/install-ui/StepSelector.js +11 -10
- package/dist/src/tui/install-ui/StepSelector.js.map +1 -1
- package/dist/src/tui/overlay-ui/OverlayList.d.ts.map +1 -1
- package/dist/src/tui/overlay-ui/OverlayList.js +8 -12
- package/dist/src/tui/overlay-ui/OverlayList.js.map +1 -1
- package/dist/src/tui/shared/components.d.ts +56 -0
- package/dist/src/tui/shared/components.d.ts.map +1 -0
- package/dist/src/tui/shared/components.js +55 -0
- package/dist/src/tui/shared/components.js.map +1 -0
- package/dist/src/tui/shared/helpers.d.ts +24 -0
- package/dist/src/tui/shared/helpers.d.ts.map +1 -0
- package/dist/src/tui/shared/helpers.js +49 -0
- package/dist/src/tui/shared/helpers.js.map +1 -0
- package/dist/src/tui/shared/index.d.ts +4 -0
- package/dist/src/tui/shared/index.d.ts.map +1 -0
- package/dist/src/tui/shared/index.js +7 -0
- package/dist/src/tui/shared/index.js.map +1 -0
- package/dist/src/tui/shared/tokens.d.ts +79 -0
- package/dist/src/tui/shared/tokens.d.ts.map +1 -0
- package/dist/src/tui/shared/tokens.js +81 -0
- package/dist/src/tui/shared/tokens.js.map +1 -0
- package/dist/src/tui/tools-ui/CommandReference.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/CommandReference.js +2 -4
- package/dist/src/tui/tools-ui/CommandReference.js.map +1 -1
- package/dist/src/tui/tools-ui/ConfigSources.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ConfigSources.js +3 -2
- package/dist/src/tui/tools-ui/ConfigSources.js.map +1 -1
- package/dist/src/tui/tools-ui/RegisterSettings.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/RegisterSettings.js +2 -1
- package/dist/src/tui/tools-ui/RegisterSettings.js.map +1 -1
- package/dist/src/tui/tools-ui/RoleMappings.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/RoleMappings.js +3 -5
- package/dist/src/tui/tools-ui/RoleMappings.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js +3 -5
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.js +3 -5
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.js +8 -7
- package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -1
- package/dist/src/types/index.d.ts +48 -6
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dashboard/dist/assets/ChatPage-BjBibfE4.js +0 -22
- package/dashboard/dist/assets/CollabPage-8lUMUol_.js +0 -1
- package/dashboard/dist/assets/KanbanPage-diY3QmGd.js +0 -21
- package/dashboard/dist/assets/McpPage-COjuIf7U.js +0 -21
- package/dashboard/dist/assets/SpecsPage-BOwBin_o.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-5iRyMU5T.js +0 -6
- package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +0 -6
- package/dashboard/dist/assets/en-C_BD3UCD.js +0 -1
- package/dashboard/dist/assets/index-BEUaOz_b.css +0 -1
- package/dashboard/dist/assets/index-uIqUCT8y.js +0 -236
- package/dashboard/dist/assets/table-DCzuJAFh.js +0 -6
- package/dashboard/dist/assets/zh-CN-DvQKfow3.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAqB9G,wBAAgB,UAAU,IAAI,aAAa,CAM1C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGtD;AAMD,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAShF;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAU9F;AAMD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAG5E;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAI1F;AAsBD,wBAAgB,eAAe,IAAI,WAAW,CA6C7C"}
|
package/dist/src/config/index.js
CHANGED
|
@@ -30,6 +30,48 @@ export function saveConfig(config) {
|
|
|
30
30
|
paths.ensure(paths.home);
|
|
31
31
|
writeFileSync(paths.config, JSON.stringify(config, null, 2));
|
|
32
32
|
}
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Spec Injection Config — project-level (.workflow/config.json)
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
export function loadSpecInjectionConfig(projectPath) {
|
|
37
|
+
const configPath = join(projectPath, '.workflow', 'config.json');
|
|
38
|
+
if (!existsSync(configPath))
|
|
39
|
+
return {};
|
|
40
|
+
try {
|
|
41
|
+
const raw = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
42
|
+
return raw.specInjection ?? {};
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export function saveSpecInjectionConfig(projectPath, config) {
|
|
49
|
+
const configPath = join(projectPath, '.workflow', 'config.json');
|
|
50
|
+
let existing = {};
|
|
51
|
+
try {
|
|
52
|
+
existing = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Start fresh
|
|
56
|
+
}
|
|
57
|
+
existing['specInjection'] = config;
|
|
58
|
+
writeFileSync(configPath, JSON.stringify(existing, null, 2), 'utf-8');
|
|
59
|
+
}
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Spec Analytics Config — nested under specInjection.analytics
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
export function loadAnalyticsConfig(projectPath) {
|
|
64
|
+
const injConfig = loadSpecInjectionConfig(projectPath);
|
|
65
|
+
return injConfig.analytics ?? { enabled: true };
|
|
66
|
+
}
|
|
67
|
+
export function saveAnalyticsConfig(projectPath, config) {
|
|
68
|
+
const injConfig = loadSpecInjectionConfig(projectPath);
|
|
69
|
+
injConfig.analytics = config;
|
|
70
|
+
saveSpecInjectionConfig(projectPath, injConfig);
|
|
71
|
+
}
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
// Hooks Config
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
33
75
|
const DEFAULT_HOOKS = {
|
|
34
76
|
toggles: {},
|
|
35
77
|
external: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword-spec-injector.d.ts","sourceRoot":"","sources":["../../../src/hooks/keyword-spec-injector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"keyword-spec-injector.d.ts","sourceRoot":"","sources":["../../../src/hooks/keyword-spec-injector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA+BD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAoGxB"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { buildKeywordIndex, lookupKeywords } from '../tools/spec-keyword-index.js';
|
|
8
8
|
import { markInjected, filterUnjected } from './spec-bridge.js';
|
|
9
|
+
import { logInjectionEvent } from './spec-analytics.js';
|
|
9
10
|
// ============================================================================
|
|
10
11
|
// Config
|
|
11
12
|
// ============================================================================
|
|
@@ -40,20 +41,65 @@ const MAX_ENTRIES_PER_INJECTION = 5;
|
|
|
40
41
|
export function evaluateKeywordInjection(prompt, projectPath, sessionId) {
|
|
41
42
|
// 1. Tokenize prompt into candidate keywords
|
|
42
43
|
const promptKeywords = tokenizePrompt(prompt);
|
|
43
|
-
if (promptKeywords.length === 0)
|
|
44
|
+
if (promptKeywords.length === 0) {
|
|
45
|
+
logInjectionEvent(projectPath, {
|
|
46
|
+
source: 'keyword-spec-injector',
|
|
47
|
+
promptSnippet: prompt.slice(0, 300),
|
|
48
|
+
categories: [],
|
|
49
|
+
specCount: 0,
|
|
50
|
+
contentLength: 0,
|
|
51
|
+
inject: false,
|
|
52
|
+
reason: 'no-prompt-keywords',
|
|
53
|
+
totalPromptKeywords: 0,
|
|
54
|
+
});
|
|
44
55
|
return { inject: false };
|
|
56
|
+
}
|
|
45
57
|
// 2. Build keyword index from spec files
|
|
46
58
|
const index = buildKeywordIndex(projectPath);
|
|
47
|
-
if (index.size === 0)
|
|
59
|
+
if (index.size === 0) {
|
|
60
|
+
logInjectionEvent(projectPath, {
|
|
61
|
+
source: 'keyword-spec-injector',
|
|
62
|
+
promptSnippet: prompt.slice(0, 300),
|
|
63
|
+
categories: [],
|
|
64
|
+
specCount: 0,
|
|
65
|
+
contentLength: 0,
|
|
66
|
+
inject: false,
|
|
67
|
+
reason: 'empty-keyword-index',
|
|
68
|
+
totalPromptKeywords: promptKeywords.length,
|
|
69
|
+
});
|
|
48
70
|
return { inject: false };
|
|
71
|
+
}
|
|
49
72
|
// 3. Look up matching entries
|
|
50
73
|
const matchedAll = lookupKeywords(index, promptKeywords);
|
|
51
|
-
if (matchedAll.length === 0)
|
|
74
|
+
if (matchedAll.length === 0) {
|
|
75
|
+
logInjectionEvent(projectPath, {
|
|
76
|
+
source: 'keyword-spec-injector',
|
|
77
|
+
promptSnippet: prompt.slice(0, 300),
|
|
78
|
+
categories: [],
|
|
79
|
+
specCount: 0,
|
|
80
|
+
contentLength: 0,
|
|
81
|
+
inject: false,
|
|
82
|
+
reason: 'no-keyword-match',
|
|
83
|
+
totalPromptKeywords: promptKeywords.length,
|
|
84
|
+
});
|
|
52
85
|
return { inject: false };
|
|
86
|
+
}
|
|
53
87
|
// 4. Filter out already-injected entries (session dedup)
|
|
54
88
|
const unjected = filterUnjected(sessionId, matchedAll);
|
|
55
|
-
if (unjected.length === 0)
|
|
89
|
+
if (unjected.length === 0) {
|
|
90
|
+
logInjectionEvent(projectPath, {
|
|
91
|
+
source: 'keyword-spec-injector',
|
|
92
|
+
promptSnippet: prompt.slice(0, 300),
|
|
93
|
+
categories: [],
|
|
94
|
+
specCount: 0,
|
|
95
|
+
contentLength: 0,
|
|
96
|
+
inject: false,
|
|
97
|
+
reason: 'all-deduped',
|
|
98
|
+
totalPromptKeywords: promptKeywords.length,
|
|
99
|
+
dedupFilteredCount: matchedAll.length,
|
|
100
|
+
});
|
|
56
101
|
return { inject: false };
|
|
102
|
+
}
|
|
57
103
|
// 5. Limit to avoid context bloat
|
|
58
104
|
const toInject = unjected.slice(0, MAX_ENTRIES_PER_INJECTION);
|
|
59
105
|
// 6. Build injection content
|
|
@@ -64,6 +110,19 @@ export function evaluateKeywordInjection(prompt, projectPath, sessionId) {
|
|
|
64
110
|
markInjected(sessionId, injectedKeywords, injectedIds);
|
|
65
111
|
// 8. Determine which prompt keywords actually matched
|
|
66
112
|
const matchedKws = promptKeywords.filter(kw => index.has(kw));
|
|
113
|
+
logInjectionEvent(projectPath, {
|
|
114
|
+
source: 'keyword-spec-injector',
|
|
115
|
+
promptSnippet: prompt.slice(0, 300),
|
|
116
|
+
categories: [],
|
|
117
|
+
specCount: toInject.length,
|
|
118
|
+
contentLength: content.length,
|
|
119
|
+
inject: true,
|
|
120
|
+
matchedKeywords: matchedKws,
|
|
121
|
+
matchedEntryIds: injectedIds,
|
|
122
|
+
matchedEntries: toInject.length,
|
|
123
|
+
totalPromptKeywords: promptKeywords.length,
|
|
124
|
+
dedupFilteredCount: matchedAll.length - unjected.length,
|
|
125
|
+
});
|
|
67
126
|
return {
|
|
68
127
|
inject: true,
|
|
69
128
|
content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword-spec-injector.js","sourceRoot":"","sources":["../../../src/hooks/keyword-spec-injector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAkB,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"keyword-spec-injector.js","sourceRoot":"","sources":["../../../src/hooks/keyword-spec-injector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAkB,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAaxD,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,kDAAkD;AAClD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;IACpE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IACxE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAClE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAC/D,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;IAC1E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW;CAC9E,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,WAAmB,EACnB,SAAiB;IAEjB,6CAA6C;IAC7C,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,iBAAiB,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,uBAAuB;YAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,oBAAoB;YAC5B,mBAAmB,EAAE,CAAC;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,iBAAiB,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,uBAAuB;YAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,qBAAqB;YAC7B,mBAAmB,EAAE,cAAc,CAAC,MAAM;SAC3C,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,iBAAiB,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,uBAAuB;YAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,kBAAkB;YAC1B,mBAAmB,EAAE,cAAc,CAAC,MAAM;SAC3C,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,yDAAyD;IACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,iBAAiB,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,uBAAuB;YAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,aAAa;YACrB,mBAAmB,EAAE,cAAc,CAAC,MAAM;YAC1C,kBAAkB,EAAE,UAAU,CAAC,MAAM;SACtC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAE9D,6BAA6B;IAC7B,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEjD,sBAAsB;IACtB,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEvD,sDAAsD;IACtD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9D,iBAAiB,CAAC,WAAW,EAAE;QAC7B,MAAM,EAAE,uBAAuB;QAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACnC,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,QAAQ,CAAC,MAAM;QAC1B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,UAAU;QAC3B,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,mBAAmB,EAAE,cAAc,CAAC,MAAM;QAC1C,kBAAkB,EAAE,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;KACxD,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,eAAe,EAAE,UAAU;QAC3B,cAAc,EAAE,QAAQ,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,KAAK,GAAG,MAAM;SACjB,WAAW,EAAE;SACb,OAAO,CAAC,2BAA2B,EAAE,GAAG,CAAC;SACzC,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAuB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC/B,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAC/D,CAAC;IAEF,OAAO,8BAA8B,OAAO,CAAC,MAAM,SAAS,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC;AACtH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MaestroPlugin } from '../../types/index.js';
|
|
2
|
+
import type { WorkflowHookRegistry } from '../workflow-hooks.js';
|
|
3
|
+
/**
|
|
4
|
+
* Plugin that taps into all 9 workflow hooks to record invocations.
|
|
5
|
+
* Captures hook name, node context, timing, and outcome.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SpecAnalyticsPlugin implements MaestroPlugin {
|
|
8
|
+
private readonly projectPath;
|
|
9
|
+
readonly name = "specAnalytics";
|
|
10
|
+
constructor(projectPath?: string);
|
|
11
|
+
apply(registry: WorkflowHookRegistry): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=spec-analytics-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-analytics-plugin.d.ts","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-analytics-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IAG3C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAFxC,QAAQ,CAAC,IAAI,mBAAmB;gBAEH,WAAW,GAAE,MAAsB;IAEhE,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;CAqF5C"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// SpecAnalyticsPlugin — Tracks all workflow hook invocations
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
import { logHookInvocation } from '../spec-analytics.js';
|
|
5
|
+
/**
|
|
6
|
+
* Plugin that taps into all 9 workflow hooks to record invocations.
|
|
7
|
+
* Captures hook name, node context, timing, and outcome.
|
|
8
|
+
*/
|
|
9
|
+
export class SpecAnalyticsPlugin {
|
|
10
|
+
projectPath;
|
|
11
|
+
name = 'specAnalytics';
|
|
12
|
+
constructor(projectPath = process.cwd()) {
|
|
13
|
+
this.projectPath = projectPath;
|
|
14
|
+
}
|
|
15
|
+
apply(registry) {
|
|
16
|
+
const pp = this.projectPath;
|
|
17
|
+
registry.beforeRun.tap(this.name, (ctx) => {
|
|
18
|
+
logHookInvocation(pp, {
|
|
19
|
+
hookName: 'beforeRun',
|
|
20
|
+
pluginName: this.name,
|
|
21
|
+
data: { sessionId: ctx.sessionId, graphId: ctx.graphId, intent: ctx.intent },
|
|
22
|
+
});
|
|
23
|
+
return undefined; // Don't bail
|
|
24
|
+
});
|
|
25
|
+
registry.afterRun.tap(this.name, (ctx, state) => {
|
|
26
|
+
logHookInvocation(pp, {
|
|
27
|
+
hookName: 'afterRun',
|
|
28
|
+
pluginName: this.name,
|
|
29
|
+
data: { sessionId: ctx.sessionId, status: state.status },
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
registry.beforeNode.tap(this.name, (ctx) => {
|
|
33
|
+
logHookInvocation(pp, {
|
|
34
|
+
hookName: 'beforeNode',
|
|
35
|
+
pluginName: this.name,
|
|
36
|
+
nodeId: ctx.nodeId,
|
|
37
|
+
data: { nodeType: ctx.node.type },
|
|
38
|
+
});
|
|
39
|
+
return undefined; // Don't bail
|
|
40
|
+
});
|
|
41
|
+
registry.afterNode.tap(this.name, (ctx, outcome) => {
|
|
42
|
+
logHookInvocation(pp, {
|
|
43
|
+
hookName: 'afterNode',
|
|
44
|
+
pluginName: this.name,
|
|
45
|
+
nodeId: ctx.nodeId,
|
|
46
|
+
outcome,
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
registry.beforeCommand.tap(this.name, (ctx) => {
|
|
50
|
+
logHookInvocation(pp, {
|
|
51
|
+
hookName: 'beforeCommand',
|
|
52
|
+
pluginName: this.name,
|
|
53
|
+
nodeId: ctx.nodeId,
|
|
54
|
+
data: { cmd: ctx.cmd },
|
|
55
|
+
});
|
|
56
|
+
return undefined; // Don't bail
|
|
57
|
+
});
|
|
58
|
+
registry.afterCommand.tap(this.name, (ctx) => {
|
|
59
|
+
logHookInvocation(pp, {
|
|
60
|
+
hookName: 'afterCommand',
|
|
61
|
+
pluginName: this.name,
|
|
62
|
+
nodeId: ctx.nodeId,
|
|
63
|
+
data: { cmd: ctx.cmd, success: ctx.result.success },
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
registry.onError.tap(this.name, (ctx) => {
|
|
67
|
+
logHookInvocation(pp, {
|
|
68
|
+
hookName: 'onError',
|
|
69
|
+
pluginName: this.name,
|
|
70
|
+
nodeId: ctx.nodeId ?? undefined,
|
|
71
|
+
data: { message: ctx.error.message },
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
registry.transformPrompt.tap(this.name, (prompt) => {
|
|
75
|
+
logHookInvocation(pp, {
|
|
76
|
+
hookName: 'transformPrompt',
|
|
77
|
+
pluginName: this.name,
|
|
78
|
+
data: { promptLength: prompt.length },
|
|
79
|
+
});
|
|
80
|
+
return prompt; // Pass-through, observation only
|
|
81
|
+
});
|
|
82
|
+
registry.onDecision.tap(this.name, (ctx) => {
|
|
83
|
+
logHookInvocation(pp, {
|
|
84
|
+
hookName: 'onDecision',
|
|
85
|
+
pluginName: this.name,
|
|
86
|
+
nodeId: ctx.nodeId,
|
|
87
|
+
data: { target: ctx.target },
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=spec-analytics-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-analytics-plugin.js","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-analytics-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-injection-plugin.d.ts","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-injection-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"spec-injection-plugin.d.ts","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-injection-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAOjE;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IAIrD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,QAAQ,CAAC,IAAI,mBAAmB;gBAGb,WAAW,GAAE,MAAsB,EACnC,SAAS,GAAE,MAAW;IAGzC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;CAyE5C"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// ---------------------------------------------------------------------------
|
|
2
2
|
// SpecInjectionPlugin — Injects project specs into coordinator prompts
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
|
-
import { loadSpecs } from '../../tools/spec-loader.js';
|
|
4
|
+
import { loadSpecs, loadExtraDocs } from '../../tools/spec-loader.js';
|
|
5
|
+
import { loadSpecInjectionConfig } from '../../config/index.js';
|
|
5
6
|
import { resolveSelf } from '../../tools/team-members.js';
|
|
6
7
|
import { evaluateKeywordInjection } from '../keyword-spec-injector.js';
|
|
8
|
+
import { logInjectionEvent } from '../spec-analytics.js';
|
|
7
9
|
/**
|
|
8
10
|
* In-process plugin for `maestro coordinate` — injects relevant specs
|
|
9
11
|
* into the prompt via the `transformPrompt` waterfall hook.
|
|
@@ -22,13 +24,51 @@ export class SpecInjectionPlugin {
|
|
|
22
24
|
apply(registry) {
|
|
23
25
|
registry.transformPrompt.tap(this.name, (prompt) => {
|
|
24
26
|
const parts = [prompt];
|
|
25
|
-
|
|
27
|
+
const config = loadSpecInjectionConfig(this.projectPath);
|
|
28
|
+
// Category-based injection with keyword filters
|
|
26
29
|
const category = inferCategory(prompt);
|
|
27
30
|
const uid = resolveUidSafe();
|
|
28
|
-
const
|
|
31
|
+
const loaderOpts = {};
|
|
32
|
+
if (config.keywordFilters?.include?.length)
|
|
33
|
+
loaderOpts.includeKeywords = config.keywordFilters.include;
|
|
34
|
+
if (config.keywordFilters?.exclude?.length)
|
|
35
|
+
loaderOpts.excludeKeywords = config.keywordFilters.exclude;
|
|
36
|
+
const catDocConfig = config.categoryDocs?.[category];
|
|
37
|
+
if (catDocConfig?.specFiles?.length)
|
|
38
|
+
loaderOpts.extraSpecFiles = catDocConfig.specFiles;
|
|
39
|
+
const catResult = loadSpecs(this.projectPath, category, uid, undefined, undefined, loaderOpts);
|
|
29
40
|
if (catResult.content) {
|
|
30
41
|
parts.push(catResult.content);
|
|
31
42
|
}
|
|
43
|
+
// Load category-level extra documents
|
|
44
|
+
if (catDocConfig?.docs?.length) {
|
|
45
|
+
const docsResult = loadExtraDocs(this.projectPath, catDocConfig.docs);
|
|
46
|
+
if (docsResult.content)
|
|
47
|
+
parts.push(docsResult.content);
|
|
48
|
+
}
|
|
49
|
+
// Always-inject (session start): docs, keyword-matched entries, categories
|
|
50
|
+
if (config.always) {
|
|
51
|
+
if (config.always.docs?.length) {
|
|
52
|
+
const alwaysResult = loadExtraDocs(this.projectPath, config.always.docs);
|
|
53
|
+
if (alwaysResult.content)
|
|
54
|
+
parts.push(alwaysResult.content);
|
|
55
|
+
}
|
|
56
|
+
if (config.always.keywords?.length) {
|
|
57
|
+
const kwOpts = { includeKeywords: config.always.keywords };
|
|
58
|
+
const kwResult = loadSpecs(this.projectPath, undefined, uid, undefined, undefined, kwOpts);
|
|
59
|
+
if (kwResult.content)
|
|
60
|
+
parts.push(kwResult.content);
|
|
61
|
+
}
|
|
62
|
+
if (config.always.categories?.length) {
|
|
63
|
+
for (const cat of config.always.categories) {
|
|
64
|
+
if (cat === category)
|
|
65
|
+
continue;
|
|
66
|
+
const catRes = loadSpecs(this.projectPath, cat, uid);
|
|
67
|
+
if (catRes.content)
|
|
68
|
+
parts.push(catRes.content);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
32
72
|
// Keyword-based injection (with session dedup)
|
|
33
73
|
if (this.sessionId) {
|
|
34
74
|
const kwResult = evaluateKeywordInjection(prompt, this.projectPath, this.sessionId);
|
|
@@ -36,7 +76,20 @@ export class SpecInjectionPlugin {
|
|
|
36
76
|
parts.push(kwResult.content);
|
|
37
77
|
}
|
|
38
78
|
}
|
|
39
|
-
|
|
79
|
+
const injected = parts.length > 1;
|
|
80
|
+
const injectedContent = injected ? parts.slice(1).join('\n\n---\n\n') : '';
|
|
81
|
+
const inferredCat = category;
|
|
82
|
+
logInjectionEvent(this.projectPath, {
|
|
83
|
+
source: 'spec-injection-plugin',
|
|
84
|
+
promptSnippet: prompt.slice(0, 300),
|
|
85
|
+
inferredCategory: inferredCat,
|
|
86
|
+
categories: injected ? [inferredCat] : [],
|
|
87
|
+
specCount: catResult.totalLoaded,
|
|
88
|
+
contentLength: injectedContent.length,
|
|
89
|
+
inject: injected,
|
|
90
|
+
reason: injected ? undefined : 'no-content',
|
|
91
|
+
}, config.analytics);
|
|
92
|
+
return injected ? parts.join('\n\n---\n\n') : prompt;
|
|
40
93
|
});
|
|
41
94
|
}
|
|
42
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-injection-plugin.js","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-injection-plugin.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAI9E,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"spec-injection-plugin.js","sourceRoot":"","sources":["../../../../src/hooks/plugins/spec-injection-plugin.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAI9E,OAAO,EAAE,SAAS,EAAE,aAAa,EAA4C,MAAM,4BAA4B,CAAC;AAChH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IAIX;IACA;IAJV,IAAI,GAAG,eAAe,CAAC;IAEhC,YACmB,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,YAAoB,EAAE;QADtB,gBAAW,GAAX,WAAW,CAAwB;QACnC,cAAS,GAAT,SAAS,CAAa;IACtC,CAAC;IAEJ,KAAK,CAAC,QAA8B;QAClC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE;YACzD,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEzD,gDAAgD;YAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;YAE7B,MAAM,UAAU,GAAqB,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM;gBAAE,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;YACvG,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM;gBAAE,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;YAEvG,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,YAAY,EAAE,SAAS,EAAE,MAAM;gBAAE,UAAU,CAAC,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC;YAExF,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/F,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,sCAAsC;YACtC,IAAI,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtE,IAAI,UAAU,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YAED,2EAA2E;YAC3E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzE,IAAI,YAAY,CAAC,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7D,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAqB,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;oBAC3F,IAAI,QAAQ,CAAC,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;oBACrC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC3C,IAAI,GAAG,KAAK,QAAQ;4BAAE,SAAS;wBAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,GAAwD,EAAE,GAAG,CAAC,CAAC;wBAC1G,IAAI,MAAM,CAAC,OAAO;4BAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpF,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACxC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC;YAE7B,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClC,MAAM,EAAE,uBAAuB;gBAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACnC,gBAAgB,EAAE,WAAW;gBAC7B,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,SAAS,EAAE,SAAS,CAAC,WAAW;gBAChC,aAAa,EAAE,eAAe,CAAC,MAAM;gBACrC,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;aAC5C,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAErB,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,OAAO,IAAI,EAAE,GAAG,IAAI,SAAS,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,4EAA4E,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9G,IAAI,mEAAmE,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACnG,IAAI,2DAA2D,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5F,IAAI,oEAAoE,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACpG,IAAI,+HAA+H,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7J,OAAO,QAAQ,CAAC,CAAC,kCAAkC;AACrD,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec Analytics — Injection logging and statistics
|
|
3
|
+
*
|
|
4
|
+
* Records every spec injection call (spec-injector, keyword-spec-injector,
|
|
5
|
+
* spec-injection-plugin) and CLI endpoint usage. Provides aggregated
|
|
6
|
+
* statistics for improvement analysis.
|
|
7
|
+
*
|
|
8
|
+
* Design:
|
|
9
|
+
* - Reuses jsonl-log.ts (appendLine, readAll, tailLast, rotateIfLarge)
|
|
10
|
+
* - Synchronous, never throws — safe for hot-path hooks
|
|
11
|
+
* - Config cached with 30s TTL to avoid repeated file reads
|
|
12
|
+
* - Auto-rotation at configurable max file size
|
|
13
|
+
*/
|
|
14
|
+
import type { SpecAnalyticsConfig } from '../types/index.js';
|
|
15
|
+
export type InjectionSource = 'spec-injector' | 'keyword-spec-injector' | 'spec-injection-plugin';
|
|
16
|
+
export interface SpecInjectionLogEntry {
|
|
17
|
+
id: string;
|
|
18
|
+
timestamp: string;
|
|
19
|
+
source: InjectionSource;
|
|
20
|
+
agentType?: string;
|
|
21
|
+
promptSnippet?: string;
|
|
22
|
+
categories: string[];
|
|
23
|
+
specCount: number;
|
|
24
|
+
budgetAction?: string;
|
|
25
|
+
contentLength: number;
|
|
26
|
+
inject: boolean;
|
|
27
|
+
reason?: string;
|
|
28
|
+
matchedKeywords?: string[];
|
|
29
|
+
matchedEntryIds?: string[];
|
|
30
|
+
matchedEntries?: number;
|
|
31
|
+
totalPromptKeywords?: number;
|
|
32
|
+
dedupFilteredCount?: number;
|
|
33
|
+
inferredCategory?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface CliEndpointLogEntry {
|
|
36
|
+
id: string;
|
|
37
|
+
timestamp: string;
|
|
38
|
+
command: string;
|
|
39
|
+
args: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
export interface HookInvocationLogEntry {
|
|
42
|
+
id: string;
|
|
43
|
+
timestamp: string;
|
|
44
|
+
hookName: string;
|
|
45
|
+
pluginName?: string;
|
|
46
|
+
nodeId?: string;
|
|
47
|
+
durationMs?: number;
|
|
48
|
+
outcome?: string;
|
|
49
|
+
data?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
export type AnalyticsLogEntry = ({
|
|
52
|
+
type: 'injection';
|
|
53
|
+
} & SpecInjectionLogEntry) | ({
|
|
54
|
+
type: 'cli';
|
|
55
|
+
} & CliEndpointLogEntry) | ({
|
|
56
|
+
type: 'hook';
|
|
57
|
+
} & HookInvocationLogEntry);
|
|
58
|
+
export interface SpecAnalyticsSummary {
|
|
59
|
+
totalInjections: number;
|
|
60
|
+
successfulInjections: number;
|
|
61
|
+
failedInjections: number;
|
|
62
|
+
hitRate: number;
|
|
63
|
+
bySource: Record<string, {
|
|
64
|
+
total: number;
|
|
65
|
+
injected: number;
|
|
66
|
+
}>;
|
|
67
|
+
byAgentType: Record<string, {
|
|
68
|
+
total: number;
|
|
69
|
+
injected: number;
|
|
70
|
+
}>;
|
|
71
|
+
byCategory: Record<string, number>;
|
|
72
|
+
byBudgetAction: Record<string, number>;
|
|
73
|
+
keywordStats: {
|
|
74
|
+
totalMatches: number;
|
|
75
|
+
topKeywords: Array<{
|
|
76
|
+
keyword: string;
|
|
77
|
+
count: number;
|
|
78
|
+
}>;
|
|
79
|
+
avgMatchedPerPrompt: number;
|
|
80
|
+
dedupFilteredTotal: number;
|
|
81
|
+
};
|
|
82
|
+
cliStats: Record<string, number>;
|
|
83
|
+
hookStats: {
|
|
84
|
+
totalInvocations: number;
|
|
85
|
+
byHook: Record<string, number>;
|
|
86
|
+
byPlugin: Record<string, number>;
|
|
87
|
+
avgDurationMs: number;
|
|
88
|
+
};
|
|
89
|
+
timeRange: {
|
|
90
|
+
earliest: string;
|
|
91
|
+
latest: string;
|
|
92
|
+
};
|
|
93
|
+
totalEntries: number;
|
|
94
|
+
logFileSize: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Log a spec injection event. Synchronous, never throws.
|
|
98
|
+
*/
|
|
99
|
+
export declare function logInjectionEvent(projectPath: string, entry: Omit<SpecInjectionLogEntry, 'id' | 'timestamp'>, config?: SpecAnalyticsConfig): void;
|
|
100
|
+
/**
|
|
101
|
+
* Log a CLI endpoint call. Synchronous, never throws.
|
|
102
|
+
*/
|
|
103
|
+
export declare function logCliEndpoint(projectPath: string, command: string, args: Record<string, unknown>, config?: SpecAnalyticsConfig): void;
|
|
104
|
+
/**
|
|
105
|
+
* Log a workflow hook invocation. Synchronous, never throws.
|
|
106
|
+
*/
|
|
107
|
+
export declare function logHookInvocation(projectPath: string, entry: Omit<HookInvocationLogEntry, 'id' | 'timestamp'>, config?: SpecAnalyticsConfig): void;
|
|
108
|
+
/**
|
|
109
|
+
* Read all analytics entries.
|
|
110
|
+
*/
|
|
111
|
+
export declare function readAnalytics(projectPath: string, config?: SpecAnalyticsConfig): AnalyticsLogEntry[];
|
|
112
|
+
/**
|
|
113
|
+
* Read last N analytics entries (efficient tail).
|
|
114
|
+
*/
|
|
115
|
+
export declare function readRecentAnalytics(projectPath: string, n: number, config?: SpecAnalyticsConfig): AnalyticsLogEntry[];
|
|
116
|
+
/**
|
|
117
|
+
* Get log file size in bytes. Returns 0 if file doesn't exist.
|
|
118
|
+
*/
|
|
119
|
+
export declare function getLogFileSize(projectPath: string, config?: SpecAnalyticsConfig): number;
|
|
120
|
+
/**
|
|
121
|
+
* Clear analytics log by rotating it to archive.
|
|
122
|
+
*/
|
|
123
|
+
export declare function clearAnalyticsLog(projectPath: string, config?: SpecAnalyticsConfig): string | null;
|
|
124
|
+
/**
|
|
125
|
+
* Compute aggregated statistics from log entries. Pure function, no IO.
|
|
126
|
+
*/
|
|
127
|
+
export declare function computeStats(entries: AnalyticsLogEntry[], logFileSize?: number): SpecAnalyticsSummary;
|
|
128
|
+
//# sourceMappingURL=spec-analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-analytics.d.ts","sourceRoot":"","sources":["../../../src/hooks/spec-analytics.ts"],"names":[],"mappings":"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"}
|