kenaz 0.3.22 → 0.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/.claude/hooks/_user-scope.js +1 -1
- package/core/.claude/hooks/core-resolve.js +1 -1
- package/core/.claude/hooks/worktree-create.js +6 -6
- package/core/.claude/hooks/worktree-remove.js +4 -4
- package/core/.collaboration/core/reconcile.js +16 -1
- package/core/.collaboration/core/task-2467-lifecycle.test.js +63 -0
- package/core/.collaboration/core/task-api.js +37 -7
- package/core/.formation/bifrost/launch.js +1 -1
- package/core/.formation/tools/kenaz-stats.js +1 -1
- package/core/.formation/tools/post-complete/git-merge.js +1 -1
- package/core/.formation/tools/prompt.js +1 -1
- package/core/.kenaz/specialist/ansuz_rules.yaml +7 -51
- package/core/.kenaz/specialist/ansuz_session_handoff.schema.json +2 -6
- package/core/.rule/general/project-self-containment.yaml +2 -2
- package/core/.specialist/Amelia/README.md +1 -1
- package/core/.specialist/Amelia/rule.yaml +1 -1
- package/core/.specialist/Ansuz/RULES.md +1 -1
- package/core/.specialist/Ansuz/concepts/commitment_layer.yaml +1 -1
- package/core/.specialist/Ansuz/concepts/evolvable_guardrails.yaml +1 -1
- package/core/.specialist/Ansuz/knowledge.yaml +1 -3
- package/core/.specialist/tools/__tests__/task-2409-lessons.test.js +10 -0
- package/core/.specialist/tools/__tests__/task-2427-harvest.test.js +25 -0
- package/core/.specialist/tools/ansuz-boot-fast.js +1 -1
- package/core/.specialist/tools/failure-detector.js +4 -4
- package/core/.specialist/tools/handoff-doc.js +1 -1
- package/core/.specialist/tools/lessons.js +2 -2
- package/core/CLAUDE.md +5 -5
- package/core/KENAZ_CORE_VERSION +1 -1
- package/core/dashboard/scripts/install-kenaz-cli.js +21 -6
- package/core/dev/scripts/check-file-size.js +1 -1
- package/core/dev/scripts/ci-feedback.js +1 -1
- package/core/dev/scripts/gc-agent-worktrees.js +11 -11
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +3 -3
- package/core/dev/scripts/run-rust-tests.js +2 -2
- package/core/dev/scripts/skill-routing-replay.js +3 -3
- package/core/dev/scripts/task1961/selftest.js +2 -2
- package/core/dev/scripts/windows-hide-guard.test.js +97 -0
- package/core/plugins/kenaz/guidance.md +1 -0
- package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
- package/core/plugins/kenaz/hooks/kenaz-hook.js +52 -4
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +21 -6
- package/core/.kenaz/designs/METAPLASTICITY_CONFIDENCE_DESIGN.md +0 -537
- package/core/.kenaz/designs/REFLEX_INITIATOR_DESIGN.md +0 -501
- package/core/.kenaz/designs/TASK_1385_handoff_mcp_design.md +0 -426
- package/core/.kenaz/designs/TASK_932_hippocampus_consolidation.md +0 -103
- package/core/.kenaz/designs/TASK_934_efe_signal_engine.md +0 -97
- package/core/.kenaz/designs/TASK_935_self_evolution_framework.md +0 -154
- package/core/.kenaz/designs/VISION_cognitive_architecture_roadmap.md +0 -159
- package/core/.kenaz/designs/metaplasticity_simulation_results.json +0 -696
- package/core/.kenaz/main-memory/README.md +0 -230
- package/core/.kenaz/main-memory/kenaz/cortex/001_cortex_overview.md +0 -168
- package/core/.kenaz/main-memory/kenaz/cortex/001_rag_engine_overview.md +0 -30
- package/core/.kenaz/main-memory/kenaz/memory-system/001_three_tier_architecture.md +0 -361
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_execution_flow.md +0 -117
- package/core/.kenaz/main-memory/kenaz/pipeline/001_task_granularity.md +0 -154
- package/core/.kenaz/main-memory/kenaz/pipeline/002_team_priority.md +0 -51
- package/core/.kenaz/main-memory/kenaz/pipeline/003_feature_id_system.md +0 -46
- package/core/.kenaz/main-memory/kenaz/rules/001_gen_007_self_containment.md +0 -108
- package/core/.kenaz/main-memory/kenaz/rules/001_rule_priority_system.md +0 -121
- package/core/.kenaz/main-memory/kenaz/rules/002_agt_006_pre_check.md +0 -0
- package/core/.kenaz/main-memory/kenaz/rules/003_ppl_002_task_archival.md +0 -48
- package/core/.kenaz/main-memory/kenaz/system/001_dual_track_task_system.md +0 -197
- package/core/.kenaz/main-memory/knowledge/patterns/001_json_bom_issue.md +0 -78
- package/core/.kenaz/main-memory/knowledge/patterns/001_leader_worker_pattern.md +0 -0
- package/core/.kenaz/main-memory/knowledge/patterns/002_scope_path_conflict.md +0 -115
- package/core/.kenaz/main-memory/knowledge/patterns/002_task_dependency_resolution.md +0 -223
- package/core/.kenaz/main-memory/knowledge/patterns/003_question_protocol.md +0 -242
- package/core/.kenaz/main-memory/knowledge/patterns/004_user_insight_value.md +0 -111
- package/core/.kenaz/main-memory/knowledge/patterns/005_file_lock_pattern.md +0 -274
- package/core/.kenaz/main-memory/knowledge/references/001_ppl_rules.md +0 -28
- package/core/.kenaz/main-memory/knowledge/solutions/001_json_bom_issue.md +0 -137
- package/core/.kenaz/main-memory/knowledge/solutions/001_team_invocation.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/002_passive_monitoring.md +0 -0
- package/core/.kenaz/main-memory/knowledge/solutions/003_windows_file_race_condition.md +0 -239
- package/core/.kenaz/main-memory/registry.json +0 -326
- package/core/.kenaz/main-memory/version.yaml +0 -58
- package/core/.kenaz/specialist/memory_guard_fired.json +0 -1
- package/core/.kenaz/specialist/memory_guard_trigger_cache.json +0 -1
- package/core/.kenaz/specialist/memory_source_priority.yaml +0 -260
- package/core/.kenaz/specialist/prompt_1775.txt +0 -317
- package/core/.kenaz/specialist/prompt_1776.txt +0 -326
- package/core/.kenaz/specialist/prompt_1791.txt +0 -320
- package/core/.kenaz/specialist/prompt_1792.txt +0 -320
- package/core/.kenaz/specialist/prompt_1795.txt +0 -281
- package/core/.kenaz/specialist/prompt_1813.txt +0 -332
- package/core/.kenaz/specialist/prompt_1814.txt +0 -401
- package/core/.kenaz/specialist/prompt_1815.txt +0 -394
- package/core/.kenaz/specialist/prompt_1816.txt +0 -437
- package/core/.kenaz/specialist/prompt_1818.txt +0 -361
- package/core/.kenaz/specialist/prompt_1819.txt +0 -421
- package/core/.kenaz/specialist/prompt_1821.txt +0 -345
- package/core/.kenaz/specialist/prompt_1822.txt +0 -313
- package/core/.kenaz/specialist/prompt_1824.txt +0 -348
- package/core/.kenaz/specialist/prompt_1826.txt +0 -388
- package/core/.kenaz/specialist/rune_efe_salience_gap.md +0 -21
- package/core/.kenaz/specialist/task1825_update.json +0 -43
- package/core/.kenaz/specialist/taskgen/consolidation_i.json +0 -38
- package/core/.kenaz/specialist/taskgen/csharp_a.json +0 -44
- package/core/.kenaz/specialist/taskgen/csharp_b.json +0 -40
- package/core/.kenaz/specialist/taskgen/embedding_e.json +0 -34
- package/core/.kenaz/specialist/taskgen/hygiene_fg.json +0 -39
- package/core/.kenaz/specialist/taskgen/pathology_h.json +0 -36
- package/core/.kenaz/specialist/taskgen/unity_noise_d.json +0 -38
- package/core/.kenaz/specialist/taskgen/visibility_c.json +0 -38
- package/core/.specialist/Ansuz/decisions/ADR-requirement-graph-layer.md +0 -390
- package/core/.specialist/Ansuz/self_model_seed.backup.json +0 -100
- package/core/.specialist/ansuz_session_handoff.json +0 -96
- package/core/dev/ALAYA_FIELD_FEEDBACK_DESIGN.md +0 -126
- package/core/dev/ANSUZ_SCAFFOLD_DIET_2026-09-20.md +0 -231
- package/core/dev/ANSUZ_STARTUP_INJECTION_REVIEW.md +0 -355
- package/core/dev/ANSUZ_WORKFLOW_MODERNIZATION.md +0 -143
- package/core/dev/CORTEX_META_GRAPH_ASSESSMENT.md +0 -99
- package/core/dev/FREYA_DOWNSTREAM_BUGS_2026-09-19.md +0 -44
- package/core/dev/GLOBAL_MEMORY_IDENTITY_CONSOLIDATION.md +0 -263
- package/core/dev/GUARD_EFFECTIVENESS_DESIGN.md +0 -180
- package/core/dev/HEALTH_GATE_VARIANCE_ASSESSMENT.md +0 -271
- package/core/dev/HOOK_DIET_2026-09-21.md +0 -126
- package/core/dev/JEV_INTEGRATION_PLAN.md +0 -189
- package/core/dev/KENAZ_AGENT_CONNECT_v1_SPEC.md +0 -139
- package/core/dev/MOBILE_DESIGN_SPEC.md +0 -569
- package/core/dev/MULTI_ANSUZ_SPEC.md +0 -136
- package/core/dev/MUNINN_RETIREMENT.md +0 -115
- package/core/dev/PHASE3_ATTRIBUTION_POPULATION_DIAGNOSIS.md +0 -211
- package/core/dev/PHASE3_P3-2B_TASKLEVEL_PROBE.md +0 -83
- package/core/dev/PHASE3_P3-2_POPULATION_DISJOINTNESS.md +0 -83
- package/core/dev/PHASE3_P3-2_REMEASURE_REPORT.md +0 -231
- package/core/dev/PREDICTION_GROUNDING_DESIGN.md +0 -376
- package/core/dev/PRODUCT_SPEC.md +0 -317
- package/core/dev/PROJECT_REGISTRY_DUPLICATE_ASSESSMENT.md +0 -86
- package/core/dev/STARTUP_TIMELINE_TASK_1995.md +0 -181
- package/core/dev/SYNAPSE_WORKER_PER_PROJECT.md +0 -881
- package/core/dev/TASK_1680_P3-3_DISPATCH_SPEC.md +0 -96
- package/core/dev/TASK_1684_CALIBRATION_IMPACT_ANALYSIS.md +0 -170
- package/core/dev/TASK_1684_FORK_A_GOODHART_DESIGN.md +0 -171
- package/core/dev/TASK_1684_P3_2_REMEASURE_VALIDATION.md +0 -262
- package/core/dev/TASK_1903_SIGNAL_AUC_MEASUREMENT.md +0 -207
- package/core/dev/TASK_1904_BRANCH_INTEGRITY_AUDIT.md +0 -146
- package/core/dev/ansuz-eval/README.md +0 -38
- package/core/dev/ansuz-eval/build-fixtures.js +0 -87
- package/core/dev/ansuz-eval/grade.js +0 -96
- package/core/dev/ansuz-eval/grader.test.js +0 -117
- package/core/dev/ansuz-eval/tasks.md +0 -32
- package/core/dev/archive/ansuz/BOOT_FULL.md +0 -141
- package/core/dev/archive/ansuz/agents/ansuz-boot.md +0 -176
- package/core/dev/archive/ansuz/designs/alaya-passive-surfacing.md +0 -84
- package/core/dev/archive/ansuz/designs/cc_memory_indexing.md +0 -307
- package/core/dev/archive/ansuz/designs/check_guard.md +0 -322
- package/core/dev/archive/ansuz/designs/consequence_loop.md +0 -227
- package/core/dev/archive/ansuz/designs/mcp_kuzudb_lock_architecture.md +0 -312
- package/core/dev/archive/ansuz/designs/phase0_git_enrichment.md +0 -278
- package/core/dev/archive/ansuz/designs/refactor_mcp_tools_synapse.md +0 -490
- package/core/dev/archive/ansuz/designs/semantic_markdown_extraction.md +0 -167
- package/core/dev/archive/ansuz/designs/task_1372_prompt_injects_into.md +0 -193
- package/core/dev/archive/ansuz/designs/thought_stack.md +0 -286
- package/core/dev/archive/ansuz/investigations/reachability_unified_api_2026-04-11.md +0 -330
- package/core/dev/archive/ansuz/investigations/synapse_orphans_indexing_bug_2026-04-11.md +0 -352
- package/core/dev/archive/ansuz/investigations/synapse_orphans_reindex_verification_2026-04-11.md +0 -48
- package/core/dev/archive/ansuz/investigations/synapse_orphans_verification_2026-04-11.md +0 -170
- package/core/dev/archive/ansuz/legacy/kernel.yaml +0 -399
- package/core/dev/archive/ansuz/legacy/phases/phase_0.yaml +0 -418
- package/core/dev/archive/ansuz/legacy/phases/phase_1.yaml +0 -376
- package/core/dev/archive/ansuz/legacy/phases/phase_10.yaml +0 -35
- package/core/dev/archive/ansuz/legacy/phases/phase_11.yaml +0 -582
- package/core/dev/archive/ansuz/legacy/phases/phase_2.yaml +0 -94
- package/core/dev/archive/ansuz/legacy/phases/phase_3.yaml +0 -274
- package/core/dev/archive/ansuz/legacy/phases/phase_4.yaml +0 -67
- package/core/dev/archive/ansuz/legacy/phases/phase_5.yaml +0 -32
- package/core/dev/archive/ansuz/legacy/phases/phase_6.yaml +0 -91
- package/core/dev/archive/ansuz/legacy/phases/phase_7.yaml +0 -58
- package/core/dev/archive/ansuz/legacy/phases/phase_8.yaml +0 -146
- package/core/dev/archive/ansuz/legacy/phases/phase_9.yaml +0 -424
- package/core/dev/archive/ansuz/specs/INDEX_bifrost_hook_parity.yaml +0 -92
- package/core/dev/archive/ansuz/specs/active-inference-formation.yaml +0 -453
- package/core/dev/archive/ansuz/specs/brief_TASK_1228_userpromptsubmit.yaml +0 -191
- package/core/dev/archive/ansuz/specs/brief_TASK_1229_pretooluse_posttooluse.yaml +0 -250
- package/core/dev/archive/ansuz/specs/brief_TASK_1230_sessionstart_stop.yaml +0 -301
- package/core/dev/archive/ansuz/specs/brief_TASK_1231_verification.yaml +0 -272
- package/core/dev/archive/skills/feature_agent/SKILL.md +0 -289
- package/core/dev/design/PHASE4_DESIGN.md +0 -559
- package/core/dev/design/dashboard_docs_integration_PLAN.md +0 -388
- package/core/dev/design/matrix_format_ABBREVIATIONS.md +0 -655
- package/core/dev/design/matrix_format_DESIGN_SPEC.md +0 -601
- package/core/dev/design/matrix_format_DISCUSSION_SUMMARY.md +0 -484
- package/core/dev/design/matrix_format_EXAMPLE_memory.matrix +0 -13
- package/core/dev/design/matrix_format_EXAMPLE_project_status.matrix +0 -9
- package/core/dev/design/matrix_format_EXAMPLE_tasks.matrix +0 -14
- package/core/dev/design/matrix_format_SYNTAX_BNF.md +0 -754
- package/core/dev/design/matrix_format_TOKEN_COMPARISON.md +0 -484
- package/core/dev/design/matrix_v2_COGNITIVE_DESIGN.md +0 -503
- package/core/dev/design/matrix_v2_DISCUSSION_SUMMARY.md +0 -414
- package/core/dev/design/matrix_v2_EXAMPLE.matrix +0 -67
- package/core/dev/designs/EXPANDABLE_CARD_DESIGN_SPEC.md +0 -509
- package/core/dev/jev-eval/ACTIVE_CORRECTION.md +0 -52
- package/core/dev/jev-eval/ANNOTATION_GUIDE.md +0 -68
- package/core/dev/jev-eval/BASELINE_COMPARISON.md +0 -45
- package/core/dev/jev-eval/CONTEXT_REVIEW.md +0 -31
- package/core/dev/jev-eval/EVALUATION_STATUS.md +0 -39
- package/core/dev/jev-eval/HISTORICAL_CORPUS.md +0 -33
- package/core/dev/jev-eval/PACKAGING_VERIFICATION.md +0 -42
- package/core/dev/jev-eval/README.md +0 -101
- package/core/dev/jev-eval/THALAMUS_RANKING.md +0 -58
- package/core/dev/jev-eval/VALIDATION_PROGRESS.md +0 -54
- package/core/dev/jev-eval/cli.mjs +0 -50
- package/core/dev/jev-eval/context.mjs +0 -183
- package/core/dev/jev-eval/corpus.mjs +0 -186
- package/core/dev/jev-eval/fixtures/conversation-review.seed.jsonl +0 -6
- package/core/dev/jev-eval/fixtures/synthetic.jsonl +0 -11
- package/core/dev/jev-eval/metrics.mjs +0 -67
- package/core/dev/jev-eval/muninn-baseline.mjs +0 -119
- package/core/dev/jev-eval/providers.mjs +0 -95
- package/core/dev/jev-eval/reports/annotation-pilot-2026-09-20.json +0 -32
- package/core/dev/jev-eval/reports/context-review-2026-09-20.json +0 -48
- package/core/dev/jev-eval/reports/conversation-review.pending.json +0 -151
- package/core/dev/jev-eval/reports/history-corpus-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/length-probe-2026-09-20.json +0 -133
- package/core/dev/jev-eval/reports/live-smoke-2026-09-20.json +0 -616
- package/core/dev/jev-eval/reports/muninn-baseline-2026-09-20.json +0 -52
- package/core/dev/jev-eval/reports/resilience-2026-09-20.json +0 -520
- package/core/dev/jev-eval/reports/rules-baseline.json +0 -197
- package/core/dev/jev-eval/reports/synthetic-review.pending.json +0 -357
- package/core/dev/jev-eval/resilience.mjs +0 -71
- package/core/dev/jev-eval/review.mjs +0 -78
- package/core/dev/jev-eval/schema.mjs +0 -87
- package/core/dev/jev-eval/test/context.test.mjs +0 -95
- package/core/dev/jev-eval/test/corpus.test.mjs +0 -102
- package/core/dev/jev-eval/test/eval.test.mjs +0 -146
- package/core/dev/jev-eval/test/muninn-baseline.test.mjs +0 -71
- package/core/dev/jev-eval/test/resilience.test.mjs +0 -72
- package/core/dev/jev-eval/test/review.test.mjs +0 -61
- package/core/dev/pipeline/PHASE3_PLANNING_SUMMARY.md +0 -338
- package/core/dev/pipeline/PROGRESS.md +0 -113
- package/core/dev/pipeline/PROGRESS_template.md +0 -860
- package/core/dev/pipeline/QA_REPORT_F008.md +0 -431
- package/core/dev/pipeline/QA_REPORT_LOCAL_CLAUDE_DIAGNOSIS.md +0 -583
- package/core/dev/pipeline/README.md +0 -210
- package/core/dev/pipeline/WORKFLOW_GUIDE.md +0 -824
- package/core/dev/pipeline/archived/TASK_015_tauri_init.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_016_tauri_commands.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_017_rust_pty.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_018_tauri_bundle.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_019_release_workflow.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_020_update_ui.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_021_update_notification_ui.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_022_remove_node_pty.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_023_api_routes_migration.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_024_feature_id_system.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_025_executable_acceptance.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_026_spec_versioning.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_027_drift_detection.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_028_tauri_pty_manager.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_029_tauri_pty_commands.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_030_frontend_session_adapter.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_031_terminal_tauri_events.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_041_scheduler_data_models.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_042_path_lock_manager.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_043_process_manager.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_044_git_integration.yaml +0 -85
- package/core/dev/pipeline/archived/TASK_045_task_queue_manager.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_046_scheduler_dispatcher.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_047_tauri_scheduler_commands.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_048_realtime_status_push.yaml +0 -92
- package/core/dev/pipeline/archived/TASK_049_frontend_scheduler_integration.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_050_error_recovery.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_051_optimization_proposals_backend.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_052_optimization_proposals_ui.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_053_optimization_proposals_diff_view.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_054_multi_project_scheduler_state.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_055_scheduler_api_project_scope.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_056_frontend_scheduler_project_scope.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_057_scheduler_module_structure.yaml +0 -54
- package/core/dev/pipeline/archived/TASK_058_scheduler_models_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_059_scheduler_core_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_060_scheduler_commands_extract.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_061_scheduler_specialized_commands.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_062_process_manager_module_structure.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_063_process_manager_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_064_recovery_module_structure.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_065_recovery_core_extract.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_066_self_enhancement_scheduler_models.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_067_agents_section_quick_actions.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_067_self_enhancement_scheduler_core.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_068_agent_workflow_rule_enhancement.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_068_self_enhancement_tauri_commands.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_069_agent_wizard_responsive.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_069_self_enhancement_ui.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_preview_panel_redesign.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_070_self_enhancement_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_071_preview_panel_qa.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_071_single_agent_config.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_072_preview_modal_esc_fix.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_072_product_review_module.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_073_agents_page_component_refactor.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_073_rename_single_agent.yaml +0 -64
- package/core/dev/pipeline/archived/TASK_074_preview_mode_ui_diagnosis.yaml +0 -71
- package/core/dev/pipeline/archived/TASK_074_single_agent_ui_toggle.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_075_agents_page_component_refactor.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_075_single_agent_integration_test.yaml +0 -75
- package/core/dev/pipeline/archived/TASK_076_preview_mode_ui_diagnosis.yaml +0 -70
- package/core/dev/pipeline/archived/TASK_076_single_agent_continuous_mode.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_077_failure_directory_structure.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_077_single_agent_typescript_types.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_078_fail_001_agent_no_output.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_078_single_agent_ui_simplify.yaml +0 -74
- package/core/dev/pipeline/archived/TASK_079_dashboard_rwd_responsive.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_079_fail_002_json_bom.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_fail_003_queue_pollution.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_080_http_server_module.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_081_failure_logging_tools.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_081_http_api_routes.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_082_frontend_api_adapter.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_082_integrate_failure_to_workflow.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_083_cleanup_nextjs_api.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_083_task_queue_cleanup.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_084_rust_dead_code_cleanup.yaml +0 -66
- package/core/dev/pipeline/archived/TASK_084_scheduler_sync_logic_fix.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_085_http_api_web_mode_fixes.yaml +0 -46
- package/core/dev/pipeline/archived/TASK_085_memory_consolidation_0204_0205.yaml +0 -98
- package/core/dev/pipeline/archived/TASK_086_collapsible_preview_panel.yaml +0 -161
- package/core/dev/pipeline/archived/TASK_086_web_mode_feature_parity.yaml +0 -62
- package/core/dev/pipeline/archived/TASK_087_manual_memory_archival.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_087_mobile_http_control.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_088_fail_003_to_ppl_002_rule.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_088_mobile_http_qa.yaml +0 -121
- package/core/dev/pipeline/archived/TASK_089_agent_collaboration_topic.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_089_web_mode_monitor_fix.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_090_cli_detection_fix.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_090_ui_ux_lessons_topic.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_091_expandable_card_design.yaml +0 -56
- package/core/dev/pipeline/archived/TASK_091_move_agent_section_components.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_092_expandable_card_component.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_092_refactor_agent_create_wizard.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_093_taskcard_detail_integration.yaml +0 -57
- package/core/dev/pipeline/archived/TASK_093_update_barrel_exports_test.yaml +0 -84
- package/core/dev/pipeline/archived/TASK_094_ai_agent_generation_enhancement.yaml +0 -115
- package/core/dev/pipeline/archived/TASK_094_proposalcard_detail_integration.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_095_preview_fixes.yaml +0 -129
- package/core/dev/pipeline/archived/TASK_095_single_agent_task_selector.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_096_agents_page_ux_improvements.yaml +0 -163
- package/core/dev/pipeline/archived/TASK_096_single_agent_status_sync.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_097_local_claude_error_logging.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_097_single_agent_monitor_events.yaml +0 -59
- package/core/dev/pipeline/archived/TASK_098_product_manager_team_phase2.yaml +0 -60
- package/core/dev/pipeline/archived/TASK_098_single_agent_refactor_test.yaml +0 -58
- package/core/dev/pipeline/archived/TASK_099_backend_team_creation.yaml +0 -258
- package/core/dev/pipeline/archived/TASK_100_frontend_team_creation.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_101_orchestrator_system.yaml +0 -403
- package/core/dev/pipeline/archived/TASK_102_designer_sre_teams.yaml +0 -90
- package/core/dev/pipeline/archived/TASK_103_integration_testing.yaml +0 -86
- package/core/dev/pipeline/archived/TASK_128_integration_testing.yaml +0 -83
- package/core/dev/pipeline/archived/TASK_134_cortex_v2_phase3_file_watcher.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_134_team_http_api.yaml +0 -96
- package/core/dev/pipeline/archived/TASK_135_cortex_v2_phase3_git_monitor.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_136_cortex_v2_phase3_change_analyzer.yaml +0 -69
- package/core/dev/pipeline/archived/TASK_137_cortex_v2_phase3_cache_invalidator.yaml +0 -67
- package/core/dev/pipeline/archived/TASK_137_team_orchestrator_integration.yaml +0 -93
- package/core/dev/pipeline/archived/TASK_138_cortex_v2_phase3_distributed_cache.yaml +0 -68
- package/core/dev/pipeline/archived/TASK_138_matrix_folder_structure.yaml +0 -61
- package/core/dev/pipeline/archived/TASK_139_cortex_v2_phase3_cache_prewarming.yaml +0 -65
- package/core/dev/pipeline/archived/TASK_146_unified_documentation.yaml +0 -141
- package/core/dev/pipeline/archived/TASK_147_pipeline_execution_rules.yaml +0 -76
- package/core/dev/pipeline/archived/TASK_148_update_claude_md.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_149_fix_nextjs_mdx_serialization.yaml +0 -63
- package/core/dev/pipeline/archived/TASK_149_update_team_docs.yaml +0 -77
- package/core/dev/pipeline/archived/TASK_150_pipeline_workflow_guide.yaml +0 -82
- package/core/dev/pipeline/archived/TASK_164_fix_smart_context_switch.yaml +0 -49
- package/core/dev/pipeline/archived/TASK_165_ctags_symbol_index.yaml +0 -53
- package/core/dev/pipeline/archived/TASK_166_symbol_search_mcp_tool.yaml +0 -48
- package/core/dev/pipeline/archived/TASK_167_llm_module_summary.yaml +0 -55
- package/core/dev/pipeline/archived/TASK_168_map_reduce_context.yaml +0 -51
- package/core/dev/pipeline/archived/TASK_169_v2_integration_testing.yaml +0 -52
- package/core/dev/pipeline/backups/archive_2026-02-04T22-07-22/TASK_QUEUE_backup.json +0 -95
- package/core/dev/pipeline/docs/multi-agent-coordination.md +0 -446
- package/core/dev/pipeline/docs/overview.md +0 -406
- package/core/dev/pipeline/docs/task-management.md +0 -412
- package/core/dev/pipeline/docs/workflows.md +0 -32
- package/core/dev/pipeline/orchestrator/schemas/task_queue_schema.json +0 -58
- package/core/dev/pipeline/orchestrator/schemas/task_schema.json +0 -139
- package/core/dev/pipeline/plans/PLAN_task_cli_refactor.md +0 -281
- package/core/dev/pipeline/test_results/TASK_TEST_PARALLEL_002_result.txt +0 -27
- package/core/dev/plans/ANSUZ_SLIM_PLAN.md +0 -68
- package/core/dev/plans/CLI_FIRST_INSTALL_FLOW.md +0 -120
- package/core/dev/plans/FORMATION_RETIREMENT_PLAN.md +0 -313
- package/core/dev/plans/KUZU_REPLACEMENT_PLAN.md +0 -126
- package/core/dev/scripts/CRASH_DIAGNOSIS.md +0 -47
- package/core/dev/scripts/README.md +0 -142
- package/core/dev/scripts/RUN_ONCE.bat +0 -40
- package/core/dev/scripts/START_DEV_AGENT.bat +0 -63
- package/core/dev/scripts/START_MULTI_AGENT.bat +0 -80
- package/core/dev/scripts/dev_agent_scheduler.ps1 +0 -536
- package/core/dev/scripts/init_git.ps1 +0 -396
- package/core/dev/scripts/init_git.sh +0 -337
- package/core/dev/scripts/init_project.ps1 +0 -851
- package/core/dev/scripts/init_project.sh +0 -477
- package/core/dev/scripts/multi_agent_scheduler.ps1 +0 -2021
- package/core/dev/scripts/multi_agent_scheduler.sh +0 -1344
- package/core/dev/scripts/run_once.sh +0 -47
- package/core/dev/scripts/setup_rag.ps1 +0 -304
- package/core/dev/scripts/setup_rag.sh +0 -230
- package/core/dev/scripts/start_dev_agent.sh +0 -137
- package/core/dev/scripts/start_multi_agent.sh +0 -41
- package/core/dev/scripts/sync_task_queue.ps1 +0 -505
- package/core/dev/scripts/sync_task_queue.sh +0 -392
- package/core/dev/specs/agent-connect/PROTOCOL.md +0 -177
- package/core/dev/specs/agent-connect/SDK_GUIDE.md +0 -915
- package/core/dev/specs/agent-connect/examples/minimal-site/README.md +0 -137
- package/core/dev/specs/agent-connect/examples/minimal-site/package.json +0 -12
- package/core/dev/specs/agent-connect/examples/minimal-site/public/index.html +0 -116
- package/core/dev/specs/agent-connect/examples/minimal-site/public/install-redirect.js +0 -73
- package/core/dev/specs/agent-connect/examples/minimal-site/server.js +0 -516
- package/core/dev/specs/agent-connect/examples/minimal-site/test/smoke.test.mjs +0 -263
- package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-empty-prompt-no-first-turn.md +0 -77
- package/core/dev/specs/agent-connect/history/DEFECT_REPORT_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md +0 -90
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-07.md +0 -61
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-08_relay-v1-conformance.md +0 -76
- package/core/dev/specs/agent-connect/history/FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-session-channel.md +0 -87
- package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md +0 -68
- package/core/dev/specs/agent-connect/history/FLOWPIX_bridge_CONTRACT.md +0 -642
- package/core/dev/specs/agent-connect/history/FLOWPIX_spikes_relay_spike_relay.mjs +0 -244
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-07.md +0 -77
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_direction-change-v0.3.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-answers-ack.md +0 -37
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_annotations-install-coldstart.md +0 -44
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_empty-prompt-first-turn.md +0 -56
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_prompt-mojibake-fixed.md +0 -48
- package/core/dev/specs/agent-connect/history/KENAZ_RESPONSE_agent-hub_2026-09-09_session-channel.md +0 -57
- package/core/dev/specs/agent-connect/history/PROTOCOL_v0.3_snapshot.md +0 -379
- package/core/dev/specs/agent-connect/history/README.md +0 -47
- package/core/dev/specs/peer/CODEX_INTERACTIVE_PUSH.md +0 -65
- package/core/dev/specs/peer/CODEX_MANAGED_DAEMON.md +0 -54
- package/core/dev/specs/peer/CODEX_PEER_PULL_SPIKE.md +0 -54
- package/core/dev/specs/peer/MODS_SPIKE.md +0 -133
- package/core/dev/specs/peer/PER_PROJECT_ADDRESSING.md +0 -143
- package/core/dev/specs/peer/SWARM_PROTOCOLS.md +0 -256
- package/core/dev/specs/peer/codex-hook-shim-peer.test.js +0 -113
- package/core/dev/specs/peer/codex-push-launcher.test.js +0 -142
- package/core/dev/specs/peer/setup-codex-hooks.test.js +0 -60
- package/core/dev/specs/peer-ansuz/DELIVERY_SPIKE.md +0 -397
- package/core/dev/specs/peer-ansuz/DESIGN.md +0 -109
- package/core/dev/specs/peer-ansuz/spike/claude_poke.js +0 -129
- package/core/dev/specs/peer-ansuz/spike/claude_session_start_hook.js +0 -37
- package/core/dev/specs/peer-ansuz/spike/claude_settings_hook.json +0 -14
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_client.js +0 -105
- package/core/dev/specs/peer-ansuz/spike/codex_appserver_query.js +0 -29
- package/core/dev/specs/peer-ansuz/spike/extract_timeline.js +0 -26
- package/core/dev/specs/synapse/SYMBOL_IDENTITY.md +0 -305
- package/core/dev/spikes/A4-cypher-varlen.md +0 -176
- package/core/dev/spikes/bloat-rounds.sh +0 -25
- package/core/dev/spikes/mods/clean-claude.js +0 -9
- package/core/dev/spikes/mods/drive-probe.js +0 -29
- package/core/dev/spikes/mods/e2e-peer.js +0 -71
- package/core/dev/spikes/mods/evidence/e2e-peer-control.json +0 -17
- package/core/dev/spikes/mods/evidence/e2e-peer-mod.json +0 -17
- package/core/dev/spikes/mods/evidence/probe-006a6e65-d807-4bc1-b648-fd7d1edfe0b4.jsonl +0 -4
- package/core/dev/spikes/mods/evidence/probe-cebdf1f7-f9c4-47a8-83cd-7c0786177404.jsonl +0 -12
- package/core/dev/spikes/mods/evidence/probe-eb21147d-10ce-4c32-93ed-37ca37d88d5a.jsonl +0 -11
- package/core/dev/spikes/mods/evidence/stream-cebdf1f7.jsonl +0 -18
- package/core/dev/spikes/mods/kenaz-mod-probe/.claude-plugin/plugin.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/hooks.json +0 -1
- package/core/dev/spikes/mods/kenaz-mod-probe/hooks/register.ts +0 -65
- package/core/dev/spikes/mods/kenaz-mod-probe/tsconfig.json +0 -3
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Feature Request: Agent Connect v0.4 之後——網站與「Kenaz 開的那個 agent session」的持續對話(聊天視窗)需要 SDK 開放 session 通道
|
|
2
|
-
|
|
3
|
-
日期:2026-09-09
|
|
4
|
-
來源:FlowPix / GameAsset_auto(Ansuz session,接在 TASK_110「FlowPix 接上 Kenaz Agent Connect v0.4」之後)
|
|
5
|
-
接續:`FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md`(同日缺陷報告)、`dev/KENAZ_AGENT_CONNECT_v1_SPEC.md` §2.3/§2.4/§5(B 期已達成出口條件,C 期 SDK 尚未實作)
|
|
6
|
-
Kenaz 版本觀察:kenaz-dashboard.exe **0.2.230**,`KENAZ_AGENT_HUB_DEV=1`。
|
|
7
|
-
|
|
8
|
-
## 一句話
|
|
9
|
-
|
|
10
|
-
FlowPix 的下一步是把「連接 Kenaz」做成網頁上的**聊天視窗**:用戶在網頁反覆對 Kenaz 開的那個 agent 下指令、看它回了什麼、看它在做什麼。v0.4 的兩個事實讓這件事只能做一半:**Web → Kenaz 只有一次性的深連結**(每按一次 = 新審批 + 新終端分頁 + 新 session,不是對既有 session 說話),**Kenaz → Web 沒有回程通道**(網站只看得到 agent 主動經網站 MCP 送出的東西)。FlowPix 會先用「agent 自己來網站 MCP 拉訊息」的信箱模式把聊天做起來(不需要 Kenaz 改任何東西,見第 2 節),但有四件事只有 Kenaz 能提供,請納入 C 期 SDK:**S1 session 識別**、**S2 持續對話的慣例由 Kenaz 人格保證**、**S3 session 輸出串流**、**S4 session 結束通知**。全部是 v0.4 的**加法**,不引回 relay,符合 Q7(互動終端分頁 + Ansuz 人格 + 網站 MCP)與 Q10(沒有中介)。
|
|
11
|
-
|
|
12
|
-
## 1. 今天量到的現況(v0.4 端到端已通)
|
|
13
|
-
|
|
14
|
-
- 從 `http://localhost:5173` 按一次「連接 Kenaz」→ 審批卡 → 允許 → `[AgentHub] Launched for http://localhost:5173 — agent=claude session=12b19338-23ee-4e7c-8d5b-c299dcd6e89b` → 終端分頁 → agent 呼叫 `mcp__127__kenaz_hello` → FlowPix 面板「Kenaz 已連線」。深連結、審批卡、MCP 預配、`kenaz_hello` 全部符合 PROTOCOL.md v0.4。
|
|
15
|
-
- Kenaz 內部有 session id(上面 log 那個 uuid),但**網站拿不到**:`kenaz_hello` 無參數、MCP 預配只帶 `Authorization` 一個 header。網站目前只能用「每個 token = 一次連接」自己對應 session。
|
|
16
|
-
- 本機 API `http://127.0.0.1:18080/api/agent-hub/` 只有 `status`、`revoke`;`sessions`、`session` 都是 404。
|
|
17
|
-
- 再按一次「連接」= 再一張審批卡(origin 是 `once`)+ 再一個終端分頁 + 再一個 agent;前一個 session 沒有任何方式收到第二則訊息。
|
|
18
|
-
- session 結束(用戶關分頁、CLI 崩潰)網站完全不知道,只能靠 token 閒置過期(FlowPix 設 30 分鐘)猜。
|
|
19
|
-
- 深連結 `prompt=` 的中文在終端裡是亂碼(另一份報告),所以「用深連結傳指令」目前連第一則都不可靠。
|
|
20
|
-
|
|
21
|
-
## 2. FlowPix 自己會做的(不依賴 Kenaz,作為基線)
|
|
22
|
-
|
|
23
|
-
信箱模式:網頁把訊息 `POST` 到 FlowPix 自己的 MCP 所在的 bridge,MCP 多兩個工具——`wait_for_instruction()`(長輪詢,最多約 25 秒內回「有訊息」或「還沒有,再呼叫」)與 `reply(text)`——深連結的 `prompt=` 只放一句 ASCII 的「call wait_for_instruction in a loop and follow each instruction」,中文全部從信箱進去(走 MCP 的 JSON,繞開亂碼)。這樣聊天視窗就成立,網站也能靠長輪詢的節奏當心跳。
|
|
24
|
-
|
|
25
|
-
它的弱點正好就是下面四個需求存在的理由:
|
|
26
|
-
|
|
27
|
-
- **迴圈靠 agent 自律**:agent 認為「做完了」就停止呼叫工具,信箱從此沒人領;網站無從喚醒它(S2)。
|
|
28
|
-
- **閒置燒 token**:agent 每 25 秒醒一次「沒有訊息」,一小時 140 多次工具呼叫(S2 的 Kenaz 側輪詢或推送可以省掉)。
|
|
29
|
-
- **看不到 agent 在做什麼**:只有 `reply` 寫的摘要,終端裡的思考、工具呼叫、錯誤看不到(S3)。
|
|
30
|
-
- **不知道 session 死了**:只能等閒置過期(S4)。
|
|
31
|
-
- **CLI 工具審批**:Claude Code / Codex 在互動終端裡第一次呼叫網站工具會問用戶,用戶要按「永遠允許」;Kenaz 預配 MCP 時若能一併預設允許網站 MCP 的工具(審批卡已經等於用戶同意這個網站了),體驗會好很多(附帶請求 S5)。
|
|
32
|
-
|
|
33
|
-
## 3. 需求
|
|
34
|
-
|
|
35
|
-
### S1 讓網站認得 session(最小、無風險)
|
|
36
|
-
|
|
37
|
-
Kenaz 預配網站 MCP 時,在 `headers` 多帶一個 `X-Kenaz-Session: <session uuid>`(與現有 `Authorization` 並列)。網站 MCP 每個請求都能讀到,不需要改 `kenaz_hello` 的形狀(PROTOCOL §2 fixture 維持逐字不變)。
|
|
38
|
-
|
|
39
|
-
- 用途:一個 token 若被同一個 session 之外的東西使用可以拒絕;聊天視窗、transcript、結束通知都以它為鍵。
|
|
40
|
-
- 建議一併在 `GET /api/agent-hub/status` 的每個 origin 下列出 `sessions:[{session_id, agent, model, cwd, started_at, alive}]`,供本機工具(FlowPix 的 bridge 在用戶機器上)查活著的 session。
|
|
41
|
-
|
|
42
|
-
### S2 讓「持續對話」成為 Kenaz 人格保證的慣例,而不是網站 prompt 的祈禱
|
|
43
|
-
|
|
44
|
-
PROTOCOL §2 現在只定義 `kenaz_hello`。請再定義一個**可選**慣例工具:網站 MCP 若在 `tools/list` 提供 `kenaz_wait_for_message()`(無參數;回 `{"message": string|null, "message_id": string|null}`,最長阻塞 N 秒後回 null),Kenaz 注入的 Ansuz 人格就承諾:處理完起始 `prompt`(或沒有 prompt)之後,**持續呼叫 `kenaz_wait_for_message`,每則訊息當成新的使用者訊息處理,直到工具回 `{"message":"__kenaz_end__"}` 或分頁關閉**。
|
|
45
|
-
|
|
46
|
-
- 這把「agent 會不會一直聽」從網站的 prompt 工程搬到 Kenaz 人格,網站只要實作一個工具。深連結 `prompt=` 可以省略,亂碼問題也就不在關鍵路徑上。
|
|
47
|
-
- 若 Kenaz 願意更進一步:由 Kenaz 側(不是 agent)代為輪詢或改成 Kenaz 提供推送——例如 Kenaz 對網站 MCP 開一條 SSE(MCP streamable HTTP 本來就有 GET 通道)收 `notifications/message`,再注入終端當使用者訊息。這能省掉閒置期的 token,但 S2 的人格慣例版本已經足夠讓聊天成立,請先做這個。
|
|
48
|
-
- 審批卡:網站宣告了 `kenaz_wait_for_message` 時,卡上加一行「此網站會持續傳送指令給這個 agent」,讓用戶知道這不是一次性任務。
|
|
49
|
-
|
|
50
|
-
### S3 session 輸出串流(讓聊天視窗看得到 agent 在做什麼)
|
|
51
|
-
|
|
52
|
-
二擇一,或都做:
|
|
53
|
-
|
|
54
|
-
- **S3a(本機、給有本機 bridge 的網站,FlowPix 現在就是)**:本機 API `GET /api/agent-hub/sessions/{id}/events`(SSE 或 WebSocket,loopback-only,與現有 `status`/`revoke` 同一個 18080 服務),事件至少含 `assistant_text`、`tool_call {name, args_preview}`、`tool_result {ok}`、`error`、`exit`。網站的本機 bridge 訂閱後轉給網頁。需要用戶同意:審批卡多一個勾選「允許此網站讀取這個 session 的輸出」,或 `always` 狀態附帶此權限。
|
|
55
|
-
- **S3b(雲端網站也能用)**:Kenaz 把同一組事件以 MCP 呼叫送到網站 MCP 的慣例工具 `kenaz_session_event(event)`(網站有提供才送,帶同一個 bearer)。這是「Kenaz 自己呼叫網站 MCP」,和 S4 同一個機制。
|
|
56
|
-
|
|
57
|
-
我們知道 S3 與 v0.4「Kenaz → Web 沒有回程通道」的立場相抵;請把它視為 C 期的**可選、需用戶同意**的能力,預設關閉。沒有它,聊天視窗只能顯示 agent 用 `reply` 寫的摘要,這對「看 agent 在畫布上做事」的產品需求太薄。
|
|
58
|
-
|
|
59
|
-
### S4 session 結束通知
|
|
60
|
-
|
|
61
|
-
Kenaz 擁有終端分頁的 PTY,程序退出或分頁被關時它是唯一知道的人。請在那一刻由 **Kenaz 本身**(不是 agent,agent 崩潰時已不存在)對網站 MCP 呼叫慣例工具 `kenaz_session_ended({reason})`(`reason`: `closed_by_user` / `agent_exited` / `error`),帶同一個 bearer;網站沒提供這個工具就略過。這樣網站可以立刻撤銷 token、把聊天視窗切成「agent 已離線」,不必猜。
|
|
62
|
-
|
|
63
|
-
### S5(附帶)預設允許網站 MCP 的工具呼叫
|
|
64
|
-
|
|
65
|
-
用戶在審批卡按允許時已經同意讓這個網站的 MCP 進到 agent;請在預配時同時把該 MCP 的工具設為 allowed(Claude Code 的 `permissions.allow` `mcp__<name>__*`、Codex 的對應設定),否則聊天裡每一則指令的第一個工具呼叫都會在終端再問一次,網頁端的用戶看不到那個提問,只會覺得「沒反應」。
|
|
66
|
-
|
|
67
|
-
## 4. 優先順序與相依
|
|
68
|
-
|
|
69
|
-
| 需求 | 對 FlowPix 的價值 | Kenaz 側工作量(我們的估計) |
|
|
70
|
-
|---|---|---|
|
|
71
|
-
| S1 header | 中:正確綁定 session | 小:預配 MCP 時多一個 header |
|
|
72
|
-
| S2 人格慣例 | **高**:聊天視窗可靠成立、繞開亂碼 | 小:PROTOCOL §2 加一段 + 人格 prompt 加一段 + 假 MCP 加一個工具 |
|
|
73
|
-
| S5 預設允許 | 高:聊天不會卡在終端的提問 | 小到中:兩個 CLI 的設定寫法 |
|
|
74
|
-
| S4 結束通知 | 中:不用猜 session 死活 | 中:PTY 退出 hook + 一次 MCP 呼叫 |
|
|
75
|
-
| S3 輸出串流 | 高(產品)| 大:事件模型 + 權限 + 本機 API 或推送 |
|
|
76
|
-
|
|
77
|
-
建議 C 期先做 S1 + S2 + S5(都是「慣例 + 設定」層級),S4 其次,S3 獨立評估。FlowPix 會先以第 2 節的信箱模式上線,S2 落地後把迴圈指令從 prompt 移除、S1 落地後把 session 綁定改成 header。
|
|
78
|
-
|
|
79
|
-
## 5. 對 SDK 套件的對應(§2.4)
|
|
80
|
-
|
|
81
|
-
- `@kenaz/connect-mcp`:提供 `kenaz_wait_for_message` / `kenaz_session_ended` / `kenaz_session_event` 三個慣例工具的骨架與一個記憶體信箱,網站只要接自己的 UI。
|
|
82
|
-
- `@kenaz/connect`(瀏覽器):`<KenazConnectButton>` 之外加 `useKenazChat({session})`:送訊息、收回覆、收事件、離線狀態。
|
|
83
|
-
- 假 Kenaz:模擬「呼叫 kenaz_hello → 迴圈呼叫 kenaz_wait_for_message → 對每則訊息回一個假回覆 → 呼叫 kenaz_session_ended」,網站不裝 Kenaz 也能測聊天。
|
|
84
|
-
|
|
85
|
-
## 6. 怎麼看到現況(可重現)
|
|
86
|
-
|
|
87
|
-
同 `FEATURE_REQUEST_kenaz-agent-hub_2026-09-09_v0.4-prompt-mojibake.md` 第「怎麼重現」節起 FlowPix;連線成功後再按一次「重新連接」,觀察:第二張審批卡、第二個終端分頁、第一個分頁的 agent 對第二則訊息毫無反應;`curl http://127.0.0.1:18080/api/agent-hub/sessions` → 404。
|
package/core/dev/specs/agent-connect/history/FLOWPIX_REPLY_agent-hub_2026-09-08_relay-v1-answers.md
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# FlowPix 側回覆:A/B/C 三個問題的答案(回應 KENAZ_RESPONSE … relay-v1-conformance)
|
|
2
|
-
|
|
3
|
-
日期:2026-09-08
|
|
4
|
-
來源:FlowPix / GameAsset_auto(Ansuz session)
|
|
5
|
-
回應對象:`KENAZ_RESPONSE_agent-hub_2026-09-08_relay-v1-conformance.md`
|
|
6
|
-
|
|
7
|
-
## 一句話
|
|
8
|
-
|
|
9
|
-
三個問題都有答案,D1–D10 的裁定全部接受,不需要再猜。`KENAZ_AGENT_HUB_DEV=1` 已設進使用者環境變數,Kenaz 重啟後我們立刻用真實配對驗證,並把觀察到的 frame 逐則回報。
|
|
10
|
-
|
|
11
|
-
## A. 合約原文(已放 Downloads)
|
|
12
|
-
|
|
13
|
-
- `C:\Users\Wei\Downloads\FLOWPIX_bridge_CONTRACT.md` —— `bridge/CONTRACT.md` 全文。前半是 bridge HTTP contract v1 與「Agent hub v1」(`/mcp` 的 11 個畫布工具,K8 啟動的 CLI 會用到),後半「Relay v1」章節是這次對齊的本體。
|
|
14
|
-
- `C:\Users\Wei\Downloads\FLOWPIX_bridge_agent_relay_client.py` —— 假 Kenaz 參考實作,逐訊息對照用。
|
|
15
|
-
- `C:\Users\Wei\Downloads\FLOWPIX_spikes_relay_spike_relay.mjs` —— relay 參考實作,token 一次性/60 秒/綁 origin 與 `token_invalid` vs `token_already_used` 的判定都在這裡。
|
|
16
|
-
|
|
17
|
-
抱歉前兩次沒附上,這次起合約每次改版都會重放到 Downloads。
|
|
18
|
-
|
|
19
|
-
## B. `generate_image` 的 `payload.url` 由 relay 代理 presign(選項 2 的變體)
|
|
20
|
-
|
|
21
|
-
**答案:走 relay,用同一條已配對的 WS 拿 presigned URL,Kenaz 對 `put_url` 做一次 HTTPS PUT,`result.payload.url` 回 `get_url`。** 不選 (1),因為你們 D10 已確認 `generate_*` 完全不用 MCP,圖片上傳不該反過來把 MCP 變成必要;不選 (3),因為產品是雲端網站,同機 URL 在正式環境不成立。
|
|
22
|
-
|
|
23
|
-
新增兩則訊息(會寫進合約新的 §10,欄位定稿如下):
|
|
24
|
-
|
|
25
|
-
```json
|
|
26
|
-
Kenaz -> relay: {"type": "blob.presign", "request_id": "<id>", "content_type": "image/png", "bytes": <int, optional>}
|
|
27
|
-
relay -> Kenaz: {"type": "blob.presigned", "request_id": "<id>", "put_url": "<https url>", "get_url": "<https url>", "expires_s": <int>}
|
|
28
|
-
| {"type": "error", "request_id": "<id>", "error": {"code": "presign_failed", "message": "<string>"}}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
- `request_id` 是 Kenaz 自己產生的新 id(不是 `generate_image` 那個),relay 用它配對回覆。
|
|
32
|
-
- Kenaz 對 `put_url` 送 `PUT`,`Content-Type` 同 `content_type`,body 是原始 bytes;2xx 即成功。`put_url` 是 presigned URL,不帶任何 Kenaz 側憑證。
|
|
33
|
-
- 之後 `result {request_id:<generate_image 的 id>, ok:true, payload:{url:<get_url>, width, height, provider, elapsed_ms, meta}}`。
|
|
34
|
-
- 這正是 spike 裡假 Kenaz 已在做的事(`agent_relay_client.py` 的 `_upload_to_blobstore`:POST `/presign` → PUT `put_url` → 回 `get_url`),只是把「presign 端點在哪」從命令列參數改成走 relay 訊息,Kenaz 不用多知道任何 URL,也不用多一組憑證。
|
|
35
|
-
- 一則 `generate_image` 可以呼叫多次 `blob.presign`(多張輸出時),relay 不限制次數。
|
|
36
|
-
- `reference_images[]` 方向相反(網站→Kenaz 給 URL),Kenaz 直接 GET 即可,這部分不變。
|
|
37
|
-
|
|
38
|
-
relay 這邊我們會實作(`relay.mjs` 代理到 blobstore;正式環境是 R2/GCS 的 presigned URL)。在你們落地前,D7 image 分支先回本機路徑我們可以接受,網站端會顯示「等待 Kenaz 上傳」。
|
|
39
|
-
|
|
40
|
-
## C. `agent.launched` / `agent.unavailable` 欄位:接受
|
|
41
|
-
|
|
42
|
-
- `{type:"agent.launched", request_id, agent:"claude"|"codex", mode:"interactive"|"headless", session_id?:string}` —— 接受,`session_id` 取代 §8 的 `pid`。
|
|
43
|
-
- `{type:"agent.unavailable", request_id, agent, reason}` —— 接受,含改成點分隔的型別名(原 `agent_unavailable` 廢止)。
|
|
44
|
-
- `agent.launch` 請求形狀 `{request_id, mode, agent?, prompt, mcp?, cwd?}` 接受,深連結只帶 `agent=` 時配對後自動起一次 interactive CLI 的體驗也接受。
|
|
45
|
-
|
|
46
|
-
合約 §8 會依此重寫(由 FlowPix 改,改完重放 Downloads)。
|
|
47
|
-
|
|
48
|
-
## 其餘裁定:全部接受
|
|
49
|
-
|
|
50
|
-
| # | 我們的回覆 |
|
|
51
|
-
|---|---|
|
|
52
|
-
| D1 | 用 `KENAZ_AGENT_HUB_DEV`,**不需要**同時認第二個名字,我們沒有腳本寫死 `ALLOW_INSECURE_LOOPBACK`。`[::1]` 補上即可。 |
|
|
53
|
-
| D3 | 接受,我們永遠只送 `pair.denied`。 |
|
|
54
|
-
| D4 | 接受:頂層 `codex_logged_in` + `rate_limits:null`;`agents` / `dispatch` 我們忽略;`request_id` 為 uuid 我們忽略。 |
|
|
55
|
-
| D5/D6 | 接受,含 `input_url` alias 與 `model` 的 best-effort 語意。 |
|
|
56
|
-
| D7 | 接受,image 的 URL 見 B。 |
|
|
57
|
-
| D8 | 接受:`not_logged_in` 必做;`usage_limit_exceeded` best-effort、`resetsAt` 可為 `null`;新增 `paused` 我們會顯示「Kenaz 已暫停」。錯誤碼全集合會寫進合約 §7。 |
|
|
58
|
-
| D9/D10 | 見 C;`mcp=` 選填確認。 |
|
|
59
|
-
|
|
60
|
-
## 我們這邊還需要你們確認一件事(不卡合約,卡我們的實作)
|
|
61
|
-
|
|
62
|
-
**D. K8 啟動 CLI 時,Kenaz 對網站 MCP 的 `Authorization: Bearer <?>` 放的是什麼?** 我們的理解是 `pair.ok` 的 `session_credential`(M2 測試裡 `mcpServers.flowpix.headers.Authorization = "Bearer cred-abc-123"` 的 cred)。若是,FlowPix 的 `/mcp` 會改成接受 relay 發出的 session credential(目前只認本機單一 token `GAMEASSET_BRIDGE_AGENT_TOKEN`)。另外請確認 `agent.launch.mcp` 與深連結 `mcp=` 的值都是**單一 URL 字串**(Kenaz 自己組成 `{mcpServers:{flowpix:{type:"http",url,headers}}}`),而不是要網站送整份 config JSON。
|
|
63
|
-
|
|
64
|
-
## 接下來(FlowPix 側)
|
|
65
|
-
|
|
66
|
-
1. Kenaz 重啟帶 `KENAZ_AGENT_HUB_DEV=1` 後,用 9/8 報告的重現步驟實際配對,回報 relay frame log 裡 Kenaz 送出的每一則(`pair.begin` → `agent.status` → …)。
|
|
67
|
-
2. 更新 `bridge/CONTRACT.md`:§2 加選填 `mcp=`、§4 註明可忽略的額外欄位、§7 錯誤碼全集合、§8 重寫為請求語意 + 兩則公告、新 §10 `blob.presign`;三方實作(relay.mjs / agent_relay_client.py / backend RelaySiteClient)與 `test_contract_consistency.py` 同步。改完重放 Downloads。
|
|
68
|
-
3. 你們的驗收 1–4 我們在真實 Kenaz 上跑,結果附 frame log 回報。
|