codeloop-mcp-server 0.1.25 → 0.1.26

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.
@@ -116,4 +116,52 @@ export type DepthMinimumsOverride = {
116
116
  };
117
117
  };
118
118
  export declare function resolveDepthMinimums(override: DepthMinimumsOverride | undefined): DepthMinimums;
119
+ export interface JourneyArcCoverage {
120
+ /** create → ≥2 fills → commit → (a follow-up action proving the run continued past commit) */
121
+ full_arcs: number;
122
+ /** create → ≥2 fills, but missing commit or verify */
123
+ partial_arcs: number;
124
+ /** Any successful commit (Save/Submit/etc.) after at least 1 input. */
125
+ fill_commit_arcs: number;
126
+ /** Successful clicks targeting Delete / Remove / Archive controls. */
127
+ delete_actions: number;
128
+ /** Sub-actions whose target hints at edit (open existing record, then change a field, then commit). */
129
+ edit_arcs: number;
130
+ }
131
+ /**
132
+ * Walk every interaction_log.jsonl across runs in time order, then run
133
+ * the small CRUD state machine. Returns arc counts.
134
+ */
135
+ export declare function detectJourneyArcs(cwd: string): JourneyArcCoverage;
136
+ export interface JourneyVerdict {
137
+ passed: boolean;
138
+ reason: string;
139
+ required: {
140
+ full_arcs: number;
141
+ edit_arcs: number;
142
+ delete_actions: number;
143
+ };
144
+ have: JourneyArcCoverage;
145
+ }
146
+ /**
147
+ * Decide whether the journey-arc coverage meets the project's threshold.
148
+ *
149
+ * The gate is project-aware:
150
+ * - If the project has NO inputs and NO submit_buttons, the gate is
151
+ * trivially satisfied (read-only app — there's nothing to drive).
152
+ * - If it has submit_buttons but no delete buttons, we only require
153
+ * full_arcs (no delete_actions threshold).
154
+ * - Edit-arc coverage is encouraged but only required when the project
155
+ * has at least 1 edit-style control.
156
+ */
157
+ export declare function evaluateUserJourney(arcs: JourneyArcCoverage, discovery: {
158
+ inputs: number;
159
+ submit_buttons: number;
160
+ has_delete: boolean;
161
+ has_edit: boolean;
162
+ } | undefined, required?: {
163
+ full_arcs: number;
164
+ edit_arcs: number;
165
+ delete_actions: number;
166
+ }): JourneyVerdict;
119
167
  //# sourceMappingURL=interaction_coverage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction_coverage.d.ts","sourceRoot":"","sources":["../../src/evidence/interaction_coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction_coverage.d.ts","sourceRoot":"","sources":["../../src/evidence/interaction_coverage.ts"],"names":[],"mappings":"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"}
@@ -561,4 +561,281 @@ export function resolveDepthMinimums(override) {
561
561
  }
562
562
  return out;
563
563
  }
