@yamo/memory-mesh 2.0.1

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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -0
  3. package/bin/memory_mesh.js +69 -0
  4. package/bin/scrubber.js +81 -0
  5. package/index.d.ts +111 -0
  6. package/lib/adapters/index.js +3 -0
  7. package/lib/embeddings/factory.js +150 -0
  8. package/lib/embeddings/index.js +2 -0
  9. package/lib/embeddings/service.js +586 -0
  10. package/lib/index.js +18 -0
  11. package/lib/lancedb/client.js +631 -0
  12. package/lib/lancedb/config.js +215 -0
  13. package/lib/lancedb/errors.js +144 -0
  14. package/lib/lancedb/index.js +4 -0
  15. package/lib/lancedb/schema.js +197 -0
  16. package/lib/memory/index.js +3 -0
  17. package/lib/memory/memory-context-manager.js +388 -0
  18. package/lib/memory/memory-mesh.js +910 -0
  19. package/lib/memory/memory-translator.js +130 -0
  20. package/lib/memory/migrate-memory.js +227 -0
  21. package/lib/memory/migrate-to-v2.js +120 -0
  22. package/lib/memory/scorer.js +85 -0
  23. package/lib/memory/vector-memory.js +364 -0
  24. package/lib/privacy/audit-logger.js +176 -0
  25. package/lib/privacy/dlp-redactor.js +72 -0
  26. package/lib/privacy/index.js +10 -0
  27. package/lib/reporting/skill-report-generator.js +283 -0
  28. package/lib/scrubber/.gitkeep +1 -0
  29. package/lib/scrubber/config/defaults.js +62 -0
  30. package/lib/scrubber/errors/scrubber-error.js +43 -0
  31. package/lib/scrubber/index.js +25 -0
  32. package/lib/scrubber/scrubber.js +130 -0
  33. package/lib/scrubber/stages/chunker.js +103 -0
  34. package/lib/scrubber/stages/metadata-annotator.js +74 -0
  35. package/lib/scrubber/stages/normalizer.js +59 -0
  36. package/lib/scrubber/stages/semantic-filter.js +61 -0
  37. package/lib/scrubber/stages/structural-cleaner.js +82 -0
  38. package/lib/scrubber/stages/validator.js +66 -0
  39. package/lib/scrubber/telemetry.js +66 -0
  40. package/lib/scrubber/utils/hash.js +39 -0
  41. package/lib/scrubber/utils/html-parser.js +45 -0
  42. package/lib/scrubber/utils/pattern-matcher.js +63 -0
  43. package/lib/scrubber/utils/token-counter.js +31 -0
  44. package/lib/search/filter.js +275 -0
  45. package/lib/search/hybrid.js +137 -0
  46. package/lib/search/index.js +3 -0
  47. package/lib/search/pattern-miner.js +160 -0
  48. package/lib/utils/error-sanitizer.js +84 -0
  49. package/lib/utils/handoff-validator.js +85 -0
  50. package/lib/utils/index.js +4 -0
  51. package/lib/utils/spinner.js +190 -0
  52. package/lib/utils/streaming-client.js +128 -0
  53. package/package.json +39 -0
  54. package/skills/SKILL.md +462 -0
  55. package/skills/skill-scrubber.yamo +41 -0
