kenaz 0.3.22 → 0.3.24
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 +11 -29
- package/core/.claude/hooks/worktree-remove.js +12 -38
- 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/dispatch-detail/worktree-subagent-mode.md +6 -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/.formation/tools/utils.js +5 -5
- package/core/.formation/tools/worktree-reclaim.js +73 -2
- package/core/.formation/tools/worktree-reclaim.test.js +113 -0
- 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 +6 -2
- 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 +56 -30
- 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 +13 -12
- package/core/dev/scripts/kenaz-session.js +3 -3
- package/core/dev/scripts/peer-identity-e2e.js +6 -4
- 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 +112 -0
- package/core/plugins/kenaz/guidance.md +1 -0
- package/core/plugins/kenaz/hooks/core-resolve.js +1 -1
- package/core/plugins/kenaz/hooks/hooks.json +9 -0
- package/core/plugins/kenaz/hooks/kenaz-hook.js +58 -4
- package/core/plugins/kenaz/hooks/worktree-guard.js +121 -0
- package/core/plugins/kenaz/hooks/worktree-guard.test.js +75 -0
- package/core/plugins/kenaz/scripts/kenaz.test.js +72 -5
- package/core/plugins/kenaz-peer/hooks/register.test.ts +14 -2
- package/core/plugins/kenaz-peer/hooks/register.ts +6 -1
- package/lib/cli.js +9 -5
- package/package.json +6 -6
- package/vendor/install-kenaz-cli.js +56 -30
- 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 回報。
|