564
+ const CREATE_HINT = /\b(add|new|create|insert|register|enroll|\+)\b/i;
565
+ const DELETE_HINT = /\b(delete|remove|trash|destroy|discard|archive|×|x)\b/i;
566
+ const EDIT_HINT = /\b(edit|modify|change|update|rename)\b/i;
567
+ function targetText(args) {
568
+ const parts = [args.selector, args.text, args.aria_label, args.label, args.target, args.automationId, args.name]
569
+ .filter((v) => typeof v === "string");
570
+ return parts.join(" ").toLowerCase();
571
+ }
572
+ function isCreateSignal(entry) {
573
+ const action = (entry.action ?? "").toLowerCase();
574
+ if (entry.success === false)
575
+ return false;
576
+ if (!["click", "double_click", "tap", "win_ui_automate"].includes(action))
577
+ return false;
578
+ const t = targetText(entry.input_args ?? {});
579
+ if (!CREATE_HINT.test(t))
580
+ return false;
581
+ // Don't classify generic "create" submit buttons inside a form as the
582
+ // "start a new arc" signal — those are commits. Heuristic: if a commit
583
+ // hint AND an "add new" hint both match, prefer create-signal only
584
+ // when the target literally starts with add/new/+/insert (not just
585
+ // any word containing 'create'). This catches "Add Product" / "+ New
586
+ // Component" / "New BOM" without false-positives on "Create Account".
587
+ if (/\b(save|submit|update|apply|confirm)\b/i.test(t) && !/^(add|new|insert|\+)\b/.test(t.trimStart()))
588
+ return false;
589
+ return true;
590
+ }
591
+ function isDeleteAction(entry) {
592
+ const action = (entry.action ?? "").toLowerCase();
593
+ if (entry.success === false)
594
+ return false;
595
+ if (!["click", "double_click", "tap", "win_ui_automate"].includes(action))
596
+ return false;
597
+ return DELETE_HINT.test(targetText(entry.input_args ?? {}));
598
+ }
599
+ function isEditSignal(entry) {
600
+ const action = (entry.action ?? "").toLowerCase();
601
+ if (entry.success === false)
602
+ return false;
603
+ if (!["click", "double_click", "tap", "win_ui_automate"].includes(action))
604
+ return false;
605
+ return EDIT_HINT.test(targetText(entry.input_args ?? {}));
606
+ }
607
+ function isInputAction(entry) {
608
+ if (entry.success === false)
609
+ return false;
610
+ const action = (entry.action ?? "").toLowerCase();
611
+ if (action === "type" || action === "fill" || action === "type_and_submit" || action === "type_and_tab")
612
+ return true;
613
+ if (action === "fill_form")
614
+ return true;
615
+ if (action === "win_ui_automate") {
616
+ const sub = (entry.input_args ?? {}).automation_action?.toLowerCase() ?? "";
617
+ return sub === "setvalue" || sub === "set_value";
618
+ }
619
+ return false;
620
+ }
621
+ /** Wider commit-hint check that also considers the `name` field
622
+ * (win_ui_automate uses `name`; the shared isCommitClick only looks at
623
+ * selector/text/aria_label/label/target/automationId). */
624
+ function hasCommitWordInTarget(args) {
625
+ const t = targetText(args);
626
+ if (!t)
627
+ return false;
628
+ return COMMIT_HINT_WORDS.some((w) => t.includes(w));
629
+ }
630
+ function isCommitAction(entry) {
631
+ if (entry.success === false)
632
+ return false;
633
+ const action = (entry.action ?? "").toLowerCase();
634
+ const args = entry.input_args ?? {};
635
+ if (action === "type_and_submit")
636
+ return true;
637
+ if (action === "fill_form" && (args.submit_selector || args.submit))
638
+ return true;
639
+ if (action === "click" || action === "double_click" || action === "tap")
640
+ return isCommitClick(args) || hasCommitWordInTarget(args);
641
+ if (action === "keystroke" || action === "hotkey")
642
+ return isCommitKey(args);
643
+ if (action === "win_ui_automate") {
644
+ const sub = args.automation_action?.toLowerCase() ?? "";
645
+ if (sub === "invoke" && (isCommitClick(args) || hasCommitWordInTarget(args)))
646
+ return true;
647
+ }
648
+ return false;
649
+ }
650
+ /**
651
+ * Flatten sequence/maestro_flow wrappers into their child entries so the
652
+ * state machine can see every step in order.
653
+ */
654
+ function flattenEntries(entries) {
655
+ const out = [];
656
+ for (const e of entries) {
657
+ const action = (e.action ?? "").toLowerCase();
658
+ if (action === "sequence") {
659
+ const steps = (e.input_args ?? {}).steps;
660
+ if (Array.isArray(steps)) {
661
+ for (const c of steps)
662
+ out.push({ ...c, timestamp: c.timestamp ?? e.timestamp, success: c.success ?? e.success });
663
+ continue;
664
+ }
665
+ }
666
+ if (action === "maestro_flow") {
667
+ const steps = (e.input_args ?? {}).maestro_steps;
668
+ if (Array.isArray(steps)) {
669
+ for (const c of steps)
670
+ out.push({ ...c, timestamp: c.timestamp ?? e.timestamp, success: c.success ?? e.success });
671
+ continue;
672
+ }
673
+ }
674
+ out.push(e);
675
+ }
676
+ return out;
677
+ }
678
+ /**
679
+ * Walk every interaction_log.jsonl across runs in time order, then run
680
+ * the small CRUD state machine. Returns arc counts.
681
+ */
682
+ export function detectJourneyArcs(cwd) {
683
+ const baseDir = getArtifactsBaseDir(cwd);
684
+ const out = {
685
+ full_arcs: 0,
686
+ partial_arcs: 0,
687
+ fill_commit_arcs: 0,
688
+ delete_actions: 0,
689
+ edit_arcs: 0,
690
+ };
691
+ if (!existsSync(baseDir))
692
+ return out;
693
+ const runs = listRuns(baseDir);
694
+ const allEntries = [];
695
+ for (const runId of runs) {
696
+ const logsDir = join(getRunDir(runId, baseDir), "logs");
697
+ if (!existsSync(logsDir))
698
+ continue;
699
+ const files = readdirSync(logsDir).filter((f) => f === "interaction_log.jsonl" || (f.startsWith("interaction_log") && f.endsWith(".jsonl")));
700
+ for (const f of files) {
701
+ const entries = parseLogFile(join(logsDir, f));
702
+ // Sort within a file by timestamp when available; fall back to insertion order.
703
+ entries.sort((a, b) => {
704
+ const ta = a.timestamp ? Date.parse(a.timestamp) : 0;
705
+ const tb = b.timestamp ? Date.parse(b.timestamp) : 0;
706
+ return ta - tb;
707
+ });
708
+ allEntries.push(...entries);
709
+ }
710
+ }
711
+ const flat = flattenEntries(allEntries);
712
+ let state = "idle";
713
+ let fillsInArc = 0;
714
+ let postCommitSawFollowup = false;
715
+ let editState = "idle";
716
+ let editFills = 0;
717
+ for (const e of flat) {
718
+ // GLOBAL signals first — they apply regardless of arc state.
719
+ if (isDeleteAction(e))
720
+ out.delete_actions += 1;
721
+ // CREATE arc state machine.
722
+ if (isCreateSignal(e)) {
723
+ // If we were mid-arc and a new create fires, close out the previous one.
724
+ if (state === "filling" || state === "creating")
725
+ out.partial_arcs += 1;
726
+ state = "creating";
727
+ fillsInArc = 0;
728
+ postCommitSawFollowup = false;
729
+ continue;
730
+ }
731
+ if (state === "creating" || state === "filling") {
732
+ if (isInputAction(e)) {
733
+ state = "filling";
734
+ fillsInArc += 1;
735
+ continue;
736
+ }
737
+ if (isCommitAction(e) && fillsInArc >= 1) {
738
+ out.fill_commit_arcs += 1;
739
+ if (fillsInArc >= 2) {
740
+ state = "committed";
741
+ }
742
+ else {
743
+ // 1 fill + commit isn't enough for a full arc but is a partial.
744
+ out.partial_arcs += 1;
745
+ state = "idle";
746
+ }
747
+ continue;
748
+ }
749
+ }
750
+ else if (state === "committed") {
751
+ // Any non-error follow-up after commit confirms we didn't crash.
752
+ if (e.success !== false) {
753
+ postCommitSawFollowup = true;
754
+ out.full_arcs += 1;
755
+ state = "idle";
756
+ // fall through to also let this entry kick off an edit-arc
757
+ }
758
+ }
759
+ // EDIT arc state machine. We allow it to run in parallel with create.
760
+ if (isEditSignal(e)) {
761
+ if (editState === "edit_filling")
762
+ out.partial_arcs += 1;
763
+ editState = "editing";
764
+ editFills = 0;
765
+ continue;
766
+ }
767
+ if (editState === "editing" || editState === "edit_filling") {
768
+ if (isInputAction(e)) {
769
+ editState = "edit_filling";
770
+ editFills += 1;
771
+ continue;
772
+ }
773
+ if (isCommitAction(e) && editFills >= 1) {
774
+ out.edit_arcs += 1;
775
+ editState = "idle";
776
+ continue;
777
+ }
778
+ }
779
+ }
780
+ // If we ended mid-arc, credit it as partial.
781
+ if (state === "filling" || state === "creating")
782
+ out.partial_arcs += 1;
783
+ if (editState === "edit_filling" || editState === "editing")
784
+ out.partial_arcs += 1;
785
+ // `postCommitSawFollowup` is used inside the loop; silence the unused-var lint.
786
+ void postCommitSawFollowup;
787
+ return out;
788
+ }
789
+ /**
790
+ * Decide whether the journey-arc coverage meets the project's threshold.
791
+ *
792
+ * The gate is project-aware:
793
+ * - If the project has NO inputs and NO submit_buttons, the gate is
794
+ * trivially satisfied (read-only app — there's nothing to drive).
795
+ * - If it has submit_buttons but no delete buttons, we only require
796
+ * full_arcs (no delete_actions threshold).
797
+ * - Edit-arc coverage is encouraged but only required when the project
798
+ * has at least 1 edit-style control.
799
+ */
800
+ export function evaluateUserJourney(arcs, discovery, required = { full_arcs: 1, edit_arcs: 0, delete_actions: 0 }) {
801
+ // No discovery snapshot → fall back to the minimum (require ≥1 full arc).
802
+ const req = { ...required };
803
+ if (discovery) {
804
+ if (discovery.inputs === 0 || discovery.submit_buttons === 0) {
805
+ // Nothing to drive a CRUD arc on. Pass trivially.
806
+ return {
807
+ passed: true,
808
+ reason: "No input fields or submit buttons detected — journey gate not applicable.",
809
+ required: req,
810
+ have: arcs,
811
+ };
812
+ }
813
+ if (discovery.has_delete && req.delete_actions === 0)
814
+ req.delete_actions = 1;
815
+ if (discovery.has_edit && req.edit_arcs === 0)
816
+ req.edit_arcs = 1;
817
+ }
818
+ const shortfalls = [];
819
+ if (arcs.full_arcs < req.full_arcs)
820
+ shortfalls.push(`full_arcs: need >= ${req.full_arcs}, have ${arcs.full_arcs}`);
821
+ if (arcs.edit_arcs < req.edit_arcs)
822
+ shortfalls.push(`edit_arcs: need >= ${req.edit_arcs}, have ${arcs.edit_arcs}`);
823
+ if (arcs.delete_actions < req.delete_actions)
824
+ shortfalls.push(`delete_actions: need >= ${req.delete_actions}, have ${arcs.delete_actions}`);
825
+ if (shortfalls.length === 0) {
826
+ return {
827
+ passed: true,
828
+ reason: `User journey coverage met: full_arcs=${arcs.full_arcs}, edit_arcs=${arcs.edit_arcs}, delete_actions=${arcs.delete_actions} (fill+commit=${arcs.fill_commit_arcs}, partial=${arcs.partial_arcs}).`,
829
+ required: req,
830
+ have: arcs,
831
+ };
832
+ }
833
+ return {
834
+ passed: false,
835
+ reason: `User journey coverage NOT met. The recording did not show a human-like CRUD workflow.\nShortfalls:\n - ${shortfalls.join("\n - ")}\n` +
836
+ `Next steps: call codeloop_plan_user_journey, then follow the per-entity arcs it returns. Each arc is: click Add/New → fill EVERY field with realistic values (not 'test'/'abc') → click Save/Submit → verify the new record persists (screenshot + read-back) → re-open and edit a field → save → delete. Don't stop after the create.`,
837
+ required: req,
838
+ have: arcs,
839
+ };
840
+ }
564
841
  //# sourceMappingURL=interaction_coverage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction_coverage.js","sourceRoot":"","sources":["../../src/evidence/interaction_coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction_coverage.js","sourceRoot":"","sources":["../../src/evidence/interaction_coverage.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -953,6 +953,48 @@ selects, datagrids, upload_areas, ai_features, forms }, ai_features_detected, sc