@@ -0,0 +1,462 @@
1
+ ---
2
+ name: yamo-super
3
+ description: YamoSuper is a comprehensive AI coding workflow system that orchestrates the complete software development lifecycle through specialized agents managing brainstorming, git worktree isolation, implementation planning, dual execution modes (fresh-subagent-per-task with two-stage review or batch with checkpoints), strict test-driven development, systematic debugging, and pre-merge quality gates—all designed to enable autonomous execution while maintaining human oversight and enforcing YAGNI/DRY best practices.
4
+ ---
5
+
6
+ when improving or creating new code follow the this yamo-skill:
7
+
8
+ metadata:
9
+ name;YamoSuper;
10
+ version;2.0.0;
11
+ description;Comprehensive AI coding workflow system consolidating test-driven development, systematic debugging, collaborative planning, and proven software engineering patterns with persistent memory of past workflows;
12
+ author;Derived from Superpowers by Jesse Scott;adapted for YAMO by Soverane Labs;
13
+ license;MIT;
14
+ tags;tdd;debugging;collaboration;planning;workflow;subagent;git;review;memory;
15
+ capabilities;brainstorm_design;write_implementation_plan;execute_plan_batch;test_driven_development;systematic_debugging;verification;code_review;git_worktree;subagent_driven;parallel_dispatch;retrieve_workflow_patterns;store_execution_history;
16
+ parameters:
17
+ workflow_mode:
18
+ type;string;
19
+ required;false;
20
+ description;Mode: brainstorm, plan, execute, debug, review;
21
+ enum;brainstorm;plan;execute;debug;review;
22
+ dry_run:
23
+ type;boolean;
24
+ required;false;
25
+ description;Preview actions without executing;
26
+ memory_enabled:
27
+ type;boolean;
28
+ required;false;
29
+ default;true;
30
+ description;Enable storing and retrieving workflow execution patterns from Memory Mesh;
31
+ environment:
32
+ requires_filesystem;true;
33
+ requires_local_storage;true;
34
+ notes;Creates worktrees, writes plans, manages git workflows, and stores execution history in Memory Mesh;
35
+ dependencies:
36
+ required:
37
+ - Git >= 2.30.0
38
+ - Node >= 18.0.0 (for npm test commands)
39
+ - MemoryMesh >=1.0.0;
40
+ optional:
41
+ - YamoChainClient (for blockchain anchoring)
42
+ ---
43
+ agent: WorkflowOrchestrator;
44
+ intent: determine_workflow_entry_point;
45
+ context:
46
+ user_request;raw_input;
47
+ project_state;current_git_status;recent_commits;file_tree;
48
+ available_modes;brainstorm;plan;execute;debug;review;
49
+ memory_script;tools/memory_mesh.js;
50
+ memory_enabled;provided_by_user.memory_enabled;
51
+ constraints:
52
+ - check_if_creative_work_requested;trigger_brainstorming_agent;
53
+ - check_if_spec_exists;trigger_planning_agent;
54
+ - check_if_plan_exists;trigger_execution_agent;
55
+ - check_if_bug_reported;trigger_debugging_agent;
56
+ - check_if_review_requested;trigger_review_agent;
57
+ - default_to_brainstorming_if_uncertain;
58
+ - announce_active_workflow_to_user;
59
+ - retrieve_similar_past_workflows;
60
+ priority: critical;
61
+ output: workflow_decision.json;
62
+ log: workflow_determined;timestamp;mode_selected;
63
+ meta:
64
+ hypothesis;Clear workflow entry point prevents context confusion;
65
+ rationale;Different development phases require distinct mindsets and tools;
66
+ handoff: BrainstormingAgent;
67
+ ---
68
+ agent: BrainstormingAgent;
69
+ intent: refine_ideas_through_socratic_dialogue;
70
+ context:
71
+ project_state;from_WorkflowOrchestrator;
72
+ user_idea;raw_request;
73
+ constraints:
74
+ - check_project_context_first;files;docs;recent_commits;
75
+ - ask_questions_one_at_a_time;
76
+ - prefer_multiple_choice_when_possible;
77
+ - focus_understanding;purpose;constraints;success_criteria;
78
+ - propose_2_3_alternatives_with_tradeoffs;
79
+ - present_design_in_sections_200_300_words;
80
+ - validate_after_each_section;
81
+ - cover;architecture;components;data_flow;error_handling;testing;
82
+ - apply_yagni_ruthlessly;
83
+ priority: high;
84
+ output: validated_design.md;
85
+ log: design_validated;timestamp;sections_reviewed;
86
+ meta:
87
+ hypothesis;Incremental validation produces better designs;
88
+ rationale;Large designs overwhelm;section-by-section enables feedback;
89
+ handoff: DocumentationAgent;
90
+ ---
91
+ agent: DocumentationAgent;
92
+ intent: persist_and_commit_design;
93
+ context:
94
+ design;from_BrainstormingAgent;
95
+ destination;docs/plans/YYYY-MM-DD-<topic>-design.md;
96
+ constraints:
97
+ - use_clear_concise_writing;
98
+ - commit_to_git_with_descriptive_message;
99
+ - tag_commit_with_design_reviewed;
100
+ - ask_ready_for_implementation;
101
+ priority: medium;
102
+ output: design_file_path;commit_sha;
103
+ log: design_documented;timestamp;file_path;commit_sha;
104
+ meta:
105
+ hypothesis;Documented designs enable better implementation;
106
+ rationale;Written specs prevent drift during coding;
107
+ handoff: WorktreeAgent;
108
+ ---
109
+ agent: WorktreeAgent;
110
+ intent: create_isolated_development_workspace;
111
+ context:
112
+ design;from_DocumentationAgent;
113
+ base_branch;main_or_master;
114
+ constraints:
115
+ - create_git_worktree_at;.git/worktrees/<feature-name>;
116
+ - checkout_new_branch_feature/<name>;
117
+ - run_project_setup;npm_install;npm_run_build;
118
+ - verify_clean_test_baseline;npm_test;
119
+ - document_worktree_location;
120
+ priority: high;
121
+ output: worktree_path;branch_name;
122
+ log: workspace_created;timestamp;path;branch;
123
+ meta:
124
+ hypothesis;Isolated worktrees prevent main branch pollution;
125
+ rationale;Clean branches enable easy rollback and parallel development;
126
+ handoff: PlanningAgent;
127
+ ---
128
+ agent: PlanningAgent;
129
+ intent: create_detailed_implementation_plan;
130
+ context:
131
+ design;from_DocumentationAgent;
132
+ worktree_path;from_WorktreeAgent;
133
+ assumptions;
134
+ engineer_has_zero_codebase_context;
135
+ engineer_has_questionable_taste;
136
+ engineer_needs_explicit_instructions;
137
+ constraints:
138
+ - break_into_bite_sized_tasks;2_5_minutes_each;
139
+ - each_task_one_action;write_test;run_test;implement;verify;commit;
140
+ - specify_exact_file_paths;
141
+ - include_complete_code_not_hints;
142
+ - include_exact_commands_with_expected_output;
143
+ - reference_relevant_skills_with_at_syntax;
144
+ - enforce_dry;yagni;tdd;frequent_commits;
145
+ - save_to;docs/plans/YYYY-MM-DD-<feature-name>.md;
146
+ - include_required_header;goal;architecture;tech_stack;
147
+ - include_sub_skill_directive;use_superpowers:executing_plans;
148
+ priority: critical;
149
+ output: implementation_plan.md;
150
+ log: plan_created;timestamp;task_count;
151
+ meta:
152
+ hypothesis;Explicit plans enable autonomous subagent execution;
153
+ rationale;Zero_context engineers need complete information;
154
+ handoff: ExecutionSelector;
155
+ ---
156
+ agent: ExecutionSelector;
157
+ intent: offer_execution_choice;
158
+ context:
159
+ plan;from_PlanningAgent;
160
+ worktree_path;from_WorktreeAgent;
161
+ constraints:
162
+ - present_two_options;subagent_driven;parallel_session;
163
+ - explain_subagent_driven;same_session;fresh_subagent_per_task;two_stage_review;
164
+ - explain_parallel_session;new_session;batch_execution;checkpoints;
165
+ - await_user_choice;
166
+ priority: high;
167
+ output: execution_mode;session_instructions;
168
+ log: execution_mode_selected;timestamp;mode;
169
+ meta:
170
+ hypothesis;Choice accommodates different working styles;
171
+ rationale;Some prefer continuity;others prefer isolation;
172
+ handoff: SubagentDriver;
173
+ ---
174
+ agent: SubagentDriver;
175
+ intent: execute_plan_via_fresh_subagents;
176
+ context:
177
+ plan;from_PlanningAgent;
178
+ worktree_path;from_WorktreeAgent;
179
+ constraints:
180
+ - read_plan_once;extract_all_tasks_with_full_text;
181
+ - create_todo_write_with_all_tasks;
182
+ - per_task;
183
+ - dispatch_implementer_subagent_with_full_context;
184
+ - allow_subagent_to_ask_questions_before_work;
185
+ - implementer_subagent_implements_tests_commits_self_reviews;
186
+ - dispatch_spec_compliance_reviewer_subagent;
187
+ - spec_reviewer_confirms_code_matches_spec;
188
+ - if_spec_issues;implementer_fixes;re_review_until_approved;
189
+ - dispatch_code_quality_reviewer_subagent;
190
+ - code_reviewer_approves_quality;
191
+ - if_quality_issues;implementer_fixes;re_review_until_approved;
192
+ - mark_task_complete_in_todo_write;
193
+ - after_all_tasks;dispatch_final_code_reviewer;
194
+ - use_finishing_development_branch_workflow;
195
+ - never_skip_reviews;
196
+ - never_parallel_dispatch_implementers;
197
+ - always_provide_full_text_not_file_references;
198
+ - ensure_scene_setting_context_per_task;
199
+ priority: critical;
200
+ output: implementation_complete;all_commits;
201
+ log: execution_complete;timestamp;tasks_completed;commits;
202
+ meta:
203
+ hypothesis;Fresh subagents per task prevent context pollution;
204
+ rationale;Two_stage_review ensures_spec_compliance_and_code_quality;
205
+ handoff: BatchExecutor;
206
+ ---
207
+ agent: BatchExecutor;
208
+ intent: execute_plan_in_batches_with_checkpoints;
209
+ context:
210
+ plan;from_PlanningAgent;
211
+ worktree_path;from_WorktreeAgent;
212
+ constraints:
213
+ - group_tasks_into_logical_batches;
214
+ - execute_batch sequentially;
215
+ - after_each_batch;
216
+ - run_all_tests;verify_passing;
217
+ - request_human_checkpoint;
218
+ - await_approval_before_next_batch;
219
+ - commit_after_each_batch;
220
+ - report_progress_clearly;
221
+ priority: high;
222
+ output: batches_completed;checkpoint_status;
223
+ log: batch_execution_complete;timestamp;batches;checkpoints_passed;
224
+ meta:
225
+ hypothesis;Checkpoints maintain human oversight;
226
+ rationale;Batch execution balances autonomy_with_control;
227
+ handoff: TDDAgent;
228
+ ---
229
+ agent: TDDAgent;
230
+ intent: enforce_test_driven_development_cycle;
231
+ context:
232
+ task;from_SubagentDriver_or_BatchExecutor;
233
+ constraints:
234
+ - iron_law;no_production_code_without_failing_test_first;
235
+ - red;write_one_minimal_test;
236
+ - one_behavior_per_test;
237
+ - clear_name_describing_behavior;
238
+ - use_real_code_not_mocks;
239
+ - verify_red;run_test;confirm_fails_correctly;
240
+ - test_must_fail_not_error;
241
+ - failure_message_must_be_expected;
242
+ - fails_because_feature_missing_not_typo;
243
+ - green;write_minimal_code_to_pass;
244
+ - simplest_possible_implementation;
245
+ - no_features_beyond_test;
246
+ - no_refactoring_during_green;
247
+ - verify_green;run_test;confirm_passes;
248
+ - test_passes;
249
+ - other_tests_still_pass;
250
+ - output_pristine_no_errors;
251
+ - refactor;clean_up_only_after_green;
252
+ - remove_duplication;
253
+ - improve_names;
254
+ - extract_helpers;
255
+ - keep_tests_green;
256
+ - red_flags;code_before_test;test_passes_immediately;rationalizing_exceptions;
257
+ - penalty;delete_code_start_over;
258
+ priority: critical;
259
+ output: test_coverage;implementation;
260
+ log: tdd_cycle_complete;timestamp;test_name;status;
261
+ meta:
262
+ hypothesis;Watching_test_fail_proves_it_tests_something;
263
+ rationale;tests_after_answer_what_does_this_do;tests_first_answer_what_should_this_do;
264
+ handoff: DebuggingAgent;
265
+ ---
266
+ agent: DebuggingAgent;
267
+ intent: systematic_root_cause_analysis;
268
+ context:
269
+ bug_report;user_report_or_test_failure;
270
+ constraints:
271
+ - phase_1_define_problem;
272
+ - describe_symptoms_precisely;
273
+ - identify_affected_components;
274
+ - determine_frequency_always_sometimes_intermittent;
275
+ - phase_2_gather_evidence;
276
+ - reproduce_bug_reliably;
277
+ - collect_logs_stack_traces;
278
+ - identify_when_started_working;
279
+ - phase_3_isolate_cause;
280
+ - use_root_cause_tracing;
281
+ - use_defense_in_depth_analysis;
282
+ - use_condition_based_waiting_for_race_conditions;
283
+ - binary_search_git_history;
284
+ - minimize_reproduction_case;
285
+ - phase_4_verify_fix;
286
+ - write_failing_test_reproducing_bug;
287
+ - apply_tdd_cycle_to_fix;
288
+ - use_verification_before_completion;
289
+ - never_fix_without_test;
290
+ - never_apply_bandages;
291
+ priority: high;
292
+ output: root_cause;fix_verification_test;
293
+ log: bug_resolved;timestamp;root_cause;test_added;
294
+ meta:
295
+ hypothesis;Systematic_debugging_faster_than_shotgun_debugging;
296
+ rationale;root_cause_elimination_prevents_reoccurrence;
297
+ handoff: VerificationAgent;
298
+ ---
299
+ agent: VerificationAgent;
300
+ intent: ensure_fix_actually_works;
301
+ context:
302
+ proposed_fix;from_DebuggingAgent;
303
+ original_bug;from_DebuggingAgent;
304
+ constraints:
305
+ - reproduce_original_bug_first;confirm_exists;
306
+ - apply_fix;
307
+ - verify_bug_gone;
308
+ - verify_no_regressions;
309
+ - verify_edge_cases;
310
+ - run_full_test_suite;
311
+ - check_output_pristine;
312
+ - if_not_fixed;restart_debugging;
313
+ priority: high;
314
+ output: verification_status;regression_check;
315
+ log: verification_complete;timestamp;status;regressions;
316
+ meta:
317
+ hypothesis;Verification_catches_incomplete_fixes;
318
+ rationale;feeling_fixed_does_not_mean_fixed;
319
+ handoff: CodeReviewAgent;
320
+ ---
321
+ agent: CodeReviewAgent;
322
+ intent: conduct_pre_merge_quality_gate;
323
+ context:
324
+ implementation;from_SubagentDriver_or_BatchExecutor;
325
+ plan;from_PlanningAgent;
326
+ constraints:
327
+ - review_against_plan;
328
+ - all_requirements_implemented;
329
+ - no_extra_features_beyond_spec;
330
+ - file_matches_match_plan;
331
+ - code_quality_check;
332
+ - tests_cover_all_cases;
333
+ - tests_use_real_code_not_mocks;
334
+ - code_is_clean_not_clever;
335
+ - names_are_clear;
336
+ - no_duplication;
337
+ - proper_error_handling;
338
+ - report_by_severity;
339
+ - critical;blocks_progress;must_fix;
340
+ - important;should_fix_before_merge;
341
+ - minor;nice_to_have;
342
+ - if_critical_issues;block_progress;
343
+ - if_no_issues;approve;
344
+ priority: critical;
345
+ output: review_report;approval_status;
346
+ log: review_complete;timestamp;critical;important;minor;status;
347
+ meta:
348
+ hypothesis;Pre_merge_review_catches_issues_early;
349
+ rationale;merge_reviews_are_too_late_for_easy_fixes;
350
+ handoff: BranchFinisher;
351
+ ---
352
+ agent: BranchFinisher;
353
+ intent: complete_development_branch_workflow;
354
+ context:
355
+ implementation;from_CodeReviewAgent;
356
+ worktree_path;from_WorktreeAgent;
357
+ constraints:
358
+ - verify_all_tests_pass;
359
+ - verify_no_regressions;
360
+ - present_options;
361
+ - merge_to_main;
362
+ - create_pull_request;
363
+ - keep_branch_for_more_work;
364
+ - discard_branch;
365
+ - if_merge;merge_fast_forward_or_squash;delete_worktree;
366
+ - if_pull_request;create_pr_with_description;link_to_plan;
367
+ - if_discard;delete_branch;remove_worktree;
368
+ - document_decision;
369
+ priority: high;
370
+ output: merge_status;pr_url_or_branch_deleted;
371
+ log: branch_completed;timestamp;outcome;
372
+ meta:
373
+ hypothesis;Explicit_branch_completion_prevents_orphan_branches;
374
+ rationale;clear_decisions_prevent_branch_accumulation;
375
+ handoff: ParallelDispatcher;
376
+ ---
377
+ agent: ParallelDispatcher;
378
+ intent: coordinate_concurrent_subagent_workflows;
379
+ context:
380
+ independent_tasks;task_list;
381
+ constraints:
382
+ - identify_truly_independent_tasks;
383
+ - dispatch_subagents_in_parallel;
384
+ - wait_for_all_subagents;
385
+ - collect_results;
386
+ - detect_conflicts;
387
+ - if_conflicts;resolve_sequentially;
388
+ - merge_results;
389
+ priority: medium;
390
+ output: parallel_results;conflict_resolution_log;
391
+ log: parallel_dispatch_complete;timestamp;tasks;conflicts;
392
+ meta:
393
+ hypothesis;Parallel_execution_saves_wall_clock_time;
394
+ rationale;independent_tasks_have_no_dependencies;
395
+ handoff: SkillMetaAgent;
396
+ ---
397
+ agent: SkillMetaAgent;
398
+ intent: enable_skill_creation_and_extension;
399
+ context:
400
+ new_skill_idea;user_request;
401
+ constraints:
402
+ - use_writing_skills_skill;
403
+ - follow_skill_structure;
404
+ - metadata_block;
405
+ - agent_definitions;
406
+ - constraints_as_semicolon_key_values;
407
+ - triple_dash_delimiters;
408
+ - explicit_handoff_chains;
409
+ - ensure_v1_compliance;
410
+ - scaffold_tests;
411
+ - validate_syntax;
412
+ - classify_category;
413
+ priority: low;
414
+ output: new_skill_yamo;test_plan;
415
+ log: skill_created;timestamp;name;category;
416
+ meta:
417
+ hypothesis;Meta_skills_enable_ecosystem_growth;
418
+ rationale;extensible_systems_adapt_to_new_needs;
419
+ handoff: End;
420
+ ---
421
+ agent: UsageGuide;
422
+ intent: introduce_superpowers_workflow;
423
+ context:
424
+ user;new_to_superpowers;
425
+ constraints:
426
+ - explain_basic_workflow;
427
+ - brainstorming;design_refinement;
428
+ - using_git_worktrees;isolated_workspace;
429
+ - writing_plans;implementation_breakdown;
430
+ - subagent_driven_or_executing_plans;task_execution;
431
+ - test_driven_development;red_green_refactor;
432
+ - systematic_debugging;root_cause_analysis;
433
+ - requesting_code_review;quality_gate;
434
+ - finishing_development_branch;merge_pr_discard;
435
+ - explain_skills_trigger_automatically;
436
+ - explain_mandatory_not_suggestions;
437
+ - demonstrate_with_example;
438
+ priority: low;
439
+ output: user_understanding;workflow_ready;
440
+ log: onboarded;timestamp;user;
441
+ meta:
442
+ hypothesis;clear_introduction_enables_effective_use;
443
+ rationale;understanding_why_builds_compliance;
444
+ handoff: WorkflowMemoryStore;
445
+ ---
446
+ agent: WorkflowMemoryStore;
447
+ intent: store_workflow_execution_for_pattern_recognition;
448
+ context:
449
+ workflow_decision;from_WorkflowOrchestrator;
450
+ memory_script;tools/memory_mesh.js;
451
+ memory_enabled;provided_by_user.memory_enabled;
452
+ constraints:
453
+ - generate_workflow_embedding;
454
+ - tag_by_mode_project_type_and_outcome;
455
+ - store_execution_patterns;
456
+ - enable_future_recommendations;
457
+ priority: low;
458
+ output: workflow_memory_receipt.json;
459
+ log: workflow_stored;memory_id;
460
+ meta:
461
+ hypothesis;Storing workflows enables pattern recognition for future recommendations;
462
+ handoff: End;
@@ -0,0 +1,41 @@
1
+ metadata:
2
+ name;Scrubber;
3
+ version;1.0.0;
4
+ description;A utility skill that sanitizes text or files using S-MORA Layer 0 Scrubber principles (removing PII, boilerplate, and normalizing structure).;
5
+ author;Soverane Labs;
6
+ license;MIT;
7
+ tags;utility;sanitization;cleaning;security;
8
+ capabilities;scrub_text;scrub_file;
9
+ parameters:
10
+ content:
11
+ type;string;
12
+ required;false;
13
+ description;Raw text content to scrub.;
14
+ file_path:
15
+ type;string;
16
+ required;false;
17
+ description;Path to a file to scrub.;
18
+ environment:
19
+ requires_filesystem;true;
20
+ dependencies:
21
+ required:
22
+ - node >=18.0.0;
23
+ - tools/scrubber.js;
24
+ ---
25
+ agent: ScrubbingAgent;
26
+ intent: sanitize_input_content;
27
+ context:
28
+ raw_text;provided_by_user.content;
29
+ target_file;provided_by_user.file_path;
30
+ scrubber_tool;tools/scrubber.js;
31
+ constraints:
32
+ - if_file_provided;use_tool_scrub_file_mode;
33
+ - if_text_provided;use_tool_scrub_mode;
34
+ - if_both;prefer_file;
35
+ - remove_boilerplate_and_pii;
36
+ - normalize_structure;
37
+ - return_cleaned_json_result;
38
+ priority: high;
39
+ output: scrubbed_result.json;
40
+ log: content_scrubbed;original_length;cleaned_length;
41
+ handoff: End;