icdev 0.0.3__py3-none-any.whl
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.
- args/agent_config.yaml +113 -0
- args/audit_regimes/cisa_sbd.json +381 -0
- args/audit_regimes/cmmc_l2.json +906 -0
- args/audit_regimes/dod_cssp.json +393 -0
- args/audit_regimes/dodi_5000_87.json +297 -0
- args/audit_regimes/fedramp_moderate.json +650 -0
- args/audit_regimes/ieee_1012.json +373 -0
- args/audit_regimes/nist_800_171.json +624 -0
- args/audit_regimes/nist_800_53.json +907 -0
- args/cloudforge_blueprints/aws_commercial.yaml +29 -0
- args/cloudforge_blueprints/aws_govcloud_il4.yaml +34 -0
- args/cloudforge_blueprints/aws_govcloud_il5.yaml +38 -0
- args/cloudforge_blueprints/azure_commercial.yaml +28 -0
- args/cloudforge_blueprints/azure_gov_il4.yaml +32 -0
- args/cloudforge_blueprints/azure_gov_il5.yaml +36 -0
- args/cloudforge_blueprints/gcp_commercial.yaml +28 -0
- args/cloudforge_blueprints/oci_commercial.yaml +28 -0
- args/cloudforge_config.yaml +231 -0
- args/cloudforge_runbook_templates/backup_verify.yaml +98 -0
- args/cloudforge_runbook_templates/dr_failover.yaml +107 -0
- args/cloudforge_runbook_templates/health_check.yaml +97 -0
- args/cloudforge_runbook_templates/incident_response.yaml +101 -0
- args/cloudforge_runbook_templates/migration_cutover.yaml +105 -0
- args/cloudforge_runbook_templates/patch_rollout.yaml +92 -0
- args/cloudforge_runbook_templates/zone_provision.yaml +93 -0
- args/code_pattern_config.yaml +151 -0
- args/code_quality_config.yaml +47 -0
- args/compliance_config.yaml +17 -0
- args/control_inheritance.yaml +177 -0
- args/csp_mcp_config.yaml +41 -0
- args/cui_markings.yaml +35 -0
- args/databridge_config.yaml +232 -0
- args/db_config.yaml +116 -0
- args/decision_tables/agent_trust_decision.yaml +143 -0
- args/decision_tables/ato_boundary_impact.yaml +132 -0
- args/decision_tables/deployment_approval.yaml +152 -0
- args/degradation_matrix.yaml +163 -0
- args/devsecops_config.yaml +286 -0
- args/endpoint_security_config.yaml +207 -0
- args/exit_criteria.yaml +102 -0
- args/feature_flags.yaml +235 -0
- args/file_access_tiers.yaml +88 -0
- args/forge_studio/blueprint_config.yaml +27 -0
- args/forge_studio/component_catalog.json +411 -0
- args/forge_studio/workflow_templates.yaml +103 -0
- args/govcon_config.yaml +41 -0
- args/harness_config.yaml +67 -0
- args/innovation_config.yaml +321 -0
- args/knowledge_graph_config.yaml +113 -0
- args/llm_config.yaml +222 -0
- args/marketplace_config.yaml +260 -0
- args/monitoring_config.yaml +127 -0
- args/mosa_config.yaml +190 -0
- args/observability_tracing_config.yaml +170 -0
- args/owasp_agentic_config.yaml +171 -0
- args/pipeline_gates.yaml +197 -0
- args/project_defaults.yaml +235 -0
- args/prompt_chains.yaml +163 -0
- args/rag_config.yaml +167 -0
- args/research_config.yaml +89 -0
- args/resilience_config.yaml +197 -0
- args/ricoas_config.yaml +191 -0
- args/security_gates.yaml +763 -0
- args/storage_config.yaml +63 -0
- args/writeguard_config.yaml +131 -0
- args/zta_config.yaml +247 -0
- context/__init__.py +6 -0
- context/agent/__init__.py +6 -0
- context/agent/response_schemas/__init__.py +6 -0
- context/agent/response_schemas/debate_position.json +46 -0
- context/agent/response_schemas/fitness_scorecard.json +74 -0
- context/agent/response_schemas/review_decision.json +39 -0
- context/agent/response_schemas/task_decomposition.json +82 -0
- context/agent/response_schemas/veto_decision.json +40 -0
- context/agentic/__init__.py +6 -0
- context/agentic/architecture_patterns.md +269 -0
- context/agentic/capability_registry.yaml +223 -0
- context/agentic/csp_integration.md +30 -0
- context/agentic/csp_mcp_registry.yaml +280 -0
- context/agentic/fitness_rubric.md +56 -0
- context/agentic/governance_baseline.md +205 -0
- context/ci/__init__.py +6 -0
- context/ci/worktree_templates.json +44 -0
- context/cloud/__init__.py +6 -0
- context/cloud/csp_service_registry.json +739 -0
- context/compliance/__init__.py +6 -0
- context/compliance/ai_rmf_crosswalk.yaml +226 -0
- context/compliance/atlas_mitigations.json +293 -0
- context/compliance/atlas_techniques.json +833 -0
- context/compliance/cisa_sbd_requirements.json +477 -0
- context/compliance/cjis_security_policy.json +522 -0
- context/compliance/cmmc_practices.json +2494 -0
- context/compliance/cmmc_report_template.md +142 -0
- context/compliance/cnssi_1253_overlay.json +109 -0
- context/compliance/control_crosswalk.json +1914 -0
- context/compliance/control_families/__init__.py +6 -0
- context/compliance/csp_certifications.json +251 -0
- context/compliance/cssp_report_template.md +193 -0
- context/compliance/cui_templates/__init__.py +6 -0
- context/compliance/cui_templates/banner_block.txt +4 -0
- context/compliance/cui_templates/code_header.txt +8 -0
- context/compliance/cui_templates/document_template.md +35 -0
- context/compliance/data_type_framework_map.json +321 -0
- context/compliance/data_type_registry.json +147 -0
- context/compliance/dod_cssp_8530.json +463 -0
- context/compliance/eu_ai_act_annex_iii.json +108 -0
- context/compliance/export_templates/__init__.py +6 -0
- context/compliance/export_templates/emass_controls.csv.j2 +4 -0
- context/compliance/export_templates/evidence_package.md.j2 +39 -0
- context/compliance/export_templates/executive_summary.md.j2 +55 -0
- context/compliance/export_templates/poam_tracking.csv.j2 +4 -0
- context/compliance/fedramp_20x_ksi_schemas.json +133 -0
- context/compliance/fedramp_high_baseline.json +4370 -0
- context/compliance/fedramp_moderate_baseline.json +2183 -0
- context/compliance/fedramp_report_template.md +181 -0
- context/compliance/fips_200_areas.json +362 -0
- context/compliance/gao_ai_accountability.json +262 -0
- context/compliance/hipaa_security_rule.json +720 -0
- context/compliance/hitrust_csf_v11.json +930 -0
- context/compliance/impact_level_profiles.json +251 -0
- context/compliance/incident_response_template.md +1110 -0
- context/compliance/iso27001_2022_controls.json +750 -0
- context/compliance/iso27001_nist_bridge.json +382 -0
- context/compliance/iso42001_controls.json +254 -0
- context/compliance/ivv_checklist_template.md +80 -0
- context/compliance/ivv_report_template.md +116 -0
- context/compliance/ivv_requirements.json +372 -0
- context/compliance/mosa_crosswalk.json +327 -0
- context/compliance/mosa_framework.json +250 -0
- context/compliance/narrative_templates/AC.md.j2 +101 -0
- context/compliance/narrative_templates/AU.md.j2 +106 -0
- context/compliance/narrative_templates/IA.md.j2 +104 -0
- context/compliance/narrative_templates/SC.md.j2 +102 -0
- context/compliance/narrative_templates/SI.md.j2 +111 -0
- context/compliance/narrative_templates/__init__.py +6 -0
- context/compliance/narrative_templates/default.md.j2 +50 -0
- context/compliance/narrative_templates/executive_summary.j2 +27 -0
- context/compliance/narrative_templates/poam_milestone.j2 +19 -0
- context/compliance/narrative_templates/ssp_section.j2 +11 -0
- context/compliance/nist_800_171_controls.json +1552 -0
- context/compliance/nist_800_207_crosswalk.json +399 -0
- context/compliance/nist_800_207_zta.json +258 -0
- context/compliance/nist_800_53.json +324 -0
- context/compliance/nist_ai_600_1_genai.json +326 -0
- context/compliance/nist_ai_rmf.json +206 -0
- context/compliance/nist_sp_800_60_types.json +1667 -0
- context/compliance/omb_m25_21_high_impact_ai.json +248 -0
- context/compliance/omb_m26_04_unbiased_ai.json +262 -0
- context/compliance/owasp_agentic_asi.json +133 -0
- context/compliance/owasp_agentic_threats.json +285 -0
- context/compliance/owasp_llm_top10.json +274 -0
- context/compliance/pci_dss_v4.json +510 -0
- context/compliance/poam_template.md +117 -0
- context/compliance/safeai_controls.json +512 -0
- context/compliance/sbd_report_template.md +77 -0
- context/compliance/siem_config_templates/__init__.py +6 -0
- context/compliance/siem_config_templates/filebeat.yml +213 -0
- context/compliance/siem_config_templates/log_sources.json +208 -0
- context/compliance/soc2_trust_criteria.json +661 -0
- context/compliance/ssp_template.md +432 -0
- context/compliance/stig_templates/__init__.py +6 -0
- context/compliance/stig_templates/webapp_stig.json +139 -0
- context/compliance/xai_requirements.json +108 -0
- context/dashboard/__init__.py +6 -0
- context/dashboard/nlq_examples.json +50 -0
- context/dashboard/schema_descriptions.json +23 -0
- context/icdev_methodology.md +100 -0
- context/integration/__init__.py +6 -0
- context/integration/approval_workflows.json +32 -0
- context/integration/gitlab_field_mappings.json +33 -0
- context/integration/jira_field_mappings.json +32 -0
- context/integration/reqif_export_schema.json +23 -0
- context/integration/servicenow_field_mappings.json +22 -0
- context/languages/__init__.py +6 -0
- context/languages/framework_patterns.json +205 -0
- context/languages/language_registry.json +279 -0
- context/llm/__init__.py +6 -0
- context/llm/example_provider.py +89 -0
- context/marketplace/assets/writeguard-core.yaml +100 -0
- context/marketplace/assets/writeguard-govcon.yaml +45 -0
- context/marketplace/assets/writeguard-style-guides.yaml +44 -0
- context/mbse/__init__.py +6 -0
- context/mbse/des_report_template.md +162 -0
- context/mbse/des_requirements.json +411 -0
- context/mbse/digital_thread_patterns.json +403 -0
- context/mbse/reqif_schema.json +280 -0
- context/mbse/sysml_element_types.json +432 -0
- context/oscal/NIST_SP-800-53_rev5_catalog.json +254987 -0
- context/oscal/README.md +43 -0
- context/patterns/__init__.py +6 -0
- context/profiles/__init__.py +6 -0
- context/profiles/dod_baseline_v1.yaml +145 -0
- context/profiles/fedramp_baseline_v1.yaml +143 -0
- context/profiles/financial_baseline_v1.yaml +142 -0
- context/profiles/healthcare_baseline_v1.yaml +135 -0
- context/profiles/law_enforcement_v1.yaml +129 -0
- context/profiles/startup_v1.yaml +134 -0
- context/rag/source_mappings.json +42 -0
- context/requirements/__init__.py +6 -0
- context/requirements/ambiguity_patterns.json +97 -0
- context/requirements/boundary_impact_rules.json +123 -0
- context/requirements/default_constitutions.json +67 -0
- context/requirements/document_extraction_rules.json +58 -0
- context/requirements/gap_patterns.json +108 -0
- context/requirements/readiness_rubric.json +78 -0
- context/requirements/red_alternative_patterns.json +210 -0
- context/requirements/safe_templates.json +72 -0
- context/requirements/spec_quality_checklist.json +122 -0
- context/research/regulatory_registry.json +114 -0
- context/research/verticals/cybersecurity.json +127 -0
- context/research/verticals/defense.json +104 -0
- context/research/verticals/fintech.json +125 -0
- context/research/verticals/healthcare.json +118 -0
- context/research/verticals/logistics.json +117 -0
- context/research/verticals/trading.json +145 -0
- context/simulation/__init__.py +6 -0
- context/simulation/architecture_patterns.json +36 -0
- context/simulation/coa_templates.json +38 -0
- context/simulation/cost_models.json +23 -0
- context/simulation/risk_categories.json +46 -0
- context/supply_chain/__init__.py +6 -0
- context/supply_chain/isa_templates.json +129 -0
- context/supply_chain/nist_800_161_controls.json +247 -0
- context/supply_chain/scrm_risk_matrix.json +147 -0
- context/templates/__init__.py +6 -0
- context/templates/ansible/__init__.py +6 -0
- context/templates/ansible/playbooks/__init__.py +6 -0
- context/templates/ansible/roles/__init__.py +6 -0
- context/templates/gitlab_ci/__init__.py +6 -0
- context/templates/grafana/__init__.py +6 -0
- context/templates/kubernetes/__init__.py +6 -0
- context/templates/project/__init__.py +6 -0
- context/templates/project/api/__init__.py +6 -0
- context/templates/project/cli/__init__.py +6 -0
- context/templates/project/data_pipeline/__init__.py +6 -0
- context/templates/project/iac/__init__.py +6 -0
- context/templates/project/javascript_frontend/__init__.py +6 -0
- context/templates/project/javascript_frontend/src/__init__.py +6 -0
- context/templates/project/javascript_frontend/tests/__init__.py +6 -0
- context/templates/project/microservice/__init__.py +6 -0
- context/templates/project/python_backend/__init__.py +6 -0
- context/templates/project/python_backend/src/__init__.py +6 -0
- context/templates/project/python_backend/tests/__init__.py +6 -0
- context/templates/project/python_backend/tests/features/__init__.py +6 -0
- context/templates/project/python_backend/tests/steps/__init__.py +6 -0
- context/templates/terraform/__init__.py +6 -0
- context/templates/terraform/govcloud_base/__init__.py +6 -0
- context/templates/terraform/modules/__init__.py +6 -0
- context/tone/__init__.py +6 -0
- context/writing/grammar_rules/common_errors.json +306 -0
- context/writing/grammar_rules/govcon_vocabulary.json +113 -0
- context/writing/style_guides/academic.yaml +43 -0
- context/writing/style_guides/business.yaml +42 -0
- context/writing/style_guides/government.yaml +59 -0
- context/writing/style_guides/proposal.yaml +58 -0
- context/writing/style_guides/technical.yaml +43 -0
- docs/adr/README.md +66 -0
- docs/adr/connector-forge-decisions.md +318 -0
- docs/adr/core-decisions.md +289 -0
- docs/adr/db-decisions.md +94 -0
- docs/adr/harness-decisions.md +122 -0
- docs/adr/innovation-decisions.md +262 -0
- docs/adr/marketplace-decisions.md +109 -0
- docs/adr/sbd-decisions.md +109 -0
- docs/adr/scale-engine-decisions.md +108 -0
- docs/adr/writeguard-decisions.md +136 -0
- docs/architecture/bounded-contexts.md +1032 -0
- docs/features/phase-65-writeguard.md +139 -0
- docs/features/phase-66-marketplace-commerce.md +79 -0
- docs/features/phase-67-knowledge-ingestion-rag-autodraft.md +97 -0
- docs/features/phase-68-enhanced-autodraft-pipeline.md +109 -0
- docs/features/phase-69-proposalai-marketplace-module.md +131 -0
- docs/features/phase-70-databridge.md +214 -0
- docs/features/phase-71-databridge-messaging.md +102 -0
- docs/implementation-plan-architecture-evolution.md +614 -0
- docs/marketplace/CONTRIBUTING.md +124 -0
- docs/marketplace/module_manifest_schema.yaml +83 -0
- docs/research/ai-architecture-patterns-2024-2026.md +1236 -0
- docs/research/app-builder-platform-analysis.md +582 -0
- docs/research/architecture-patterns-c4-ddd-agentic.md +871 -0
- docs/research/flowable-boat-competitive-analysis.md +426 -0
- docs/research/modern-dev-practices-2024-2026.md +1615 -0
- docs/research/secure-by-design-cloudyrion-adaptation.md +270 -0
- goals/agent_management.md +144 -0
- goals/ai_accountability.md +90 -0
- goals/ai_narratives.md +79 -0
- goals/ai_transparency.md +76 -0
- goals/ato_simulator.md +78 -0
- goals/audit_engine.md +177 -0
- goals/bite_sized_plans.md +225 -0
- goals/boundary_supply_chain.md +206 -0
- goals/brainstorming_gate.md +186 -0
- goals/build_app.md +604 -0
- goals/cato_live_evidence.md +77 -0
- goals/cloudforge.md +106 -0
- goals/code_intelligence.md +197 -0
- goals/compliance_workflow.md +858 -0
- goals/connector_forge.md +133 -0
- goals/databridge.md +128 -0
- goals/deploy_workflow.md +390 -0
- goals/developer_scorecard.md +78 -0
- goals/devsecops_workflow.md +408 -0
- goals/firmware_sbom.md +79 -0
- goals/forge_hub.md +78 -0
- goals/golden_path.md +77 -0
- goals/harness_engineering.md +91 -0
- goals/integration_testing.md +189 -0
- goals/knowledge_graph.md +128 -0
- goals/maintenance_audit.md +196 -0
- goals/manifest.md +50 -0
- goals/monitoring.md +126 -0
- goals/mosa_workflow.md +463 -0
- goals/multi_agent_orchestration.md +68 -0
- goals/observability_traceability_xai.md +154 -0
- goals/owasp_agentic_security.md +395 -0
- goals/pr_intelligence.md +78 -0
- goals/requirements_intake.md +213 -0
- goals/secure_by_design.md +135 -0
- goals/security_scan.md +381 -0
- goals/self_healing.md +120 -0
- goals/simulation_engine.md +111 -0
- goals/subagent_review.md +205 -0
- goals/systematic_debugging.md +257 -0
- goals/tdd_workflow.md +403 -0
- goals/template_exchange.md +77 -0
- goals/thread_heatmap.md +77 -0
- goals/threat_modeler.md +77 -0
- goals/verification_iron_law.md +192 -0
- goals/vsm_dashboard.md +76 -0
- goals/writeguard.md +89 -0
- goals/zero_trust_architecture.md +403 -0
- hardprompts/__init__.py +6 -0
- hardprompts/agent/__init__.py +6 -0
- hardprompts/agent/agentic_architect.md +100 -0
- hardprompts/agent/debate_prompt.md +32 -0
- hardprompts/agent/fitness_evaluation.md +48 -0
- hardprompts/agent/governance_review.md +214 -0
- hardprompts/agent/reviewer_prompt.md +34 -0
- hardprompts/agent/skill_design.md +172 -0
- hardprompts/agent/task_decomposition.md +275 -0
- hardprompts/agent/veto_check_prompt.md +33 -0
- hardprompts/architect/__init__.py +6 -0
- hardprompts/architect/api_design.md +283 -0
- hardprompts/architect/data_model.md +277 -0
- hardprompts/architect/system_design.md +180 -0
- hardprompts/builder/__init__.py +6 -0
- hardprompts/builder/code_generation.md +59 -0
- hardprompts/builder/refactor.md +58 -0
- hardprompts/builder/scaffold_project.md +69 -0
- hardprompts/builder/test_generation.md +87 -0
- hardprompts/ci/__init__.py +6 -0
- hardprompts/ci/worktree_setup.md +35 -0
- hardprompts/compliance/__init__.py +6 -0
- hardprompts/compliance/cmmc_assessment.md +63 -0
- hardprompts/compliance/cssp_assessment.md +75 -0
- hardprompts/compliance/cui_marking.md +86 -0
- hardprompts/compliance/fedramp_assessment.md +55 -0
- hardprompts/compliance/ivv_assessment.md +96 -0
- hardprompts/compliance/poam_generation.md +57 -0
- hardprompts/compliance/sbd_assessment.md +101 -0
- hardprompts/compliance/security_categorization.md +74 -0
- hardprompts/compliance/ssp_generation.md +56 -0
- hardprompts/compliance/stig_evaluation.md +63 -0
- hardprompts/dashboard/__init__.py +6 -0
- hardprompts/dashboard/nlq_system_prompt.md +26 -0
- hardprompts/infra/__init__.py +6 -0
- hardprompts/infra/k8s_manifests.md +118 -0
- hardprompts/infra/pipeline_generation.md +160 -0
- hardprompts/infra/terraform_generation.md +92 -0
- hardprompts/integration/__init__.py +6 -0
- hardprompts/integration/approval_review.md +17 -0
- hardprompts/integration/jira_mapping.md +25 -0
- hardprompts/integration/servicenow_mapping.md +14 -0
- hardprompts/knowledge/__init__.py +6 -0
- hardprompts/knowledge/pattern_detection.md +73 -0
- hardprompts/knowledge/recommendation_engine.md +90 -0
- hardprompts/knowledge/root_cause_analysis.md +91 -0
- hardprompts/maintenance/__init__.py +6 -0
- hardprompts/maintenance/maintenance_assessment.md +82 -0
- hardprompts/mbse/__init__.py +6 -0
- hardprompts/mbse/digital_thread.md +67 -0
- hardprompts/mbse/model_import.md +62 -0
- hardprompts/mbse/model_to_code.md +65 -0
- hardprompts/modernization/__init__.py +6 -0
- hardprompts/modernization/legacy_analysis.md +93 -0
- hardprompts/modernization/migration_planning.md +150 -0
- hardprompts/modernization/seven_r_assessment.md +107 -0
- hardprompts/proposal_draft.md +53 -0
- hardprompts/rag_citation.md +12 -0
- hardprompts/rag_rerank.md +31 -0
- hardprompts/requirements/__init__.py +6 -0
- hardprompts/requirements/bdd_generation.md +35 -0
- hardprompts/requirements/clarification_prioritization.md +29 -0
- hardprompts/requirements/decomposition.md +60 -0
- hardprompts/requirements/document_extraction.md +45 -0
- hardprompts/requirements/gap_detection.md +70 -0
- hardprompts/requirements/intake_conversation.md +101 -0
- hardprompts/requirements/readiness_assessment.md +39 -0
- hardprompts/requirements/spec_quality.md +33 -0
- hardprompts/requirements/traceability_analysis.md +23 -0
- hardprompts/security/__init__.py +6 -0
- hardprompts/security/endpoint_security.md +78 -0
- hardprompts/security/threat_model.md +70 -0
- hardprompts/security/vulnerability_assessment.md +81 -0
- hardprompts/simulation/__init__.py +6 -0
- hardprompts/simulation/architecture_impact.md +27 -0
- hardprompts/simulation/coa_alternative.md +27 -0
- hardprompts/simulation/coa_generation.md +25 -0
- hardprompts/simulation/compliance_impact.md +28 -0
- hardprompts/simulation/cost_estimation.md +33 -0
- hardprompts/simulation/risk_assessment.md +28 -0
- hardprompts/translation/code_translation.md +68 -0
- hardprompts/translation/dependency_suggestion.md +44 -0
- hardprompts/translation/test_translation.md +64 -0
- hardprompts/translation/translation_repair.md +59 -0
- icdev-0.0.3.dist-info/METADATA +909 -0
- icdev-0.0.3.dist-info/RECORD +1214 -0
- icdev-0.0.3.dist-info/WHEEL +5 -0
- icdev-0.0.3.dist-info/entry_points.txt +9 -0
- icdev-0.0.3.dist-info/licenses/LICENSE +201 -0
- icdev-0.0.3.dist-info/licenses/NOTICE +11 -0
- icdev-0.0.3.dist-info/top_level.txt +7 -0
- memory/MEMORY.md +52 -0
- memory/logs/2026-02-14.md +17 -0
- memory/logs/2026-03-03.md +2 -0
- memory/logs/__init__.py +1 -0
- tools/a2a/icdev_callback_client.py +210 -0
- tools/agent/cards/architect_card.json +29 -0
- tools/agent/cards/builder_card.json +34 -0
- tools/agent/cards/compliance_card.json +29 -0
- tools/agent/cards/connector_forge_card.json +49 -0
- tools/agent/cards/devsecops_zta_card.json +24 -0
- tools/agent/cards/knowledge_card.json +29 -0
- tools/agent/cards/monitor_card.json +29 -0
- tools/agent/cards/orchestrator_card.json +29 -0
- tools/agent/cards/requirements_analyst_card.json +24 -0
- tools/agent/cards/security_card.json +29 -0
- tools/agent/cards/simulation_card.json +24 -0
- tools/agent/cards/supply_chain_card.json +24 -0
- tools/analysis/__init__.py +1 -0
- tools/analysis/code_analyzer.py +770 -0
- tools/analysis/runtime_feedback.py +379 -0
- tools/analytics/__init__.py +2 -0
- tools/analytics/scorecard.py +538 -0
- tools/analytics/vsm_engine.py +612 -0
- tools/architecture/__init__.py +2 -0
- tools/architecture/adr_extractor.py +393 -0
- tools/audit/__init__.py +1 -0
- tools/audit/audit_logger.py +199 -0
- tools/audit/audit_query.py +153 -0
- tools/audit/decision_recorder.py +73 -0
- tools/audit_engine/__init__.py +12 -0
- tools/audit_engine/ai_advisor.py +906 -0
- tools/audit_engine/cli.py +286 -0
- tools/audit_engine/comparator.py +305 -0
- tools/audit_engine/eject_scaffolder.py +399 -0
- tools/audit_engine/engine.py +614 -0
- tools/audit_engine/git_fetcher.py +341 -0
- tools/audit_engine/regime_loader.py +200 -0
- tools/audit_engine/regime_updater.py +325 -0
- tools/audit_engine/report_card.py +289 -0
- tools/audit_engine/scanner.py +684 -0
- tools/audit_engine/self_heal.py +1042 -0
- tools/ci/__init__.py +2 -0
- tools/ci/connectors/__init__.py +2 -0
- tools/ci/connectors/base_connector.py +80 -0
- tools/ci/connectors/connector_registry.py +188 -0
- tools/ci/connectors/mattermost_connector.py +159 -0
- tools/ci/connectors/slack_connector.py +197 -0
- tools/ci/core/__init__.py +2 -0
- tools/ci/core/air_gap_detector.py +115 -0
- tools/ci/core/comment_handler.py +192 -0
- tools/ci/core/conversation_manager.py +480 -0
- tools/ci/core/event_envelope.py +500 -0
- tools/ci/core/event_router.py +444 -0
- tools/ci/core/failure_parser.py +397 -0
- tools/ci/core/recovery_engine.py +527 -0
- tools/ci/gate_enforcer.py +361 -0
- tools/ci/modules/__init__.py +2 -0
- tools/ci/modules/agent.py +271 -0
- tools/ci/modules/git_ops.py +175 -0
- tools/ci/modules/state.py +117 -0
- tools/ci/modules/vcs.py +303 -0
- tools/ci/modules/workflow_ops.py +295 -0
- tools/ci/modules/worktree.py +337 -0
- tools/ci/pipeline_config_generator.py +558 -0
- tools/ci/pr_intelligence.py +485 -0
- tools/ci/triggers/__init__.py +2 -0
- tools/ci/triggers/gitlab_task_monitor.py +327 -0
- tools/ci/triggers/poll_trigger.py +237 -0
- tools/ci/triggers/webhook_server.py +356 -0
- tools/ci/workflows/__init__.py +2 -0
- tools/ci/workflows/icdev_build.py +140 -0
- tools/ci/workflows/icdev_comply.py +284 -0
- tools/ci/workflows/icdev_document.py +152 -0
- tools/ci/workflows/icdev_e2e.py +188 -0
- tools/ci/workflows/icdev_patch.py +186 -0
- tools/ci/workflows/icdev_plan.py +202 -0
- tools/ci/workflows/icdev_plan_build.py +41 -0
- tools/ci/workflows/icdev_plan_build_test.py +46 -0
- tools/ci/workflows/icdev_plan_build_test_review.py +47 -0
- tools/ci/workflows/icdev_review.py +126 -0
- tools/ci/workflows/icdev_sdlc.py +261 -0
- tools/ci/workflows/icdev_test.py +240 -0
- tools/cli/__init__.py +1 -0
- tools/cli/output_formatter.py +756 -0
- tools/cloudforge/__init__.py +12 -0
- tools/cloudforge/airgap/__init__.py +2 -0
- tools/cloudforge/airgap/il_classifier.py +70 -0
- tools/cloudforge/airgap/offline_validator.py +42 -0
- tools/cloudforge/airgap/shift_emulator.py +155 -0
- tools/cloudforge/airgap/sneakernet.py +91 -0
- tools/cloudforge/cd_hub/__init__.py +2 -0
- tools/cloudforge/cd_hub/canary_deployer.py +88 -0
- tools/cloudforge/cd_hub/gitops_renderer.py +123 -0
- tools/cloudforge/cd_hub/hub_controller.py +143 -0
- tools/cloudforge/cd_hub/pipeline_bridge.py +30 -0
- tools/cloudforge/cd_hub/rollback_engine.py +29 -0
- tools/cloudforge/cd_hub/spoke_agent.py +51 -0
- tools/cloudforge/compliance/__init__.py +2 -0
- tools/cloudforge/compliance/ato_accelerator.py +272 -0
- tools/cloudforge/compliance/control_inheritor.py +127 -0
- tools/cloudforge/compliance/evidence_generator.py +129 -0
- tools/cloudforge/compliance/poam_bridge.py +41 -0
- tools/cloudforge/compliance/ssp_bridge.py +52 -0
- tools/cloudforge/compliance/stig_bridge.py +41 -0
- tools/cloudforge/container_forge/__init__.py +2 -0
- tools/cloudforge/container_forge/bigbang_renderer.py +85 -0
- tools/cloudforge/container_forge/hardener.py +169 -0
- tools/cloudforge/container_forge/image_scanner_bridge.py +33 -0
- tools/cloudforge/container_forge/runtime_policy.py +87 -0
- tools/cloudforge/container_forge/sbom_bridge.py +42 -0
- tools/cloudforge/finops/__init__.py +2 -0
- tools/cloudforge/finops/anomaly_detector.py +78 -0
- tools/cloudforge/finops/budget_tracker.py +96 -0
- tools/cloudforge/finops/chargeback.py +69 -0
- tools/cloudforge/finops/cost_collector.py +141 -0
- tools/cloudforge/finops/optimizer.py +55 -0
- tools/cloudforge/hybrid/__init__.py +2 -0
- tools/cloudforge/hybrid/connection_manager.py +141 -0
- tools/cloudforge/hybrid/dns_federator.py +56 -0
- tools/cloudforge/hybrid/health_monitor.py +108 -0
- tools/cloudforge/hybrid/identity_federator.py +53 -0
- tools/cloudforge/hybrid/network_bridge.py +68 -0
- tools/cloudforge/hybrid/topology_manager.py +147 -0
- tools/cloudforge/hybrid/workload_abstractor.py +92 -0
- tools/cloudforge/iac/__init__.py +2 -0
- tools/cloudforge/iac/drift_detector.py +154 -0
- tools/cloudforge/iac/module_library.py +265 -0
- tools/cloudforge/iac/opentofu_adapter.py +89 -0
- tools/cloudforge/iac/pulumi_renderer.py +292 -0
- tools/cloudforge/iac/state_backend.py +146 -0
- tools/cloudforge/iac/terraform_renderer.py +626 -0
- tools/cloudforge/landing_zone/__init__.py +2 -0
- tools/cloudforge/landing_zone/blueprint_loader.py +98 -0
- tools/cloudforge/landing_zone/blueprint_validator.py +113 -0
- tools/cloudforge/landing_zone/zone_provisioner.py +306 -0
- tools/cloudforge/landing_zone/zone_state.py +143 -0
- tools/cloudforge/mbse_thread/__init__.py +2 -0
- tools/cloudforge/mbse_thread/ato_thread_weaver.py +111 -0
- tools/cloudforge/mbse_thread/control_tracer.py +68 -0
- tools/cloudforge/mbse_thread/system_boundary.py +83 -0
- tools/cloudforge/metastore/__init__.py +2 -0
- tools/cloudforge/metastore/dependency_graph.py +202 -0
- tools/cloudforge/metastore/discovery.py +192 -0
- tools/cloudforge/metastore/registry.py +185 -0
- tools/cloudforge/metastore/rto_tracker.py +92 -0
- tools/cloudforge/metastore/runbook_linker.py +82 -0
- tools/cloudforge/migration/__init__.py +2 -0
- tools/cloudforge/migration/assessor.py +187 -0
- tools/cloudforge/migration/cutover_orchestrator.py +117 -0
- tools/cloudforge/migration/databridge_bridge.py +92 -0
- tools/cloudforge/migration/planner.py +98 -0
- tools/cloudforge/migration/risk_scorer.py +97 -0
- tools/cloudforge/migration/validation_runner.py +45 -0
- tools/cloudforge/migration/workload_inventory.py +107 -0
- tools/cloudforge/provider.py +319 -0
- tools/cloudforge/providers/__init__.py +2 -0
- tools/cloudforge/providers/aws_commercial.py +92 -0
- tools/cloudforge/providers/aws_govcloud.py +229 -0
- tools/cloudforge/providers/aws_secret.py +83 -0
- tools/cloudforge/providers/azure_commercial.py +80 -0
- tools/cloudforge/providers/azure_gov.py +91 -0
- tools/cloudforge/providers/azure_secret.py +71 -0
- tools/cloudforge/providers/gcp.py +102 -0
- tools/cloudforge/providers/oci.py +102 -0
- tools/cloudforge/registry.py +140 -0
- tools/cloudforge/runbooks/__init__.py +2 -0
- tools/cloudforge/runbooks/ai_generator.py +119 -0
- tools/cloudforge/runbooks/dag_validator.py +219 -0
- tools/cloudforge/runbooks/engine.py +470 -0
- tools/cloudforge/runbooks/models.py +99 -0
- tools/cloudforge/runbooks/snippet_library.py +158 -0
- tools/cloudforge/runbooks/template_loader.py +122 -0
- tools/cloudforge/runbooks/visualization.py +108 -0
- tools/cloudforge/siem/__init__.py +2 -0
- tools/cloudforge/siem/alert_rules.py +86 -0
- tools/cloudforge/siem/correlation_engine.py +61 -0
- tools/cloudforge/siem/log_aggregator.py +113 -0
- tools/cloudforge/siem/siem_dashboard_data.py +28 -0
- tools/cloudforge/supply_chain/__init__.py +2 -0
- tools/cloudforge/supply_chain/bridge.py +33 -0
- tools/cloudforge/supply_chain/iac_dependency_scanner.py +36 -0
- tools/cloudforge/supply_chain/provider_trust_scorer.py +54 -0
- tools/compat/__init__.py +21 -0
- tools/compat/cli_harmonizer.py +251 -0
- tools/compat/datetime_utils.py +18 -0
- tools/compat/db_utils.py +190 -0
- tools/compat/platform_utils.py +123 -0
- tools/compliance/__init__.py +1 -0
- tools/compliance/accountability_manager.py +391 -0
- tools/compliance/ai_accountability_audit.py +287 -0
- tools/compliance/ai_impact_assessor.py +267 -0
- tools/compliance/ai_incident_response.py +295 -0
- tools/compliance/ai_inventory_manager.py +233 -0
- tools/compliance/ai_reassessment_scheduler.py +250 -0
- tools/compliance/ai_transparency_audit.py +247 -0
- tools/compliance/atlas_assessor.py +276 -0
- tools/compliance/atlas_report_generator.py +1199 -0
- tools/compliance/base_assessor.py +591 -0
- tools/compliance/cato_live_engine.py +607 -0
- tools/compliance/cato_monitor.py +1371 -0
- tools/compliance/cato_scheduler.py +698 -0
- tools/compliance/cjis_assessor.py +76 -0
- tools/compliance/classification_manager.py +1340 -0
- tools/compliance/cmmc_assessor.py +1478 -0
- tools/compliance/cmmc_report_generator.py +1087 -0
- tools/compliance/compliance_detector.py +452 -0
- tools/compliance/compliance_exporter.py +418 -0
- tools/compliance/compliance_status.py +810 -0
- tools/compliance/control_mapper.py +488 -0
- tools/compliance/crosswalk_engine.py +1208 -0
- tools/compliance/cssp_assessor.py +1032 -0
- tools/compliance/cssp_evidence_collector.py +716 -0
- tools/compliance/cssp_report_generator.py +1103 -0
- tools/compliance/cui_marker.py +387 -0
- tools/compliance/diagram_validator.py +599 -0
- tools/compliance/emass/__init__.py +2 -0
- tools/compliance/emass/emass_client.py +822 -0
- tools/compliance/emass/emass_export.py +758 -0
- tools/compliance/emass/emass_sync.py +807 -0
- tools/compliance/eu_ai_act_classifier.py +193 -0
- tools/compliance/evidence_collector.py +459 -0
- tools/compliance/fairness_assessor.py +310 -0
- tools/compliance/fedramp_20x_ksi_emitter.py +692 -0
- tools/compliance/fedramp_assessor.py +1795 -0
- tools/compliance/fedramp_authorization_packager.py +137 -0
- tools/compliance/fedramp_ksi_generator.py +349 -0
- tools/compliance/fedramp_report_generator.py +1115 -0
- tools/compliance/fips199_categorizer.py +869 -0
- tools/compliance/fips200_validator.py +304 -0
- tools/compliance/firmware_sbom.py +646 -0
- tools/compliance/gao_ai_assessor.py +228 -0
- tools/compliance/gao_evidence_builder.py +302 -0
- tools/compliance/hipaa_assessor.py +78 -0
- tools/compliance/hitrust_assessor.py +49 -0
- tools/compliance/incident_response_plan.py +705 -0
- tools/compliance/inheritance_engine.py +693 -0
- tools/compliance/iso27001_assessor.py +92 -0
- tools/compliance/iso42001_assessor.py +114 -0
- tools/compliance/ivv_assessor.py +2314 -0
- tools/compliance/ivv_report_generator.py +1649 -0
- tools/compliance/model_card_generator.py +291 -0
- tools/compliance/mosa_assessor.py +117 -0
- tools/compliance/multi_regime_assessor.py +441 -0
- tools/compliance/narrative_generator.py +1012 -0
- tools/compliance/narrative_quality_gate.py +701 -0
- tools/compliance/narrative_workflow.py +814 -0
- tools/compliance/nist_800_207_assessor.py +191 -0
- tools/compliance/nist_ai_600_1_assessor.py +185 -0
- tools/compliance/nist_ai_rmf_assessor.py +110 -0
- tools/compliance/nist_lookup.py +244 -0
- tools/compliance/omb_m25_21_assessor.py +225 -0
- tools/compliance/omb_m26_04_assessor.py +185 -0
- tools/compliance/oscal_catalog_adapter.py +395 -0
- tools/compliance/oscal_generator.py +2157 -0
- tools/compliance/oscal_tools.py +1182 -0
- tools/compliance/oscal_validator.py +692 -0
- tools/compliance/owasp_agentic_assessor.py +227 -0
- tools/compliance/owasp_asi_assessor.py +197 -0
- tools/compliance/owasp_llm_assessor.py +245 -0
- tools/compliance/pci_dss_assessor.py +80 -0
- tools/compliance/pi_compliance_tracker.py +1447 -0
- tools/compliance/poam_generator.py +388 -0
- tools/compliance/resolve_marking.py +272 -0
- tools/compliance/sbd_assessor.py +2070 -0
- tools/compliance/sbd_report_generator.py +1223 -0
- tools/compliance/sbom_generator.py +993 -0
- tools/compliance/siem_config_generator.py +661 -0
- tools/compliance/slsa_attestation_generator.py +479 -0
- tools/compliance/soc2_assessor.py +77 -0
- tools/compliance/ssp_generator.py +556 -0
- tools/compliance/stig_checker.py +712 -0
- tools/compliance/swft_evidence_bundler.py +326 -0
- tools/compliance/system_card_generator.py +303 -0
- tools/compliance/template_exchange.py +513 -0
- tools/compliance/traceability_matrix.py +1268 -0
- tools/compliance/universal_classification_manager.py +1159 -0
- tools/compliance/xacta/__init__.py +2 -0
- tools/compliance/xacta/xacta_client.py +438 -0
- tools/compliance/xacta/xacta_export.py +546 -0
- tools/compliance/xacta/xacta_sync.py +322 -0
- tools/compliance/xai_assessor.py +231 -0
- tools/core/__init__.py +2 -0
- tools/core/circuit_breaker.py +353 -0
- tools/core/compliance_sidecar.py +344 -0
- tools/core/container.py +110 -0
- tools/core/errors.py +256 -0
- tools/core/feature_flags.py +311 -0
- tools/core/task_dlq.py +350 -0
- tools/dashboard/__init__.py +2 -0
- tools/dashboard/app.py +6288 -0
- tools/dashboard/templates/agent_evolution.html +287 -0
- tools/dashboard/templates/agents/list.html +71 -0
- tools/dashboard/templates/agents.html +132 -0
- tools/dashboard/templates/architecture.html +289 -0
- tools/dashboard/templates/ato_simulator.html +170 -0
- tools/dashboard/templates/audit_engine.html +844 -0
- tools/dashboard/templates/base.html +236 -0
- tools/dashboard/templates/cato_live.html +116 -0
- tools/dashboard/templates/cloudforge.html +195 -0
- tools/dashboard/templates/cloudforge_finops.html +111 -0
- tools/dashboard/templates/cloudforge_hybrid.html +122 -0
- tools/dashboard/templates/cloudforge_metastore.html +234 -0
- tools/dashboard/templates/cloudforge_migration.html +87 -0
- tools/dashboard/templates/cloudforge_runbooks.html +201 -0
- tools/dashboard/templates/cloudforge_siem.html +94 -0
- tools/dashboard/templates/compliance_accel.html +292 -0
- tools/dashboard/templates/crashes.html +122 -0
- tools/dashboard/templates/databridge.html +305 -0
- tools/dashboard/templates/databridge_analytics.html +195 -0
- tools/dashboard/templates/databridge_mapping.html +345 -0
- tools/dashboard/templates/databridge_messaging.html +321 -0
- tools/dashboard/templates/decisions.html +258 -0
- tools/dashboard/templates/devices.html +151 -0
- tools/dashboard/templates/devsecops_maturity.html +278 -0
- tools/dashboard/templates/edge_ai.html +128 -0
- tools/dashboard/templates/firmware.html +120 -0
- tools/dashboard/templates/firmware_sbom.html +193 -0
- tools/dashboard/templates/forge_hub.html +196 -0
- tools/dashboard/templates/forge_studio.html +379 -0
- tools/dashboard/templates/forge_studio_analytics.html +360 -0
- tools/dashboard/templates/forge_studio_builder.html +1637 -0
- tools/dashboard/templates/forge_studio_compliance.html +310 -0
- tools/dashboard/templates/forge_studio_deploy.html +573 -0
- tools/dashboard/templates/forge_studio_enterprise.html +888 -0
- tools/dashboard/templates/forge_studio_marketplace.html +502 -0
- tools/dashboard/templates/forge_studio_workflow.html +696 -0
- tools/dashboard/templates/golden_path.html +175 -0
- tools/dashboard/templates/govcon.html +280 -0
- tools/dashboard/templates/harness.html +148 -0
- tools/dashboard/templates/index.html +207 -0
- tools/dashboard/templates/intelligence.html +336 -0
- tools/dashboard/templates/knowledge/index.html +190 -0
- tools/dashboard/templates/knowledge_graph.html +739 -0
- tools/dashboard/templates/login.html +51 -0
- tools/dashboard/templates/marketplace.html +336 -0
- tools/dashboard/templates/marketplace_admin.html +247 -0
- tools/dashboard/templates/missions.html +403 -0
- tools/dashboard/templates/narratives.html +154 -0
- tools/dashboard/templates/pr_intelligence.html +151 -0
- tools/dashboard/templates/proposals/detail.html +300 -0
- tools/dashboard/templates/proposals/list.html +52 -0
- tools/dashboard/templates/proposals/sam_detail.html +132 -0
- tools/dashboard/templates/proposals/section_detail.html +375 -0
- tools/dashboard/templates/research.html +222 -0
- tools/dashboard/templates/resilience.html +300 -0
- tools/dashboard/templates/scorecard.html +162 -0
- tools/dashboard/templates/simulator.html +131 -0
- tools/dashboard/templates/template_exchange.html +147 -0
- tools/dashboard/templates/thread_heatmap.html +151 -0
- tools/dashboard/templates/threat_model.html +195 -0
- tools/dashboard/templates/vsm.html +141 -0
- tools/dashboard/templates/writeguard.html +277 -0
- tools/databridge/__init__.py +5 -0
- tools/databridge/agent/__init__.py +2 -0
- tools/databridge/agent/daemon.py +227 -0
- tools/databridge/agent/tunnel.py +101 -0
- tools/databridge/agent/ws_relay.py +91 -0
- tools/databridge/analytics.py +167 -0
- tools/databridge/arrow_pipeline.py +327 -0
- tools/databridge/connection_manager.py +424 -0
- tools/databridge/connector.py +331 -0
- tools/databridge/connectors/__init__.py +2 -0
- tools/databridge/connectors/argocd_connector.py +160 -0
- tools/databridge/connectors/avro_connector.py +203 -0
- tools/databridge/connectors/azure_blob.py +63 -0
- tools/databridge/connectors/cdc_connector.py +205 -0
- tools/databridge/connectors/csv_connector.py +172 -0
- tools/databridge/connectors/datadog_connector.py +153 -0
- tools/databridge/connectors/discord_messaging.py +215 -0
- tools/databridge/connectors/dynamics365.py +151 -0
- tools/databridge/connectors/elasticsearch_connector.py +145 -0
- tools/databridge/connectors/email_base.py +114 -0
- tools/databridge/connectors/excel_connector.py +175 -0
- tools/databridge/connectors/fsspec_base.py +300 -0
- tools/databridge/connectors/gcs.py +53 -0
- tools/databridge/connectors/github_connector.py +138 -0
- tools/databridge/connectors/gitlab_connector.py +132 -0
- tools/databridge/connectors/gmail_connector.py +182 -0
- tools/databridge/connectors/hdfs.py +57 -0
- tools/databridge/connectors/health_base.py +401 -0
- tools/databridge/connectors/hubspot.py +124 -0
- tools/databridge/connectors/imap_connector.py +171 -0
- tools/databridge/connectors/jenkins_connector.py +138 -0
- tools/databridge/connectors/jira_connector.py +86 -0
- tools/databridge/connectors/json_connector.py +184 -0
- tools/databridge/connectors/kafka_connector.py +246 -0
- tools/databridge/connectors/kinesis_connector.py +238 -0
- tools/databridge/connectors/local_fs.py +30 -0
- tools/databridge/connectors/matrix.py +197 -0
- tools/databridge/connectors/mattermost_messaging.py +184 -0
- tools/databridge/connectors/messaging_base.py +172 -0
- tools/databridge/connectors/mssql.py +63 -0
- tools/databridge/connectors/mysql.py +57 -0
- tools/databridge/connectors/netsuite.py +170 -0
- tools/databridge/connectors/o365_mail.py +196 -0
- tools/databridge/connectors/oracle.py +65 -0
- tools/databridge/connectors/pagerduty_connector.py +162 -0
- tools/databridge/connectors/parquet_connector.py +131 -0
- tools/databridge/connectors/postgresql.py +58 -0
- tools/databridge/connectors/s3.py +65 -0
- tools/databridge/connectors/saas_base.py +198 -0
- tools/databridge/connectors/salesforce.py +126 -0
- tools/databridge/connectors/sap.py +89 -0
- tools/databridge/connectors/servicenow.py +60 -0
- tools/databridge/connectors/signal_messaging.py +150 -0
- tools/databridge/connectors/slack_messaging.py +203 -0
- tools/databridge/connectors/smtp_connector.py +126 -0
- tools/databridge/connectors/soap_base.py +258 -0
- tools/databridge/connectors/splunk_connector.py +171 -0
- tools/databridge/connectors/sql_base.py +310 -0
- tools/databridge/connectors/sqlite_connector.py +76 -0
- tools/databridge/connectors/teams.py +148 -0
- tools/databridge/connectors/telegram.py +192 -0
- tools/databridge/connectors/whatsapp.py +137 -0
- tools/databridge/data_profiler.py +99 -0
- tools/databridge/forge/__init__.py +6 -0
- tools/databridge/forge/base_selector.py +150 -0
- tools/databridge/forge/code_generator.py +206 -0
- tools/databridge/forge/community_hub.py +539 -0
- tools/databridge/forge/forge_agent.py +306 -0
- tools/databridge/forge/import_handler.py +133 -0
- tools/databridge/forge/integration_tester.py +127 -0
- tools/databridge/forge/marketplace_publisher.py +164 -0
- tools/databridge/forge/promoter.py +159 -0
- tools/databridge/forge/sandbox_manager.py +257 -0
- tools/databridge/forge/spec_parser.py +358 -0
- tools/databridge/forge/static_validator.py +363 -0
- tools/databridge/forge/templates/__init__.py +591 -0
- tools/databridge/format_converter.py +188 -0
- tools/databridge/mapping_engine.py +348 -0
- tools/databridge/messaging/__init__.py +5 -0
- tools/databridge/messaging/agent_bridge.py +254 -0
- tools/databridge/messaging/message_envelope.py +111 -0
- tools/databridge/messaging/message_logger.py +204 -0
- tools/databridge/messaging/messaging_daemon.py +326 -0
- tools/databridge/messaging/oauth2_manager.py +411 -0
- tools/databridge/pii_detector.py +221 -0
- tools/databridge/registry.py +352 -0
- tools/databridge/relay_server.py +105 -0
- tools/databridge/scale/__init__.py +16 -0
- tools/databridge/scale/backpressure.py +134 -0
- tools/databridge/scale/chunked_pipeline.py +169 -0
- tools/databridge/scale/connection_pool.py +293 -0
- tools/databridge/scale/engine.py +492 -0
- tools/databridge/scale/worker_pool.py +140 -0
- tools/databridge/scale/write_batcher.py +250 -0
- tools/databridge/schema_engine.py +324 -0
- tools/databridge/stream_manager.py +225 -0
- tools/databridge/sync_engine.py +411 -0
- tools/databridge/transforms.py +302 -0
- tools/db/__init__.py +1 -0
- tools/db/backup.py +312 -0
- tools/db/backup_manager.py +832 -0
- tools/db/init_icdev_db.py +7753 -0
- tools/db/init_sparkpilot_db.py +431 -0
- tools/db/migrate.py +177 -0
- tools/db/migrate_innovation_audit.py +165 -0
- tools/db/migration_runner.py +548 -0
- tools/db/migrations/001_baseline/meta.json +9 -0
- tools/db/migrations/001_baseline/up.py +67 -0
- tools/db/migrations/002_memory_enhancements/down.sql +8 -0
- tools/db/migrations/002_memory_enhancements/meta.json +9 -0
- tools/db/migrations/002_memory_enhancements/up.py +119 -0
- tools/db/migrations/003_dev_profiles/meta.json +8 -0
- tools/db/migrations/003_dev_profiles/up.py +93 -0
- tools/db/migrations/004_innovation_engine/down.py +19 -0
- tools/db/migrations/004_innovation_engine/up.py +227 -0
- tools/db/migrations/005_phase_37_ai_security/down.py +19 -0
- tools/db/migrations/005_phase_37_ai_security/up.py +257 -0
- tools/db/migrations/006_phase_36_evolution/down.py +21 -0
- tools/db/migrations/006_phase_36_evolution/up.py +323 -0
- tools/db/migrations/007_phase_38_cloud/down.py +14 -0
- tools/db/migrations/007_phase_38_cloud/up.py +110 -0
- tools/db/migrations/008_phase36_37_integration/up.py +55 -0
- tools/db/migrations/__init__.py +2 -0
- tools/db/pg_migrate.py +642 -0
- tools/db/storage.py +1080 -0
- tools/decisions/__init__.py +2 -0
- tools/decisions/dmn_engine.py +695 -0
- tools/devsecops/__init__.py +2 -0
- tools/devsecops/attestation_manager.py +449 -0
- tools/devsecops/network_segmentation_generator.py +604 -0
- tools/devsecops/pdp_config_generator.py +1246 -0
- tools/devsecops/pipeline_security_generator.py +475 -0
- tools/devsecops/policy_generator.py +644 -0
- tools/devsecops/profile_manager.py +374 -0
- tools/devsecops/service_mesh_generator.py +1063 -0
- tools/devsecops/zta_maturity_scorer.py +355 -0
- tools/devsecops/zta_terraform_generator.py +1301 -0
- tools/edge_ai/__init__.py +2 -0
- tools/edge_ai/model_manager.py +200 -0
- tools/embedded/__init__.py +2 -0
- tools/embedded/cmake_generator.py +318 -0
- tools/embedded/crash_analyzer.py +191 -0
- tools/embedded/nl_to_firmware.py +277 -0
- tools/events/__init__.py +1 -0
- tools/events/event_bus.py +199 -0
- tools/finetune/pair_generator.py +832 -0
- tools/fleet/__init__.py +2 -0
- tools/fleet/device_registry.py +148 -0
- tools/fleet/ota_manager.py +153 -0
- tools/forge_studio/__init__.py +13 -0
- tools/forge_studio/analytics/__init__.py +0 -0
- tools/forge_studio/analytics/process_miner.py +383 -0
- tools/forge_studio/audit.py +183 -0
- tools/forge_studio/blueprint/__init__.py +2 -0
- tools/forge_studio/blueprint/build_tracker.py +317 -0
- tools/forge_studio/blueprint/export_engine.py +441 -0
- tools/forge_studio/blueprint/parent_client.py +335 -0
- tools/forge_studio/catalog/__init__.py +2 -0
- tools/forge_studio/catalog/component_registry.py +176 -0
- tools/forge_studio/catalog/schema_validator.py +193 -0
- tools/forge_studio/compliance/__init__.py +1 -0
- tools/forge_studio/compliance/compliance_wiring.py +554 -0
- tools/forge_studio/deploy/__init__.py +1 -0
- tools/forge_studio/deploy/airgap_packager.py +466 -0
- tools/forge_studio/deploy/deploy_engine.py +1792 -0
- tools/forge_studio/deploy/env_manager.py +431 -0
- tools/forge_studio/eject/__init__.py +2 -0
- tools/forge_studio/eject/docker_compose_generator.py +237 -0
- tools/forge_studio/eject/eject_engine.py +230 -0
- tools/forge_studio/eject/expo_scaffolder.py +303 -0
- tools/forge_studio/eject/nextjs_scaffolder.py +338 -0
- tools/forge_studio/enterprise/__init__.py +0 -0
- tools/forge_studio/enterprise/custom_frameworks.py +826 -0
- tools/forge_studio/enterprise/hardening_engine.py +1530 -0
- tools/forge_studio/enterprise/sso_manager.py +718 -0
- tools/forge_studio/enterprise/whitelabel_engine.py +887 -0
- tools/forge_studio/formula/__init__.py +0 -0
- tools/forge_studio/formula/expression_engine.py +562 -0
- tools/forge_studio/formula/formula_registry.py +265 -0
- tools/forge_studio/generator/__init__.py +2 -0
- tools/forge_studio/generator/app_generator.py +584 -0
- tools/forge_studio/generator/complexity_detector.py +368 -0
- tools/forge_studio/generator/prompt_templates.py +104 -0
- tools/forge_studio/generator/spec_builder.py +192 -0
- tools/forge_studio/intake_bridge.py +898 -0
- tools/forge_studio/marketplace/__init__.py +0 -0
- tools/forge_studio/marketplace/component_hub.py +428 -0
- tools/forge_studio/models.py +369 -0
- tools/forge_studio/renderer/__init__.py +2 -0
- tools/forge_studio/renderer/json_render_engine.py +623 -0
- tools/forge_studio/renderer/layout_engine.py +214 -0
- tools/forge_studio/renderer/rn_component_map.py +182 -0
- tools/forge_studio/supabase/__init__.py +2 -0
- tools/forge_studio/supabase/auth_generator.py +283 -0
- tools/forge_studio/supabase/migration_generator.py +93 -0
- tools/forge_studio/supabase/schema_generator.py +281 -0
- tools/forge_studio/tenant_manager.py +387 -0
- tools/forge_studio/workflow/__init__.py +2 -0
- tools/forge_studio/workflow/bpmn_adapter.py +489 -0
- tools/govcon/draft_orchestrator.py +1151 -0
- tools/govcon/engine_enrichment.py +373 -0
- tools/govcon/knowledge_base.py +487 -0
- tools/govcon/knowledge_ingestion.py +510 -0
- tools/govcon/sam_scanner.py +754 -0
- tools/harness/__init__.py +6 -0
- tools/harness/exit_criteria_evaluator.py +231 -0
- tools/harness/maturity_assessor.py +347 -0
- tools/harness/scaffold_harness.py +416 -0
- tools/harness/trace_analyzer.py +281 -0
- tools/infra/__init__.py +1 -0
- tools/infra/ansible_generator.py +867 -0
- tools/infra/dockerfile_generator.py +359 -0
- tools/infra/infra_status.py +384 -0
- tools/infra/ironbank_metadata_generator.py +403 -0
- tools/infra/k8s_generator.py +1000 -0
- tools/infra/pipeline_generator.py +830 -0
- tools/infra/rollback.py +389 -0
- tools/infra/terraform_generator.py +1140 -0
- tools/infra/terraform_generator_azure.py +1252 -0
- tools/infra/terraform_generator_gcp.py +951 -0
- tools/infra/terraform_generator_ibm.py +359 -0
- tools/infra/terraform_generator_oci.py +918 -0
- tools/infra/terraform_generator_onprem.py +318 -0
- tools/knowledge/__init__.py +1 -0
- tools/knowledge/knowledge_ingest.py +281 -0
- tools/knowledge/pattern_detector.py +681 -0
- tools/knowledge/recommendation_engine.py +449 -0
- tools/knowledge/self_heal_analyzer.py +492 -0
- tools/knowledge_graph/__init__.py +2 -0
- tools/knowledge_graph/graph_rag.py +498 -0
- tools/knowledge_graph/ingester.py +406 -0
- tools/knowledge_graph/insight_generator.py +369 -0
- tools/knowledge_graph/text_network.py +832 -0
- tools/llm/__init__.py +72 -0
- tools/llm/anthropic_provider.py +170 -0
- tools/llm/azure_openai_provider.py +338 -0
- tools/llm/bedrock_provider.py +315 -0
- tools/llm/embedding_provider.py +438 -0
- tools/llm/gemini_provider.py +381 -0
- tools/llm/ibm_watsonx_provider.py +231 -0
- tools/llm/oci_genai_provider.py +462 -0
- tools/llm/ollama_provider.py +350 -0
- tools/llm/openai_provider.py +225 -0
- tools/llm/prompt_registry.py +447 -0
- tools/llm/provider.py +355 -0
- tools/llm/provider_sdk.py +175 -0
- tools/llm/router.py +1124 -0
- tools/llm/semantic_cache.py +394 -0
- tools/llm/vertex_ai_provider.py +374 -0
- tools/maintenance/__init__.py +2 -0
- tools/maintenance/dependency_scanner.py +1016 -0
- tools/maintenance/maintenance_auditor.py +804 -0
- tools/maintenance/remediation_engine.py +957 -0
- tools/maintenance/vulnerability_checker.py +978 -0
- tools/manifest.md +1066 -0
- tools/marketplace/asset_installer.py +639 -0
- tools/marketplace/feedback_validator.py +359 -0
- tools/marketplace/license_client.py +458 -0
- tools/marketplace/module_crypto.py +544 -0
- tools/marketplace/module_runtime.py +236 -0
- tools/marketplace/token_store.py +264 -0
- tools/mbse/__init__.py +3 -0
- tools/mbse/des_assessor.py +1173 -0
- tools/mbse/des_report_generator.py +787 -0
- tools/mbse/diagram_extractor.py +792 -0
- tools/mbse/digital_thread.py +1650 -0
- tools/mbse/model_code_generator.py +1115 -0
- tools/mbse/model_control_mapper.py +410 -0
- tools/mbse/pi_model_tracker.py +1079 -0
- tools/mbse/reqif_parser.py +1468 -0
- tools/mbse/sync_engine.py +1789 -0
- tools/mbse/thread_heatmap.py +445 -0
- tools/mbse/xmi_parser.py +1558 -0
- tools/mcp/builder_server.py +64 -0
- tools/mcp/compliance_server.py +64 -0
- tools/mcp/connector_forge_server.py +155 -0
- tools/mcp/core_server.py +64 -0
- tools/mcp/devsecops_server.py +11 -0
- tools/mcp/devsecops_zta_server.py +64 -0
- tools/mcp/knowledge_server.py +64 -0
- tools/mcp/monitor_server.py +64 -0
- tools/mcp/ops_server.py +300 -0
- tools/mcp/requirements_analyst_server.py +64 -0
- tools/mcp/requirements_server.py +11 -0
- tools/mcp/security_server.py +64 -0
- tools/mcp/simulation_server.py +64 -0
- tools/mcp/supply_chain_server.py +64 -0
- tools/mcp/tool_registry.py +299 -0
- tools/memory/__init__.py +2 -0
- tools/memory/auto_capture.py +346 -0
- tools/memory/embed_memory.py +157 -0
- tools/memory/history_compressor.py +334 -0
- tools/memory/hybrid_search.py +235 -0
- tools/memory/maintenance_cron.py +288 -0
- tools/memory/memory_consolidation.py +439 -0
- tools/memory/memory_db.py +132 -0
- tools/memory/memory_read.py +101 -0
- tools/memory/memory_write.py +221 -0
- tools/memory/semantic_search.py +138 -0
- tools/memory/time_decay.py +434 -0
- tools/missions/__init__.py +2 -0
- tools/missions/mission_engine.py +459 -0
- tools/monitor/__init__.py +1 -0
- tools/monitor/alert_correlator.py +486 -0
- tools/monitor/auto_resolver.py +603 -0
- tools/monitor/health_checker.py +507 -0
- tools/monitor/heartbeat_daemon.py +779 -0
- tools/monitor/log_analyzer.py +507 -0
- tools/monitor/metric_collector.py +484 -0
- tools/mosa/__init__.py +10 -0
- tools/mosa/icd_generator.py +358 -0
- tools/mosa/modular_design_analyzer.py +682 -0
- tools/mosa/mosa_code_enforcer.py +348 -0
- tools/mosa/tsp_generator.py +265 -0
- tools/observability/__init__.py +100 -0
- tools/observability/genai_attributes.py +88 -0
- tools/observability/instrumentation.py +140 -0
- tools/observability/mlflow_exporter.py +193 -0
- tools/observability/otel_tracer.py +168 -0
- tools/observability/provenance/__init__.py +3 -0
- tools/observability/provenance/prov_recorder.py +322 -0
- tools/observability/shap/__init__.py +3 -0
- tools/observability/shap/agent_shap.py +274 -0
- tools/observability/sqlite_tracer.py +360 -0
- tools/observability/trace_context.py +205 -0
- tools/observability/tracer.py +230 -0
- tools/orchestration/__init__.py +1 -0
- tools/orchestration/peer_channels.py +254 -0
- tools/orchestration/saga_coordinator.py +390 -0
- tools/project/__init__.py +1 -0
- tools/project/manifest_loader.py +418 -0
- tools/project/project_create.py +350 -0
- tools/project/project_list.py +171 -0
- tools/project/project_scaffold.py +1715 -0
- tools/project/project_status.py +478 -0
- tools/project/session_context_builder.py +752 -0
- tools/project/validate_manifest.py +54 -0
- tools/rag/corrective_rag.py +582 -0
- tools/rag/source_registry.py +482 -0
- tools/requirements/__init__.py +1 -0
- tools/requirements/ai_governance_scorer.py +207 -0
- tools/requirements/boundary_analyzer.py +1281 -0
- tools/requirements/clarification_engine.py +605 -0
- tools/requirements/complexity_scorer.py +369 -0
- tools/requirements/consistency_analyzer.py +789 -0
- tools/requirements/constitution_manager.py +592 -0
- tools/requirements/decomposition_engine.py +764 -0
- tools/requirements/document_extractor.py +1002 -0
- tools/requirements/elicitation_techniques.py +508 -0
- tools/requirements/gap_detector.py +260 -0
- tools/requirements/intake_engine.py +2175 -0
- tools/requirements/prd_generator.py +839 -0
- tools/requirements/prd_validator.py +584 -0
- tools/requirements/readiness_scorer.py +302 -0
- tools/requirements/spec_organizer.py +1015 -0
- tools/requirements/spec_quality_checker.py +1083 -0
- tools/requirements/traceability_builder.py +566 -0
- tools/research/__init__.py +3 -0
- tools/research/academic_scanner.py +130 -0
- tools/research/build_buy_analyzer.py +229 -0
- tools/research/challenge_scorer.py +280 -0
- tools/research/community_scanner.py +174 -0
- tools/research/cross_engine_bridge.py +124 -0
- tools/research/dossier_generator.py +305 -0
- tools/research/landscape_scanner.py +315 -0
- tools/research/regulatory_scanner.py +248 -0
- tools/research/research_manager.py +469 -0
- tools/research/source_scanner.py +150 -0
- tools/research/vertical_loader.py +118 -0
- tools/saas/__init__.py +0 -0
- tools/saas/licensing/__init__.py +0 -0
- tools/saas/licensing/license_validator.py +345 -0
- tools/scaffold/__init__.py +2 -0
- tools/scaffold/golden_path.py +504 -0
- tools/security/__init__.py +1 -0
- tools/security/agent_output_validator.py +330 -0
- tools/security/agent_trust_scorer.py +652 -0
- tools/security/ai_bom_generator.py +718 -0
- tools/security/ai_telemetry_logger.py +469 -0
- tools/security/atlas_red_team.py +541 -0
- tools/security/code_pattern_scanner.py +382 -0
- tools/security/confabulation_detector.py +265 -0
- tools/security/container_scanner.py +489 -0
- tools/security/dependency_auditor.py +942 -0
- tools/security/endpoint_security_scanner.py +626 -0
- tools/security/mcp_tool_authorizer.py +242 -0
- tools/security/output_verifier.py +427 -0
- tools/security/prompt_injection_detector.py +737 -0
- tools/security/sast_runner.py +946 -0
- tools/security/secret_detector.py +376 -0
- tools/security/threat_modeler.py +678 -0
- tools/security/tool_chain_validator.py +357 -0
- tools/security/vuln_scanner.py +536 -0
- tools/simulation/__init__.py +2 -0
- tools/simulation/ato_simulator.py +517 -0
- tools/simulation/coa_generator.py +1539 -0
- tools/simulation/monte_carlo.py +745 -0
- tools/simulation/scenario_manager.py +1060 -0
- tools/simulation/simulation_engine.py +1091 -0
- tools/simulator/__init__.py +2 -0
- tools/simulator/sim_runner.py +272 -0
- tools/supply_chain/__init__.py +2 -0
- tools/supply_chain/cve_triager.py +690 -0
- tools/supply_chain/dependency_graph.py +630 -0
- tools/supply_chain/isa_manager.py +526 -0
- tools/supply_chain/scrm_assessor.py +531 -0
- tools/supply_chain/slsa_verifier.py +473 -0
- tools/testing/__init__.py +2 -0
- tools/testing/acceptance_validator.py +411 -0
- tools/testing/api_surface_extractor.py +749 -0
- tools/testing/claude_dir_validator.py +831 -0
- tools/testing/data_types.py +199 -0
- tools/testing/e2e_runner.py +715 -0
- tools/testing/fuzz_cli.py +306 -0
- tools/testing/health_check.py +483 -0
- tools/testing/platform_check.py +143 -0
- tools/testing/production_audit.py +1836 -0
- tools/testing/production_remediate.py +803 -0
- tools/testing/screenshot_validator.py +538 -0
- tools/testing/smoke_test.py +283 -0
- tools/testing/test_agent_models.py +117 -0
- tools/testing/test_orchestrator.py +957 -0
- tools/testing/utils.py +229 -0
- tools/writeguard/__init__.py +1 -0
- tools/writeguard/main.py +1 -0
- tools/writing/__init__.py +7 -0
- tools/writing/ai_content_detector.py +316 -0
- tools/writing/analysis_engine.py +454 -0
- tools/writing/batch_analyzer.py +276 -0
- tools/writing/coherence_analyzer.py +221 -0
- tools/writing/govcon_bridge.py +509 -0
- tools/writing/grammar_checker.py +270 -0
- tools/writing/plagiarism_detector.py +106 -0
- tools/writing/readability_scorer.py +201 -0
- tools/writing/rewriter.py +96 -0
- tools/writing/signal_registrar.py +167 -0
- tools/writing/snippet_manager.py +276 -0
- tools/writing/style_enforcer.py +220 -0
- tools/writing/style_guide_manager.py +438 -0
- tools/writing/tone_profiler.py +168 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Phase 65: WriteGuard — AI Writing Assistant
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
|-------|-------|
|
|
5
|
+
| Phase | 65 |
|
|
6
|
+
| Status | Complete |
|
|
7
|
+
| Date | 2026-03-04 |
|
|
8
|
+
| ADRs | D-WG-1 through D-WG-14 |
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
No FedRAMP-authorized writing assistant exists. Grammarly is cloud-only, not CUI-aware, banned by NASA, and cannot operate in air-gapped IL5/IL6 environments. Government proposal writers lack tools that address CUI marking compliance, RFP shall-statement coverage, win theme threading, cross-volume consistency, and Plain Writing Act scoring.
|
|
13
|
+
|
|
14
|
+
## Solution
|
|
15
|
+
|
|
16
|
+
WriteGuard is a Grammarly-like writing assistant that runs fully air-gapped via local Ollama models, integrates with ICDEV's existing RAG/LLM/marketplace infrastructure, and adds GovProposal-specific features.
|
|
17
|
+
|
|
18
|
+
## Goals
|
|
19
|
+
|
|
20
|
+
- General-purpose + gov-specific tone profiles
|
|
21
|
+
- Fully air-gapped (Ollama only, deterministic-first)
|
|
22
|
+
- Real-time inline + batch document review
|
|
23
|
+
- Per-tenant style guides with ISSO-lockable rules (5-layer cascade)
|
|
24
|
+
- CUI/classification-aware rules
|
|
25
|
+
- Plagiarism detection (internal corpus via RAG)
|
|
26
|
+
- AI-generated content detection (statistical)
|
|
27
|
+
- Snippet/template management
|
|
28
|
+
- GovProposal integration (shall-compliance, win themes, cross-volume consistency)
|
|
29
|
+
- Marketplace asset packaging
|
|
30
|
+
|
|
31
|
+
## Architecture
|
|
32
|
+
|
|
33
|
+
### Two-Tier Routing
|
|
34
|
+
|
|
35
|
+
| Function | Tier | Method |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Grammar check | Deterministic | Regex rules |
|
|
38
|
+
| Readability score | Deterministic | Flesch-Kincaid, Gunning Fog, SMOG |
|
|
39
|
+
| AI content detection | Deterministic | Perplexity, burstiness, n-gram stats |
|
|
40
|
+
| Tone profiler | Scanner (qwen3) | Keyword + LLM classification |
|
|
41
|
+
| Coherence analyzer | Worker (qwen3 → Claude) | Cross-paragraph flow analysis |
|
|
42
|
+
| Rewriter | Worker (qwen3 → Claude) | Text improvement |
|
|
43
|
+
| Plagiarism check | Deterministic (RAG) | Vector similarity search |
|
|
44
|
+
| Style enforcer | Deterministic | Rule evaluation against cascade |
|
|
45
|
+
|
|
46
|
+
### Style Guide 5-Layer Cascade
|
|
47
|
+
|
|
48
|
+
Platform → Tenant → Program → Project → User. ISSO-lockable dimensions prevent downstream overrides on compliance-critical rules.
|
|
49
|
+
|
|
50
|
+
### GovProposal Bridge (D-WG-8)
|
|
51
|
+
|
|
52
|
+
Read-only bridge to proposal tables. Never writes to govcon tables. Provides:
|
|
53
|
+
- `check_shall_compliance()` — RFP shall-statement coverage checking
|
|
54
|
+
- `validate_win_themes()` — Win theme presence in drafts
|
|
55
|
+
- `check_cross_volume_consistency()` — Cross-volume numerical contradiction detection
|
|
56
|
+
|
|
57
|
+
## Database Tables (6 new)
|
|
58
|
+
|
|
59
|
+
| Table | Purpose |
|
|
60
|
+
|-------|---------|
|
|
61
|
+
| `wg_style_guides` | 5-layer cascade, version-immutable (composite PK: id, version) |
|
|
62
|
+
| `wg_style_guide_locks` | ISSO-lockable dimensions |
|
|
63
|
+
| `wg_analysis_results` | Append-only analysis runs (D6) |
|
|
64
|
+
| `wg_analysis_findings` | Individual findings (D6) |
|
|
65
|
+
| `wg_snippets` | Reusable writing templates |
|
|
66
|
+
| `wg_batch_runs` | Batch analysis sessions |
|
|
67
|
+
|
|
68
|
+
## Files (14 tools)
|
|
69
|
+
|
|
70
|
+
| File | Purpose | LOC |
|
|
71
|
+
|------|---------|-----|
|
|
72
|
+
| `tools/writing/analysis_engine.py` | Core orchestrator | ~400 |
|
|
73
|
+
| `tools/writing/grammar_checker.py` | Regex grammar rules | ~300 |
|
|
74
|
+
| `tools/writing/readability_scorer.py` | 5 readability formulas | ~200 |
|
|
75
|
+
| `tools/writing/tone_profiler.py` | Keyword + scanner | ~250 |
|
|
76
|
+
| `tools/writing/style_enforcer.py` | Style guide rule evaluation | ~350 |
|
|
77
|
+
| `tools/writing/coherence_analyzer.py` | Paragraph flow analysis | ~250 |
|
|
78
|
+
| `tools/writing/plagiarism_detector.py` | RAG similarity wrapper | ~200 |
|
|
79
|
+
| `tools/writing/ai_content_detector.py` | Statistical AI detection | ~300 |
|
|
80
|
+
| `tools/writing/rewriter.py` | LLM-assisted rewrite | ~200 |
|
|
81
|
+
| `tools/writing/snippet_manager.py` | CRUD + search | ~300 |
|
|
82
|
+
| `tools/writing/style_guide_manager.py` | 5-layer cascade | ~450 |
|
|
83
|
+
| `tools/writing/batch_analyzer.py` | Multi-doc batch mode | ~300 |
|
|
84
|
+
| `tools/writing/govcon_bridge.py` | GovProposal integration | ~350 |
|
|
85
|
+
| `tools/writing/signal_registrar.py` | Innovation Engine bridge | ~150 |
|
|
86
|
+
|
|
87
|
+
## Configuration
|
|
88
|
+
|
|
89
|
+
- `args/writeguard_config.yaml` — WriteGuard configuration
|
|
90
|
+
- `context/writing/style_guides/*.yaml` — 5 default style guides (government, technical, business, academic, proposal)
|
|
91
|
+
- `context/writing/grammar_rules/common_errors.json` — 30+ regex grammar patterns
|
|
92
|
+
- `context/writing/grammar_rules/govcon_vocabulary.json` — FAR/DFARS/NIST terms
|
|
93
|
+
|
|
94
|
+
## Dashboard
|
|
95
|
+
|
|
96
|
+
- `/writeguard` — Main writing assistant page with stat grid, analyze/rewrite panel, findings display, recent analyses
|
|
97
|
+
|
|
98
|
+
## Testing
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pytest tests/test_writeguard_*.py -v # 192 tests across 8 files
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
| Test File | Tests | Coverage |
|
|
105
|
+
|-----------|-------|----------|
|
|
106
|
+
| `test_writeguard_grammar.py` | ~30 | Grammar pattern detection |
|
|
107
|
+
| `test_writeguard_readability.py` | ~20 | Readability scoring accuracy |
|
|
108
|
+
| `test_writeguard_style.py` | ~35 | Style guide cascade, locks, versioning |
|
|
109
|
+
| `test_writeguard_ai_detect.py` | ~25 | AI content detection |
|
|
110
|
+
| `test_writeguard_plagiarism.py` | ~20 | Tone, coherence, rewriter |
|
|
111
|
+
| `test_writeguard_engine.py` | ~30 | Full analysis pipeline |
|
|
112
|
+
| `test_writeguard_govcon.py` | ~25 | GovProposal bridge, batch, signals |
|
|
113
|
+
| `test_writeguard_snippets.py` | ~20 | Snippet CRUD |
|
|
114
|
+
|
|
115
|
+
## Security
|
|
116
|
+
|
|
117
|
+
- `writeguard` security gate in `args/security_gates.yaml`
|
|
118
|
+
- Blocking: `cui_marking_violations_in_production`, `classification_vocabulary_leak`
|
|
119
|
+
- Warning: `readability_grade_above_14`, `passive_voice_above_40_pct`, `quality_score_below_threshold`
|
|
120
|
+
- Append-only tables: `wg_analysis_results`, `wg_analysis_findings`
|
|
121
|
+
|
|
122
|
+
## ADRs
|
|
123
|
+
|
|
124
|
+
| ADR | Decision |
|
|
125
|
+
|-----|----------|
|
|
126
|
+
| D-WG-1 | Independent `tools/writing/` for marketplace portability |
|
|
127
|
+
| D-WG-2 | Deterministic-first pipeline (regex before LLM) |
|
|
128
|
+
| D-WG-3 | 5-layer cascade with ISSO locks |
|
|
129
|
+
| D-WG-4 | Inline + batch modes (same engine) |
|
|
130
|
+
| D-WG-5 | Plagiarism via RAG similarity (0.85 threshold) |
|
|
131
|
+
| D-WG-6 | AI detection is deterministic (advisory-only) |
|
|
132
|
+
| D-WG-7 | Snippets follow knowledge_base.py pattern |
|
|
133
|
+
| D-WG-8 | GovProposal via bridge, not coupling |
|
|
134
|
+
| D-WG-9 | Append-only results (NIST AU compliant) |
|
|
135
|
+
| D-WG-10 | 3 marketplace assets |
|
|
136
|
+
| D-WG-11 | RAG source registration |
|
|
137
|
+
| D-WG-12 | Two-tier routing per function |
|
|
138
|
+
| D-WG-13 | CUI-aware rules engine |
|
|
139
|
+
| D-WG-14 | Innovation signal registration |
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Phase 66: Marketplace Commerce Extension
|
|
2
|
+
CUI // SP-CTI
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
Extends Phase 37 marketplace with billing, licensing, and module runtime integration.
|
|
7
|
+
Enables free and paid module subscriptions (Stripe + Gov PO), RSA-signed license tokens
|
|
8
|
+
with 30-day offline grace, and a Jinja2 context processor for conditional template blocks.
|
|
9
|
+
|
|
10
|
+
First integration: WriteGuard "Analyze Writing" button on GovProposal section editor,
|
|
11
|
+
visible only when the writeguard module is enabled.
|
|
12
|
+
|
|
13
|
+
## Architecture Decisions
|
|
14
|
+
|
|
15
|
+
- **D-MKT-C1:** Separate RSA-4096 key pair for module licenses
|
|
16
|
+
- **D-MKT-C2:** Reuses license_validator.py canonical JSON + RSA-SHA256 pattern
|
|
17
|
+
- **D-MKT-C3:** UNIQUE(asset_id, tenant_id, user_id) at application layer
|
|
18
|
+
- **D-MKT-C4:** Process-local cache, 60s TTL for `is_module_enabled()`
|
|
19
|
+
- **D-MKT-C5:** marketplace_invoices is append-only (NIST AU)
|
|
20
|
+
- **D-MKT-C6:** marketplace_licenses status transitions only (effectively append-only)
|
|
21
|
+
- **D-MKT-C7:** Stripe is optional dependency (air-gap safe)
|
|
22
|
+
- **D-MKT-C8:** Pre-coded `{% if module_enabled('slug') %}` conditionals (no XSS)
|
|
23
|
+
- **D-MKT-C9:** Gov PO approval requires CO or admin role
|
|
24
|
+
- **D-MKT-C10:** Free modules: no expiry, no payment, instant activation
|
|
25
|
+
|
|
26
|
+
## New DB Tables (5)
|
|
27
|
+
|
|
28
|
+
| Table | Purpose |
|
|
29
|
+
|-------|---------|
|
|
30
|
+
| marketplace_pricing | Per-asset pricing tiers (free, monthly, annual, po_only) |
|
|
31
|
+
| marketplace_subscriptions | Active subscriptions with status lifecycle |
|
|
32
|
+
| marketplace_invoices | Payment history (append-only) |
|
|
33
|
+
| marketplace_payment_methods | Stripe customer IDs + gov PO refs |
|
|
34
|
+
| marketplace_licenses | RSA-signed license tokens per subscription |
|
|
35
|
+
|
|
36
|
+
## New Python Tools (6)
|
|
37
|
+
|
|
38
|
+
| File | LOC | Purpose |
|
|
39
|
+
|------|-----|---------|
|
|
40
|
+
| tools/marketplace/license_manager.py | ~340 | RSA sign/verify, is_module_active, issue/revoke |
|
|
41
|
+
| tools/marketplace/subscription_manager.py | ~300 | Create/activate/cancel subscriptions, invoicing |
|
|
42
|
+
| tools/marketplace/stripe_billing.py | ~220 | Stripe Checkout, Billing Portal, webhooks |
|
|
43
|
+
| tools/marketplace/gov_po_processor.py | ~230 | PO submission, CO approval workflow |
|
|
44
|
+
| tools/marketplace/module_runtime.py | ~160 | Flask context processor, cache, @require_module |
|
|
45
|
+
| tools/marketplace/renewal_scheduler.py | ~170 | Background phone-home, license expiry |
|
|
46
|
+
|
|
47
|
+
## Dashboard Routes
|
|
48
|
+
|
|
49
|
+
| Route | Method | Purpose |
|
|
50
|
+
|-------|--------|---------|
|
|
51
|
+
| /marketplace | GET | Browse modules, enable/subscribe |
|
|
52
|
+
| /marketplace/subscriptions | GET | Manage subscriptions, view invoices |
|
|
53
|
+
| /marketplace/po-queue | GET | PO approval queue (CO/admin) |
|
|
54
|
+
| /api/marketplace/enable | POST | Enable free module |
|
|
55
|
+
| /api/marketplace/subscribe | POST | Start paid subscription |
|
|
56
|
+
| /api/marketplace/cancel | POST | Cancel subscription |
|
|
57
|
+
| /api/marketplace/po/submit | POST | Submit gov purchase order |
|
|
58
|
+
| /api/marketplace/po/approve | POST | CO approves PO |
|
|
59
|
+
| /webhooks/stripe | POST | Stripe webhook handler |
|
|
60
|
+
| /proposals/<opp>/sections/<sec> | GET | Section editor with WriteGuard |
|
|
61
|
+
|
|
62
|
+
## Test Coverage
|
|
63
|
+
|
|
64
|
+
- 42 unit tests in tests/test_marketplace_commerce.py
|
|
65
|
+
- License signing, verification, tampering detection
|
|
66
|
+
- Free and paid subscription lifecycle
|
|
67
|
+
- Module runtime cache + invalidation
|
|
68
|
+
- Gov PO submit/approve/reject flow
|
|
69
|
+
- Grace period and expiry logic
|
|
70
|
+
- Stripe unavailable handling
|
|
71
|
+
- End-to-end free enable + paid PO flows
|
|
72
|
+
|
|
73
|
+
## Verification
|
|
74
|
+
|
|
75
|
+
1. Free enable: Click Enable -> subscription active -> license issued -> module_enabled returns True
|
|
76
|
+
2. Section editor: "Analyze Writing" button visible when writeguard enabled
|
|
77
|
+
3. Grace period: Token expired but within 30-day grace -> still active
|
|
78
|
+
4. Air-gap: HAS_STRIPE=False -> PO flow still works
|
|
79
|
+
5. All 234 tests pass (192 existing + 42 new)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# CUI // SP-CTI
|
|
2
|
+
# Phase 67: Knowledge Ingestion & RAG-Assisted Auto-Draft
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
Phase 67 bridges the gap between document extraction and knowledge base storage,
|
|
7
|
+
and adds RAG-assisted auto-draft generation for proposal sections. Old RFP
|
|
8
|
+
responses (PDF, DOCX, TXT) can now be uploaded, chunked, classified, and stored
|
|
9
|
+
as reusable knowledge blocks. When drafting a new proposal section, the system
|
|
10
|
+
searches the knowledge base, retrieves relevant blocks, and generates a draft
|
|
11
|
+
using the LLM router (with fine-tuned model support via D-FT-6).
|
|
12
|
+
|
|
13
|
+
## Architecture Decisions
|
|
14
|
+
|
|
15
|
+
| ID | Decision | Rationale |
|
|
16
|
+
|----|----------|-----------|
|
|
17
|
+
| D-KB-1 | Chunk by section headers first, then paragraphs if >2000 chars | Mirrors RFP structure |
|
|
18
|
+
| D-KB-2 | Auto-categorize via keyword patterns (no LLM) | Air-gap safe, GOTCHA-compliant |
|
|
19
|
+
| D-KB-3 | Four-section prompt template | Separation of concerns |
|
|
20
|
+
| D-KB-4 | Route via `router.invoke("proposal_drafting")` | Reuses existing FT override + two-tier |
|
|
21
|
+
| D-KB-5 | Flask multipart upload, 50MB max, UUID prefix | Standard pattern, prevents collisions |
|
|
22
|
+
| D-KB-6 | Content hash dedup on ingestion | Prevents duplicate blocks |
|
|
23
|
+
| D-KB-7 | `_read_file_content()` used as pure function | Avoids cross-DB dependency |
|
|
24
|
+
|
|
25
|
+
## New Files
|
|
26
|
+
|
|
27
|
+
| File | Purpose |
|
|
28
|
+
|------|---------|
|
|
29
|
+
| `tools/govcon/knowledge_ingestion.py` | Document → chunk → classify → knowledge_base.add_block() |
|
|
30
|
+
| `tools/govcon/draft_orchestrator.py` | RAG search → prompt → LLM → save draft |
|
|
31
|
+
| `hardprompts/proposal_draft.md` | System prompt template for draft generation |
|
|
32
|
+
| `tools/dashboard/templates/knowledge/index.html` | Knowledge base browse, search, upload UI |
|
|
33
|
+
|
|
34
|
+
## Modified Files
|
|
35
|
+
|
|
36
|
+
| File | Changes |
|
|
37
|
+
|------|---------|
|
|
38
|
+
| `tools/finetune/pair_generator.py` | Bug fix: `draft_text` → `draft_content` |
|
|
39
|
+
| `tools/rag/source_registry.py` | Bug fix: `draft_text` → `draft_content` |
|
|
40
|
+
| `tools/db/init_icdev_db.py` | ALTER TABLE: add provenance columns |
|
|
41
|
+
| `tools/dashboard/app.py` | 6 new routes (knowledge browse/upload/search/stats, generate-draft, draft-status) |
|
|
42
|
+
| `tools/dashboard/templates/govcon.html` | Knowledge Base button |
|
|
43
|
+
| `tools/dashboard/templates/proposals/section_detail.html` | Generate Draft, Save, approval workflow |
|
|
44
|
+
| `tools/dashboard/templates/proposals/detail.html` | Generate action in section rows |
|
|
45
|
+
|
|
46
|
+
## Data Flow
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
INGESTION:
|
|
50
|
+
Upload PDF/DOCX → Flask API → knowledge_ingestion.ingest_document()
|
|
51
|
+
→ document_extractor._read_file_content() → _chunk_document()
|
|
52
|
+
→ _auto_categorize() → knowledge_base.add_block() per chunk
|
|
53
|
+
|
|
54
|
+
AUTO-DRAFT:
|
|
55
|
+
Click "Generate Draft" → draft_orchestrator.generate_draft()
|
|
56
|
+
→ Load section + opportunity + shall-statements
|
|
57
|
+
→ knowledge_base.search_blocks() (hybrid keyword + RAG semantic)
|
|
58
|
+
→ Fill hardprompts/proposal_draft.md template
|
|
59
|
+
→ router.invoke("proposal_drafting") → save to proposal_section_drafts
|
|
60
|
+
|
|
61
|
+
FEEDBACK LOOP:
|
|
62
|
+
Approve draft → pair_generator --generate-from-govcon → fine-tuning pairs
|
|
63
|
+
→ Fine-tuned model → better future drafts
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Dashboard Routes
|
|
67
|
+
|
|
68
|
+
| Route | Method | Purpose |
|
|
69
|
+
|-------|--------|---------|
|
|
70
|
+
| `/govcon/knowledge-base` | GET | Browse/search knowledge blocks |
|
|
71
|
+
| `/api/govcon/knowledge-base/upload` | POST | File upload → ingest_document() |
|
|
72
|
+
| `/api/govcon/knowledge-base/search` | GET | Search blocks |
|
|
73
|
+
| `/api/govcon/knowledge-base/stats` | GET | Stats (total, by category/domain) |
|
|
74
|
+
| `/api/govcon/sections/<id>/generate-draft` | POST | Auto-draft generation |
|
|
75
|
+
| `/api/govcon/sections/<id>/draft-status` | POST | Approval workflow |
|
|
76
|
+
|
|
77
|
+
## CLI Usage
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Ingest a single document
|
|
81
|
+
python tools/govcon/knowledge_ingestion.py --ingest --file old_rfp.pdf --json
|
|
82
|
+
|
|
83
|
+
# Bulk ingest a directory
|
|
84
|
+
python tools/govcon/knowledge_ingestion.py --bulk-ingest --directory ./old_rfps --json
|
|
85
|
+
|
|
86
|
+
# Generate draft for a section
|
|
87
|
+
python tools/govcon/draft_orchestrator.py --generate --section-id <id> --opportunity-id <id> --json
|
|
88
|
+
|
|
89
|
+
# Preview context without LLM
|
|
90
|
+
python tools/govcon/draft_orchestrator.py --preview --section-id <id> --opportunity-id <id> --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Bug Fixes
|
|
94
|
+
|
|
95
|
+
- `pair_generator.py`: `draft_text` → `draft_content`, `quality_score` → `confidence_score`, `updated_at` → `created_at`
|
|
96
|
+
- `source_registry.py`: `draft_text` → `draft_content` in content_cols and metadata_cols
|
|
97
|
+
- `draft_orchestrator.py`: `shall_text` → `statement_text`, `confidence_score` → `confidence`, `draft_method` column removed (doesn't exist)
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# CUI // SP-CTI
|
|
2
|
+
# Phase 68: Enhanced Auto-Draft Pipeline
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
Phase 68 upgrades the Phase 67 single-step RAG draft generation into a 4-step
|
|
7
|
+
enhanced pipeline: KB Retrieval → Engine Enrichment → SMART Solutioning → Content
|
|
8
|
+
Generation with WriteGuard quality gate. Adds batch "Generate All" with
|
|
9
|
+
dependency-aware ordering and step-by-step progress UI.
|
|
10
|
+
|
|
11
|
+
## Architecture Decisions
|
|
12
|
+
|
|
13
|
+
| ID | Decision | Rationale |
|
|
14
|
+
|----|----------|-----------|
|
|
15
|
+
| D-P68-1 | New `engine_enrichment.py` for DB keyword queries | GOTCHA separation; standalone for Phase 69 extraction |
|
|
16
|
+
| D-P68-2 | Static `context/icdev_methodology.md` + KB search | Air-gap safe; deterministic context injection |
|
|
17
|
+
| D-P68-3 | New `draft_generation_jobs` table for batch tracking | Polling-based progress needs persistent state |
|
|
18
|
+
| D-P68-4 | WriteGuard post-check via direct `analyze()` call | Same-process, faster than HTTP roundtrip |
|
|
19
|
+
| D-P68-5 | Auto-rewrite once, then flag human | Balance automation with HITL quality control |
|
|
20
|
+
| D-P68-6 | Kahn's topological sort for batch ordering | Deterministic, handles deps + sort_order fallback |
|
|
21
|
+
| D-P68-7 | Background thread for batch generation | Long-running, UI polls for progress |
|
|
22
|
+
| D-P68-8 | Prior sections context injected into each subsequent section | Sequential dependency builds coherent proposal |
|
|
23
|
+
|
|
24
|
+
## New Files
|
|
25
|
+
|
|
26
|
+
| File | Purpose |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `tools/govcon/engine_enrichment.py` | DB queries against Innovation/Creative/Research tables |
|
|
29
|
+
| `context/icdev_methodology.md` | Static ICDEV framework reference (GOTCHA, ATLAS, RICOAS, ZTA) |
|
|
30
|
+
|
|
31
|
+
## Modified Files
|
|
32
|
+
|
|
33
|
+
| File | Changes |
|
|
34
|
+
|------|---------|
|
|
35
|
+
| `tools/govcon/draft_orchestrator.py` | Added v2 pipeline, batch generation, job tracking, SMART plan |
|
|
36
|
+
| `hardprompts/proposal_draft.md` | Added engine_enrichments, smart_plan, prior_sections, style_hints |
|
|
37
|
+
| `tools/dashboard/app.py` | Updated generate-draft to v2, added generate-all + job progress routes |
|
|
38
|
+
| `tools/dashboard/templates/proposals/detail.html` | Generate All button, progress bar, polling JS |
|
|
39
|
+
| `tools/dashboard/templates/proposals/section_detail.html` | Pipeline steps panel, quality score display |
|
|
40
|
+
| `tools/db/init_icdev_db.py` | `draft_generation_jobs` table, ALTER columns on `proposal_section_drafts` |
|
|
41
|
+
|
|
42
|
+
## Pipeline Data Flow
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Step 1: KB Retrieval
|
|
46
|
+
→ knowledge_base.search_blocks(query, domain, top_k=5) → kb_blocks[]
|
|
47
|
+
→ search_blocks("GOTCHA ATLAS methodology", top_k=3) → methodology_blocks[]
|
|
48
|
+
|
|
49
|
+
Step 2: Engine Enrichment
|
|
50
|
+
→ engine_enrichment.extract_rfp_keywords(section, opp, shalls) → keywords[]
|
|
51
|
+
→ query_innovation_tables(keywords) → innovation_results[]
|
|
52
|
+
→ query_creative_tables(keywords) → creative_results[]
|
|
53
|
+
→ query_research_tables(keywords) → research_results[]
|
|
54
|
+
|
|
55
|
+
Step 3: SMART Solutioning
|
|
56
|
+
→ Read context/icdev_methodology.md (static, ~3000 chars max)
|
|
57
|
+
→ Build SMART prompt combining KB + engines + methodology
|
|
58
|
+
→ router.invoke("proposal_drafting") → structured SMART plan
|
|
59
|
+
→ Fallback: deterministic bullet-point plan from KB blocks
|
|
60
|
+
|
|
61
|
+
Step 4: Content Generation + Quality Gate
|
|
62
|
+
→ Fill enhanced hardprompts/proposal_draft.md with ALL context
|
|
63
|
+
→ router.invoke("proposal_drafting") → draft_content
|
|
64
|
+
→ WriteGuard analyze(draft_content) → quality_score
|
|
65
|
+
→ IF score < 60: rewriter.rewrite() → rewritten draft
|
|
66
|
+
→ IF still < 60: flagged for human review
|
|
67
|
+
→ Save to proposal_section_drafts with provenance
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Dashboard Routes
|
|
71
|
+
|
|
72
|
+
| Route | Method | Purpose |
|
|
73
|
+
|-------|--------|---------|
|
|
74
|
+
| `/api/govcon/sections/<id>/generate-draft` | POST | Single section v2 pipeline (updated) |
|
|
75
|
+
| `/api/govcon/proposals/<opp_id>/generate-all` | POST | Start batch job, returns job_id |
|
|
76
|
+
| `/api/govcon/jobs/<job_id>/progress` | GET | Poll batch progress |
|
|
77
|
+
|
|
78
|
+
## Schema Changes
|
|
79
|
+
|
|
80
|
+
### New Table: `draft_generation_jobs`
|
|
81
|
+
Tracks batch generation jobs with step-by-step progress.
|
|
82
|
+
|
|
83
|
+
### New Columns on `proposal_section_drafts`
|
|
84
|
+
- `engine_enrichment_ids` — JSON array of engine result IDs used
|
|
85
|
+
- `smart_plan` — Generated SMART plan text
|
|
86
|
+
- `writeguard_score` — Quality score from WriteGuard post-check
|
|
87
|
+
- `writeguard_result_id` — Reference to WriteGuard analysis result
|
|
88
|
+
- `was_auto_rewritten` — Whether auto-rewrite was applied
|
|
89
|
+
- `pipeline_version` — "v1" or "v2"
|
|
90
|
+
|
|
91
|
+
## CLI Usage
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Single section v2 pipeline
|
|
95
|
+
python tools/govcon/draft_orchestrator.py --generate-v2 --section-id <id> --opportunity-id <id> --json
|
|
96
|
+
|
|
97
|
+
# Batch generate all sections
|
|
98
|
+
python tools/govcon/draft_orchestrator.py --batch --opportunity-id <id> --json
|
|
99
|
+
|
|
100
|
+
# Engine enrichment test
|
|
101
|
+
python tools/govcon/engine_enrichment.py --test --json
|
|
102
|
+
|
|
103
|
+
# v1 pipeline (legacy fallback)
|
|
104
|
+
python tools/govcon/draft_orchestrator.py --generate --section-id <id> --opportunity-id <id> --json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Bug Fixes
|
|
108
|
+
|
|
109
|
+
- Applied Phase 68 schema to both `sparkpilot.db` and `icdev.db` (dashboard uses `icdev.db`)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# CUI // SP-CTI
|
|
2
|
+
# Phase 69: ProposalAI Module + Free Trials + Marketplace Admin
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
Phase 69 adds three capabilities:
|
|
7
|
+
- **Free Trial System** — 30-day trial for any marketplace module, renewable once (60 days max)
|
|
8
|
+
- **ProposalAI Module** — Gates Phase 67/68 AI drafting features behind a marketplace subscription
|
|
9
|
+
- **Marketplace Admin** — CRUD interface for managing modules and pricing tiers, plus redesigned marketplace page (1 card per module with pricing tiers inside)
|
|
10
|
+
|
|
11
|
+
## Architecture Decisions
|
|
12
|
+
|
|
13
|
+
| ID | Decision | Rationale |
|
|
14
|
+
|----|----------|-----------|
|
|
15
|
+
| D-P69-1 | New `trial` billing_cycle | Reuses existing subscription/license infrastructure |
|
|
16
|
+
| D-P69-2 | Trial auto-activates, 30-day expiry | Same UX as free tier but time-limited |
|
|
17
|
+
| D-P69-3 | `trial_renewal_count` column, max 1 renewal | 60 days max before requiring paid subscription |
|
|
18
|
+
| D-P69-4 | Single `proposalai` module slug | One paywall for all AI drafting features |
|
|
19
|
+
| D-P69-5 | `@require_module('proposalai')` on 8 API routes | Server-side 403 enforcement |
|
|
20
|
+
| D-P69-6 | `{% if module_enabled('proposalai') %}` on templates | Client-side gating with upgrade prompts |
|
|
21
|
+
| D-P69-7 | New `/marketplace/admin` page with CRUD | Admin configuration for modules + pricing |
|
|
22
|
+
| D-P69-8 | Redesigned marketplace page — 1 card per module | Group pricing tiers inside card, not separate cards |
|
|
23
|
+
|
|
24
|
+
## Schema Changes
|
|
25
|
+
|
|
26
|
+
### ALTER: `marketplace_subscriptions`
|
|
27
|
+
```sql
|
|
28
|
+
ALTER TABLE marketplace_subscriptions ADD COLUMN trial_renewal_count INTEGER DEFAULT 0;
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### CHECK Constraint Updates
|
|
32
|
+
Both `marketplace_pricing` and `marketplace_subscriptions` tables updated to include `'trial'` in `billing_cycle` CHECK constraint.
|
|
33
|
+
|
|
34
|
+
### New Seed Data
|
|
35
|
+
- WriteGuard trial pricing tier ($0, 30 days)
|
|
36
|
+
- ProposalAI asset (slug: `proposalai`, type: `skill`)
|
|
37
|
+
- ProposalAI pricing: trial ($0), monthly ($149), annual ($1,490)
|
|
38
|
+
|
|
39
|
+
## Modified Files
|
|
40
|
+
|
|
41
|
+
| File | Changes |
|
|
42
|
+
|------|---------|
|
|
43
|
+
| `tools/db/init_icdev_db.py` | Trial ALTER SQL, CHECK constraint updates, ProposalAI + trial seed data |
|
|
44
|
+
| `tools/marketplace/subscription_manager.py` | Trial in `create_subscription()`, new `renew_trial()` |
|
|
45
|
+
| `tools/marketplace/license_manager.py` | Trial 30-day expiry in `issue_license()` |
|
|
46
|
+
| `tools/dashboard/app.py` | 8 route gates, 2 trial routes, 5 admin CRUD routes, marketplace page redesign |
|
|
47
|
+
| `tools/dashboard/templates/marketplace.html` | Redesign: 1 card per module with pricing tiers |
|
|
48
|
+
| `tools/dashboard/templates/marketplace_admin.html` | New: Module + pricing CRUD admin |
|
|
49
|
+
| `tools/dashboard/templates/marketplace_subscriptions.html` | Trial status, renewal button |
|
|
50
|
+
| `tools/dashboard/templates/proposals/detail.html` | Gate Generate All/Generate buttons |
|
|
51
|
+
| `tools/dashboard/templates/proposals/section_detail.html` | Gate Generate Draft, pipeline, KB panels |
|
|
52
|
+
| `tools/dashboard/templates/govcon.html` | Gate KB nav link |
|
|
53
|
+
|
|
54
|
+
## API Routes
|
|
55
|
+
|
|
56
|
+
### Trial Routes
|
|
57
|
+
| Route | Method | Purpose |
|
|
58
|
+
|-------|--------|---------|
|
|
59
|
+
| `/api/marketplace/trial/start` | POST | Start 30-day trial for a module |
|
|
60
|
+
| `/api/marketplace/trial/renew` | POST | Renew trial once (another 30 days) |
|
|
61
|
+
|
|
62
|
+
### Admin Routes
|
|
63
|
+
| Route | Method | Purpose |
|
|
64
|
+
|-------|--------|---------|
|
|
65
|
+
| `/marketplace/admin` | GET | Admin page listing all modules + pricing |
|
|
66
|
+
| `/api/marketplace/admin/assets` | POST | Create new module asset |
|
|
67
|
+
| `/api/marketplace/admin/assets/<id>` | PUT | Update module |
|
|
68
|
+
| `/api/marketplace/admin/pricing` | POST | Add pricing tier |
|
|
69
|
+
| `/api/marketplace/admin/pricing/<id>` | PUT | Update pricing tier |
|
|
70
|
+
| `/api/marketplace/admin/pricing/<id>` | DELETE | Soft deactivate pricing tier |
|
|
71
|
+
|
|
72
|
+
### Gated Routes (ProposalAI)
|
|
73
|
+
| Route | Purpose |
|
|
74
|
+
|-------|---------|
|
|
75
|
+
| `GET /govcon/knowledge-base` | KB browse page |
|
|
76
|
+
| `POST /api/govcon/knowledge-base/upload` | KB document upload |
|
|
77
|
+
| `GET /api/govcon/knowledge-base/search` | KB search |
|
|
78
|
+
| `GET /api/govcon/knowledge-base/stats` | KB statistics |
|
|
79
|
+
| `POST /api/govcon/sections/<id>/generate-draft` | Single section v2 pipeline |
|
|
80
|
+
| `POST /api/govcon/sections/<id>/draft-status` | Draft status check |
|
|
81
|
+
| `POST /api/govcon/proposals/<id>/generate-all` | Batch generation |
|
|
82
|
+
| `GET /api/govcon/jobs/<id>/progress` | Batch job progress |
|
|
83
|
+
|
|
84
|
+
## Trial Lifecycle
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
No subscription → "Start 30-Day Trial" button
|
|
88
|
+
↓ POST /api/marketplace/trial/start
|
|
89
|
+
Trial Active (30 days) → "Renew 30 Days" button
|
|
90
|
+
↓ POST /api/marketplace/trial/renew
|
|
91
|
+
Trial Active (extended 30 days) → "(renewal used)"
|
|
92
|
+
↓ Expires or Cancel
|
|
93
|
+
No subscription → "Start 30-Day Trial" / "Subscribe" buttons
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Marketplace Redesign
|
|
97
|
+
|
|
98
|
+
**Before (Phase 66):** 1 card per pricing tier → 3 cards for WriteGuard (confusing)
|
|
99
|
+
**After (Phase 69):** 1 card per module with pricing tiers listed inside
|
|
100
|
+
|
|
101
|
+
Card layout:
|
|
102
|
+
```
|
|
103
|
+
┌────────────────────────────────────────┐
|
|
104
|
+
│ ProposalAI — AI Proposal Drafting │ From $149/mo
|
|
105
|
+
│ proposalai · v1.0.0 │
|
|
106
|
+
│ Description text... │
|
|
107
|
+
│ [govcon] [proposal] [drafting] [ai] │
|
|
108
|
+
│ ┌──────┐ ┌─────────┐ ┌──────────────┐ │
|
|
109
|
+
│ │Trial │ │ Monthly │ │ Annual │ │
|
|
110
|
+
│ │ $0 │ │ $149 │ │ $1,490 │ │
|
|
111
|
+
│ └──────┘ └─────────┘ └──────────────┘ │
|
|
112
|
+
│ [Start Trial] [Subscribe] [Gov PO] │
|
|
113
|
+
│ — or — ✓ Trial Active (2026-04-03) │
|
|
114
|
+
└────────────────────────────────────────┘
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Verification Results
|
|
118
|
+
|
|
119
|
+
| # | Check | Result |
|
|
120
|
+
|---|-------|--------|
|
|
121
|
+
| V1 | ProposalAI + trial tiers in DB | 2 assets, 7 pricing tiers |
|
|
122
|
+
| V2 | Trial start | Trial activates, 30-day expiry, routes unlock (200) |
|
|
123
|
+
| V3 | Trial renewal | Renew extends 30d, count=1, second attempt shows "(renewal used)" |
|
|
124
|
+
| V4 | Route gating (no license) | 403 on KB/draft APIs |
|
|
125
|
+
| V5 | Template gating | KB link hidden, Generate buttons hidden |
|
|
126
|
+
| V6 | Cancel trial | Routes re-gated (403), buttons reappear on marketplace |
|
|
127
|
+
| V7 | Marketplace redesign | 1 card per module, tiers inside, 3 viewports |
|
|
128
|
+
| V8 | Admin CRUD | Modules + pricing displayed with Edit/Deactivate/Publish |
|
|
129
|
+
| V9 | Subscriptions page | Trial status, renewal info, Cancel button |
|
|
130
|
+
| V10 | Console errors | 0 errors across all pages |
|
|
131
|
+
| V11 | Network 500s | 0 server errors |
|