953
953
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
954
954
  };
955
955
  });
956
+ server.tool("codeloop_plan_user_journey", TOOL_BOOTSTRAP + `Build a per-entity USER-JOURNEY PLAN the agent must follow during recording so the
957
+ session reflects a human QA workflow — not random clicks. This is the missing layer
958
+ between codeloop_discover_interactions (what controls exist) and codeloop_start_recording
959
+ (drive the app). Without it, agents tend to type "abc" into one field, click one button,
960
+ and call it a session — even when the underlying product is a CRUD app with domain
961
+ entities a human user would CREATE, READ, UPDATE, and DELETE end-to-end.
962
+
963
+ The plan:
964
+ 1. Calls codeloop_discover_interactions internally for inputs/buttons/forms/AI features.
965
+ 2. Mines spec.md / acceptance.md / README / docs/*.md for entity nouns (Product, Component,
966
+ BOM, Order, LED Engine, …) and scores them by frequency + Add/New button labels +
967
+ View/Form/Page class names.
968
+ 3. For each top-N entity, returns a CRUD ARC:
969
+ navigate → click Add → fill EVERY discovered input (with realistic example values
970
+ inferred from labels: "4000" for CCT in K, "350" for Drive Current in mA, "90" for
971
+ CRI, "test+codeloop@example.com" for Email, …) → click Save → verify persisted →
972
+ open the record → edit a field → save → delete.
973
+ 4. Identifies AI features and proposes substantive (>= 30-char) prompts to exercise
974
+ the AI loop (multi-turn, tool routing, RAG, regression).
975
+ 5. Surfaces coverage_targets that the user_journey_evidence gate enforces.
976
+
977
+ Call AFTER codeloop_discover_interactions and BEFORE codeloop_start_recording. The
978
+ returned plan is the agent's recording script — follow each arc step by step, do NOT
979
+ substitute realistic field values with 'test'/'abc' (the gate will fail), and run the
980
+ arcs in priority order. The arc isn't done until you've verified persistence (screenshot
981
+ + list re-read) — NOT just clicked Save.
982
+
983
+ Returns: { project_summary, entities: [{ name, priority, arc: [{ step, target, fields,
984
+ hint, ai_prompt }] }], ai_journeys, coverage_targets: { full_crud_arcs,
985
+ ai_substantive_prompts, upload_actions, datagrid_edits }, advice, discovered_interactions_summary }.`, {
986
+ platform: z.enum(["flutter", "web", "mobile", "xcode", "android", "dotnet", "auto"]).default("auto"),
987
+ project_dir: z.string().optional().describe("Absolute path to the project root. Defaults to CODELOOP_PROJECT_DIR or cwd."),
988
+ top_n: z.number().int().min(1).max(10).default(3).describe("Number of top-priority entities to plan arcs for. 3 is a sane default for one recording session."),
989
+ }, async (params) => {
990
+ const result = await withAuth(async () => {
991
+ const { planUserJourney } = await import("./tools/plan_user_journey.js");
992
+ return planUserJourney(params.project_dir || projectDir, params.platform, params.top_n);
993
+ }, { tool: "codeloop_plan_user_journey", cwd: params.project_dir || projectDir, input: params });
994
+ return {
995
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
996
+ };
997
+ });
956
998
  server.tool("codeloop_record_interaction", TOOL_BOOTSTRAP + `Record a fixed-duration video of the app window (blocking). Use for simple captures where no
957
999
  interaction is needed during recording. The app is brought to front automatically and the
958
1000
  IDE is restored after recording completes.