claude-smart 0.2.45 → 0.2.46
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/.claude-plugin/marketplace.json +3 -3
- package/README.md +34 -5
- package/bin/claude-smart.js +295 -5
- package/package.json +22 -3
- package/plugin/.claude-plugin/plugin.json +4 -2
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/README.md +22 -2
- package/plugin/commands/clear-all.md +1 -0
- package/plugin/commands/dashboard.md +1 -0
- package/plugin/commands/learn.md +1 -0
- package/plugin/commands/restart.md +1 -0
- package/plugin/commands/show.md +1 -0
- package/plugin/dashboard/app/configure/env/page.tsx +40 -14
- package/plugin/dashboard/app/configure/server/page.tsx +51 -1
- package/plugin/dashboard/app/preferences/[id]/page.tsx +8 -8
- package/plugin/dashboard/app/skills/project/[id]/page.tsx +7 -3
- package/plugin/dashboard/app/skills/shared/[id]/page.tsx +10 -3
- package/plugin/dashboard/lib/claude-settings-file.ts +20 -10
- package/plugin/dashboard/lib/reflexio-client.ts +16 -0
- package/plugin/dashboard/lib/status.ts +10 -3
- package/plugin/dashboard/lib/types.ts +18 -6
- package/plugin/hooks/codex-hooks.json +0 -1
- package/plugin/opencode/assistant-buffer.ts +108 -0
- package/plugin/opencode/dist/assistant-buffer.js +96 -0
- package/plugin/opencode/dist/internal.js +12 -0
- package/plugin/opencode/dist/payload.js +85 -0
- package/plugin/opencode/dist/server.mjs +158 -0
- package/plugin/opencode/internal.ts +18 -0
- package/plugin/opencode/package.json +3 -0
- package/plugin/opencode/payload.ts +90 -0
- package/plugin/opencode/server.mts +174 -0
- package/plugin/opencode/tsconfig.json +13 -0
- package/plugin/pyproject.toml +20 -3
- package/plugin/scripts/_lib.sh +5 -1
- package/plugin/scripts/backend-service.sh +22 -2
- package/plugin/scripts/ensure-plugin-root.sh +4 -4
- package/plugin/scripts/hook_entry.sh +1 -1
- package/plugin/scripts/opencode-claude-compat +4 -0
- package/plugin/scripts/opencode-claude-compat.cmd +3 -0
- package/plugin/scripts/opencode-claude-compat.js +225 -0
- package/plugin/scripts/smart-install.sh +10 -8
- package/plugin/src/README.md +1 -1
- package/plugin/src/claude_smart/cli.py +304 -6
- package/plugin/src/claude_smart/env_config.py +12 -4
- package/plugin/src/claude_smart/events/session_start.py +26 -7
- package/plugin/src/claude_smart/events/stop.py +1 -1
- package/plugin/src/claude_smart/ids.py +1 -1
- package/plugin/src/claude_smart/reflexio_adapter.py +5 -5
- package/plugin/src/claude_smart/runtime.py +7 -1
- package/plugin/uv.lock +1 -1
- package/plugin/vendor/reflexio/.env.example +54 -30
- package/plugin/vendor/reflexio/README.md +14 -8
- package/plugin/vendor/reflexio/pyproject.toml +13 -1
- package/plugin/vendor/reflexio/reflexio/README.md +1 -0
- package/plugin/vendor/reflexio/reflexio/cli/README.md +9 -7
- package/plugin/vendor/reflexio/reflexio/cli/__main__.py +10 -1
- package/plugin/vendor/reflexio/reflexio/cli/bootstrap_config.py +22 -5
- package/plugin/vendor/reflexio/reflexio/cli/commands/interactions.py +34 -4
- package/plugin/vendor/reflexio/reflexio/cli/commands/profiles.py +12 -7
- package/plugin/vendor/reflexio/reflexio/cli/commands/services.py +13 -6
- package/plugin/vendor/reflexio/reflexio/cli/commands/setup_cmd.py +210 -50
- package/plugin/vendor/reflexio/reflexio/cli/commands/shortcuts.py +15 -2
- package/plugin/vendor/reflexio/reflexio/cli/env_loader.py +292 -22
- package/plugin/vendor/reflexio/reflexio/cli/log_format.py +29 -4
- package/plugin/vendor/reflexio/reflexio/cli/run_services.py +17 -8
- package/plugin/vendor/reflexio/reflexio/cli/stop_services.py +13 -10
- package/plugin/vendor/reflexio/reflexio/client/client.py +57 -13
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/README.md +135 -257
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/npm/openclaw-smart/bin/openclaw-smart.js +13 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/npm/openclaw-smart/package.json +15 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/README.md +38 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/index.ts +151 -110
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/openclaw.plugin.json +20 -10
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/package.json +28 -6
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/pyproject.toml +42 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/_lib.sh +371 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/backend-log-runner.sh +33 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/backend-service.sh +271 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/cli.sh +68 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/dashboard-open.sh +15 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/ensure-plugin-root.sh +84 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/hook_entry.sh +106 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/npm-cli.js +219 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/scripts/smart-install.sh +269 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/clear-all/SKILL.md +8 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/dashboard/SKILL.md +8 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/learn/SKILL.md +10 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/reflexio/SKILL.md +15 -44
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/restart/SKILL.md +6 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/skills/show/SKILL.md +8 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/cli.py +634 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/context_format.py +224 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/context_inject.py +79 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/__init__.py +0 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/after_tool_call.py +160 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/agent_end.py +187 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/before_prompt_build.py +69 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/before_tool_call.py +30 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/session_end.py +36 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/events/session_start.py +130 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/hook.py +131 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/ids.py +94 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/internal_call.py +75 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/oc_cite.py +196 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/optimizer_assistant.py +272 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/publish.py +96 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/query_compose.py +66 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/reflexio_adapter.py +336 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/runtime.py +47 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/stall_banner.py +61 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/src/openclaw_smart/state.py +323 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/__init__.py +0 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/integration/__init__.py +0 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/integration/test_e2e_session_loop.py +190 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/integration/test_publish_to_local_reflexio_integration.py +112 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/integration/test_recursion_guard_integration.py +86 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/integration/test_search_inject_integration.py +144 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_cli.py +184 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_after_tool_call.py +142 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_agent_end.py +233 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_before_prompt_build.py +116 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_before_tool_call.py +35 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_session_end.py +47 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_events_session_start.py +109 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_hook_dispatch.py +117 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_ids.py +41 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_internal_call.py +50 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_oc_cite.py +88 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_publish.py +48 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_query_compose.py +48 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_reflexio_adapter.py +188 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_runtime.py +41 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests/test_state.py +235 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests-ts/__mocks__/plugin-entry-stub.ts +6 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests-ts/test_npm_cli.test.ts +56 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tests-ts/test_shim_dispatch.test.ts +171 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/tsconfig.build.json +18 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/{tsconfig.json → plugin/tsconfig.json} +2 -2
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/uv.lock +3835 -0
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/vitest.config.ts +18 -0
- package/plugin/vendor/reflexio/reflexio/lib/_agent_playbook.py +238 -10
- package/plugin/vendor/reflexio/reflexio/lib/_config.py +11 -4
- package/plugin/vendor/reflexio/reflexio/lib/_generation.py +16 -5
- package/plugin/vendor/reflexio/reflexio/lib/_lineage_parity_readers.py +187 -0
- package/plugin/vendor/reflexio/reflexio/lib/_profiles.py +198 -6
- package/plugin/vendor/reflexio/reflexio/lib/_reflection.py +1 -1
- package/plugin/vendor/reflexio/reflexio/lib/_search.py +29 -20
- package/plugin/vendor/reflexio/reflexio/lib/_user_playbook.py +2 -1
- package/plugin/vendor/reflexio/reflexio/models/api_schema/domain/entities.py +127 -38
- package/plugin/vendor/reflexio/reflexio/models/api_schema/domain/enums.py +4 -0
- package/plugin/vendor/reflexio/reflexio/models/api_schema/eval_overview_schema.py +64 -41
- package/plugin/vendor/reflexio/reflexio/models/api_schema/internal_schema.py +19 -0
- package/plugin/vendor/reflexio/reflexio/models/api_schema/pending_tool_call_schema.py +12 -5
- package/plugin/vendor/reflexio/reflexio/models/api_schema/retriever_schema.py +52 -0
- package/plugin/vendor/reflexio/reflexio/models/api_schema/ui/converters.py +5 -1
- package/plugin/vendor/reflexio/reflexio/models/api_schema/ui/entities.py +5 -1
- package/plugin/vendor/reflexio/reflexio/models/config_schema.py +88 -7
- package/plugin/vendor/reflexio/reflexio/models/structured_output.py +148 -0
- package/plugin/vendor/reflexio/reflexio/server/OVERVIEW.md +3 -3
- package/plugin/vendor/reflexio/reflexio/server/README.md +45 -32
- package/plugin/vendor/reflexio/reflexio/server/__init__.py +29 -5
- package/plugin/vendor/reflexio/reflexio/server/__main__.py +2 -2
- package/plugin/vendor/reflexio/reflexio/server/_auth.py +65 -2
- package/plugin/vendor/reflexio/reflexio/server/api.py +734 -85
- package/plugin/vendor/reflexio/reflexio/server/api_endpoints/precondition_checks.py +7 -0
- package/plugin/vendor/reflexio/reflexio/server/api_endpoints/request_context.py +3 -1
- package/plugin/vendor/reflexio/reflexio/server/billing_meter.py +173 -0
- package/plugin/vendor/reflexio/reflexio/server/billing_signals.py +64 -0
- package/plugin/vendor/reflexio/reflexio/server/cache/reflexio_cache.py +46 -16
- package/plugin/vendor/reflexio/reflexio/server/env_utils.py +65 -0
- package/plugin/vendor/reflexio/reflexio/server/llm/embedding_service.py +19 -4
- package/plugin/vendor/reflexio/reflexio/server/llm/litellm_client.py +264 -77
- package/plugin/vendor/reflexio/reflexio/server/llm/llm_utils.py +69 -7
- package/plugin/vendor/reflexio/reflexio/server/llm/providers/embedding_service_provider.py +75 -16
- package/plugin/vendor/reflexio/reflexio/server/llm/providers/openclaw_provider.py +280 -0
- package/plugin/vendor/reflexio/reflexio/server/llm/token_accounting.py +48 -0
- package/plugin/vendor/reflexio/reflexio/server/llm/tools.py +107 -17
- package/plugin/vendor/reflexio/reflexio/server/operation_limiter.py +360 -4
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/memory_reflection/v1.6.0.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/memory_reflection/v1.7.0.prompt.md +85 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_aggregation/v2.2.0.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_aggregation/v2.3.0.prompt.md +253 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_consolidation/v2.3.2.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_consolidation/v2.3.3.prompt.md +74 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_context/v4.2.3.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_context/v4.3.0.prompt.md +266 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_context/v4.4.0.prompt.md +266 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_context_expert/v3.3.0.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_context_expert/v3.4.0.prompt.md +137 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_main/v1.2.0.prompt.md +1 -1
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/playbook_extraction_main/v1.3.0.prompt.md +34 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/profile_update_instruction_start/v1.0.0.prompt.md +5 -12
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/profile_update_instruction_start/v1.1.0.prompt.md +5 -12
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/profile_update_instruction_start/v1.2.0.prompt.md +155 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_bank/tagging/v1.0.0.prompt.md +23 -0
- package/plugin/vendor/reflexio/reflexio/server/prompt/prompt_manager.py +89 -32
- package/plugin/vendor/reflexio/reflexio/server/services/README.md +26 -11
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/README.md +22 -0
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/__init__.py +1 -0
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/agent_success_evaluation_constants.py +4 -2
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/agent_success_evaluation_utils.py +1 -0
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/components/__init__.py +7 -0
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/{agent_success_evaluator.py → components/evaluator.py} +3 -16
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/regen_jobs.py +28 -72
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/{group_evaluation_runner.py → runner.py} +12 -10
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/{delayed_group_evaluator.py → scheduler.py} +10 -2
- package/plugin/vendor/reflexio/reflexio/server/services/agent_success_evaluation/{agent_success_evaluation_service.py → service.py} +36 -1
- package/plugin/vendor/reflexio/reflexio/server/services/base_generation_service.py +160 -0
- package/plugin/vendor/reflexio/reflexio/server/services/configurator/base_configurator.py +5 -0
- package/plugin/vendor/reflexio/reflexio/server/services/deduplication_utils.py +1 -1
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/README.md +9 -0
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/components/__init__.py +0 -0
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/{rule_attribution.py → components/rule_attribution.py} +10 -9
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/eval_sampler.py +15 -24
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/service.py +238 -164
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/README.md +31 -0
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/outcome.py +13 -3
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/pending_tool_call_dispatch.py +3 -2
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/resumable_agent.py +32 -118
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/resume_worker.py +39 -16
- package/plugin/vendor/reflexio/reflexio/server/services/generation_service.py +105 -23
- package/plugin/vendor/reflexio/reflexio/server/services/lineage/__init__.py +0 -0
- package/plugin/vendor/reflexio/reflexio/server/services/lineage/gc_scheduler.py +193 -0
- package/plugin/vendor/reflexio/reflexio/server/services/lineage/resolve.py +98 -0
- package/plugin/vendor/reflexio/reflexio/server/services/operation_state_utils.py +26 -0
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/README.md +11 -12
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/components/__init__.py +5 -0
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/{playbook_aggregator.py → components/aggregator.py} +316 -178
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/{playbook_consolidator.py → components/consolidator.py} +168 -62
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/{playbook_extractor.py → components/extractor.py} +5 -1
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/playbook_edit_apply.py +74 -0
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/playbook_service_utils.py +33 -3
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/{playbook_generation_service.py → service.py} +121 -19
- package/plugin/vendor/reflexio/reflexio/server/services/playbook/user_detail_stripping.py +84 -0
- package/plugin/vendor/reflexio/reflexio/server/services/playbook_optimizer/README.md +10 -0
- package/plugin/vendor/reflexio/reflexio/server/services/playbook_optimizer/models.py +2 -1
- package/plugin/vendor/reflexio/reflexio/server/services/playbook_optimizer/optimizer.py +178 -30
- package/plugin/vendor/reflexio/reflexio/server/services/pre_retrieval/README.md +9 -0
- package/plugin/vendor/reflexio/reflexio/server/services/profile/components/__init__.py +17 -0
- package/plugin/vendor/reflexio/reflexio/server/services/profile/{profile_deduplicator.py → components/consolidator.py} +7 -6
- package/plugin/vendor/reflexio/reflexio/server/services/profile/{profile_extractor.py → components/extractor.py} +30 -22
- package/plugin/vendor/reflexio/reflexio/server/services/profile/profile_generation_service_utils.py +6 -13
- package/plugin/vendor/reflexio/reflexio/server/services/profile/{profile_generation_service.py → service.py} +32 -50
- package/plugin/vendor/reflexio/reflexio/server/services/reflection/__init__.py +4 -8
- package/plugin/vendor/reflexio/reflexio/server/services/reflection/components/__init__.py +7 -0
- package/plugin/vendor/reflexio/reflexio/server/services/reflection/reflection_service_utils.py +12 -1
- package/plugin/vendor/reflexio/reflexio/server/services/reflection/{reflection_service.py → service.py} +36 -16
- package/plugin/vendor/reflexio/reflexio/server/services/retrieval/relevance_floor.py +83 -6
- package/plugin/vendor/reflexio/reflexio/server/services/service_utils.py +36 -1
- package/plugin/vendor/reflexio/reflexio/server/services/shadow_comparison/README.md +8 -0
- package/plugin/vendor/reflexio/reflexio/server/services/shadow_comparison/outcome.py +1 -2
- package/plugin/vendor/reflexio/reflexio/server/services/storage/error.py +27 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/retention.py +9 -9
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/__init__.py +2 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_agent_run.py +4 -1
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_base.py +642 -197
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_extras.py +61 -104
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_lineage.py +628 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_operations.py +38 -6
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_playbook.py +978 -184
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_profiles.py +519 -128
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_requests.py +77 -3
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_shadow_verdicts.py +23 -9
- package/plugin/vendor/reflexio/reflexio/server/services/storage/sqlite_storage/_stall_state.py +5 -2
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/__init__.py +131 -20
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_agent_run.py +2 -8
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_base.py +5 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_extras.py +36 -53
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_lineage.py +215 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_operations.py +20 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_playbook.py +243 -7
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_profiles.py +121 -1
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_requests.py +60 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_retrieval_log.py +51 -0
- package/plugin/vendor/reflexio/reflexio/server/services/storage/storage_base/_shadow_verdicts.py +17 -0
- package/plugin/vendor/reflexio/reflexio/server/services/tagging/README.md +8 -0
- package/plugin/vendor/reflexio/reflexio/server/services/tagging/__init__.py +1 -0
- package/plugin/vendor/reflexio/reflexio/server/services/tagging/service.py +200 -0
- package/plugin/vendor/reflexio/reflexio/server/services/tagging/tagging_scheduler.py +149 -0
- package/plugin/vendor/reflexio/reflexio/server/services/unified_search_service.py +229 -32
- package/plugin/vendor/reflexio/reflexio/server/site_var/README.md +2 -1
- package/plugin/vendor/reflexio/reflexio/server/site_var/feature_flags.py +120 -1
- package/plugin/vendor/reflexio/reflexio/server/site_var/site_var_sources/feature_flags.json +4 -0
- package/plugin/vendor/reflexio/reflexio/server/site_var/site_var_sources/search_settings.json +5 -0
- package/plugin/vendor/reflexio/reflexio/server/tracing.py +30 -0
- package/plugin/vendor/reflexio/reflexio/server/usage_metrics.py +18 -0
- package/plugin/vendor/reflexio/reflexio/test_support/llm_mock.py +61 -26
- package/plugin/vendor/reflexio/reflexio/test_support/llm_model_registry.py +41 -4
- package/scripts/setup-claude-smart.sh +8 -3
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/TESTING.md +0 -517
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/hook/handler.js +0 -473
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/package-lock.json +0 -2156
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/package.json +0 -18
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/hook/handler.ts +0 -241
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/hook/setup.ts +0 -140
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/lib/publish.ts +0 -113
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/lib/search.ts +0 -52
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/lib/server.ts +0 -103
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/lib/sqlite-buffer.ts +0 -156
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/lib/user-id.ts +0 -134
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/plugin/rules/reflexio.md +0 -24
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/publish_clawhub.sh +0 -278
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/references/HOOK.md +0 -164
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/scripts/install.sh +0 -36
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/scripts/uninstall.sh +0 -35
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/publish.test.ts +0 -27
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/search.test.ts +0 -31
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/server.test.ts +0 -42
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/setup.test.ts +0 -49
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/sqlite-buffer.test.ts +0 -91
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/tests/user-id.test.ts +0 -50
- package/plugin/vendor/reflexio/reflexio/integrations/openclaw/vitest.config.ts +0 -13
- package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/group_aggregation.py +0 -192
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/invariants.py +0 -303
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/plan.py +0 -138
- package/plugin/vendor/reflexio/reflexio/server/services/extraction/tools.py +0 -1125
- /package/plugin/vendor/reflexio/reflexio/integrations/{__init__.py → openclaw/plugin/src/openclaw_smart/__init__.py} +0 -0
- /package/plugin/vendor/reflexio/reflexio/integrations/openclaw/{types → plugin/types}/openclaw.d.ts +0 -0
- /package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/{distribution.py → components/distribution.py} +0 -0
- /package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/{hero_state.py → components/hero_state.py} +0 -0
- /package/plugin/vendor/reflexio/reflexio/server/services/evaluation_overview/{shadow_aggregation.py → components/shadow_aggregation.py} +0 -0
- /package/plugin/vendor/reflexio/reflexio/server/services/reflection/{reflection_extractor.py → components/extractor.py} +0 -0
|
@@ -12,6 +12,7 @@ from urllib.parse import urljoin
|
|
|
12
12
|
|
|
13
13
|
import aiohttp
|
|
14
14
|
import requests
|
|
15
|
+
from pydantic import ConfigDict
|
|
15
16
|
|
|
16
17
|
from reflexio.defaults import DEFAULT_AGENT_VERSION
|
|
17
18
|
from reflexio.models.api_schema.retriever_schema import (
|
|
@@ -119,6 +120,10 @@ from reflexio.models.config_schema import Config
|
|
|
119
120
|
|
|
120
121
|
from .cache import InMemoryCache
|
|
121
122
|
|
|
123
|
+
|
|
124
|
+
class _ClientConfigPayload(Config):
|
|
125
|
+
model_config = ConfigDict(extra="allow")
|
|
126
|
+
|
|
122
127
|
T = TypeVar("T")
|
|
123
128
|
|
|
124
129
|
logger = logging.getLogger(__name__)
|
|
@@ -150,12 +155,12 @@ class ReflexioClient:
|
|
|
150
155
|
|
|
151
156
|
Args:
|
|
152
157
|
api_key (str): API key for authentication. Falls back to REFLEXIO_API_KEY env var.
|
|
153
|
-
url_endpoint (str): Base URL for the API. Falls back to
|
|
158
|
+
url_endpoint (str): Base URL for the API. Falls back to REFLEXIO_URL env var,
|
|
154
159
|
then to the default backend URL.
|
|
155
160
|
timeout (int): Default request timeout in seconds (default 300)
|
|
156
161
|
"""
|
|
157
162
|
self.base_url = (
|
|
158
|
-
url_endpoint or os.environ.get("
|
|
163
|
+
url_endpoint or os.environ.get("REFLEXIO_URL", "") or BACKEND_URL
|
|
159
164
|
)
|
|
160
165
|
self.api_key = api_key or os.environ.get("REFLEXIO_API_KEY", "")
|
|
161
166
|
self.timeout = timeout
|
|
@@ -391,8 +396,8 @@ class ReflexioClient:
|
|
|
391
396
|
wait_for_response: bool = False,
|
|
392
397
|
skip_aggregation: bool = False,
|
|
393
398
|
force_extraction: bool = False,
|
|
399
|
+
evaluation_only: bool = False,
|
|
394
400
|
override_learning_stall: bool = False,
|
|
395
|
-
metadata: dict[str, Any] | None = None,
|
|
396
401
|
) -> PublishUserInteractionResponse:
|
|
397
402
|
"""Publish user interactions.
|
|
398
403
|
|
|
@@ -418,7 +423,7 @@ class ReflexioClient:
|
|
|
418
423
|
interactions: List of interaction data.
|
|
419
424
|
source: The source of the interaction.
|
|
420
425
|
agent_version: The agent version.
|
|
421
|
-
session_id:
|
|
426
|
+
session_id: Required non-empty session ID for grouping requests.
|
|
422
427
|
wait_for_response: If True, the **server** waits for
|
|
423
428
|
extraction to complete before returning (longer HTTP
|
|
424
429
|
call, response includes real profile/playbook counts).
|
|
@@ -430,15 +435,13 @@ class ReflexioClient:
|
|
|
430
435
|
force_extraction: If True, bypass all extraction gates
|
|
431
436
|
(stride_size, cheap pre-filter, LLM should_run) and
|
|
432
437
|
always run extractors.
|
|
438
|
+
evaluation_only: If True, store the interaction for
|
|
439
|
+
session-level evaluation only and permanently exclude it
|
|
440
|
+
from profile/playbook extraction.
|
|
433
441
|
override_learning_stall: If True, run extraction even when
|
|
434
442
|
Reflexio has recorded a provider auth/billing stall. Keep
|
|
435
443
|
this False for automatic hook publishes; use it only for an
|
|
436
444
|
explicit retry after reauth or limit reset.
|
|
437
|
-
metadata: Optional per-request annotations stamped by the
|
|
438
|
-
customer. Mirrored onto the stored ``Request`` row so the
|
|
439
|
-
eval pipeline can read them back. Conventional key:
|
|
440
|
-
``reflexio_retrieval_enabled`` (bool) for F2 group
|
|
441
|
-
assignment. Values must be JSON-encodable.
|
|
442
445
|
|
|
443
446
|
Returns:
|
|
444
447
|
PublishUserInteractionResponse: Server response. In
|
|
@@ -448,6 +451,9 @@ class ReflexioClient:
|
|
|
448
451
|
mode it includes request_id, storage routing, and
|
|
449
452
|
deltas.
|
|
450
453
|
"""
|
|
454
|
+
if session_id is None or not session_id.strip():
|
|
455
|
+
raise ValueError("session_id is required and cannot be empty")
|
|
456
|
+
|
|
451
457
|
interaction_data_list = [
|
|
452
458
|
(
|
|
453
459
|
InteractionData(**interaction_request)
|
|
@@ -464,8 +470,8 @@ class ReflexioClient:
|
|
|
464
470
|
agent_version=agent_version,
|
|
465
471
|
skip_aggregation=skip_aggregation,
|
|
466
472
|
force_extraction=force_extraction,
|
|
473
|
+
evaluation_only=evaluation_only,
|
|
467
474
|
override_learning_stall=override_learning_stall,
|
|
468
|
-
metadata=metadata or {},
|
|
469
475
|
)
|
|
470
476
|
result = self._publish_interaction_sync(
|
|
471
477
|
request, wait_for_response=wait_for_response
|
|
@@ -534,6 +540,7 @@ class ReflexioClient:
|
|
|
534
540
|
source: str | None = None,
|
|
535
541
|
custom_feature: str | None = None,
|
|
536
542
|
extractor_name: str | None = None,
|
|
543
|
+
tags: list[str] | None = None,
|
|
537
544
|
threshold: float | None = None,
|
|
538
545
|
enable_reformulation: bool | None = None,
|
|
539
546
|
search_mode: SearchMode | None = None,
|
|
@@ -551,6 +558,7 @@ class ReflexioClient:
|
|
|
551
558
|
source (Optional[str]): Filter by source
|
|
552
559
|
custom_feature (Optional[str]): Filter by custom feature
|
|
553
560
|
extractor_name (Optional[str]): Deprecated compatibility field. Accepted but ignored.
|
|
561
|
+
tags (Optional[list[str]]): Match profiles having any of these tags.
|
|
554
562
|
threshold (Optional[float]): Similarity threshold (default: 0.7)
|
|
555
563
|
enable_reformulation (Optional[bool]): Enable LLM query reformulation (default: False)
|
|
556
564
|
|
|
@@ -569,6 +577,7 @@ class ReflexioClient:
|
|
|
569
577
|
source=source,
|
|
570
578
|
custom_feature=custom_feature,
|
|
571
579
|
extractor_name=extractor_name,
|
|
580
|
+
tags=tags,
|
|
572
581
|
threshold=threshold,
|
|
573
582
|
enable_reformulation=enable_reformulation,
|
|
574
583
|
search_mode=search_mode,
|
|
@@ -592,6 +601,7 @@ class ReflexioClient:
|
|
|
592
601
|
source: str | None = None,
|
|
593
602
|
custom_feature: str | None = None,
|
|
594
603
|
extractor_name: str | None = None,
|
|
604
|
+
tags: list[str] | None = None,
|
|
595
605
|
threshold: float | None = None,
|
|
596
606
|
enable_reformulation: bool | None = None,
|
|
597
607
|
search_mode: SearchMode | None = None,
|
|
@@ -614,6 +624,7 @@ class ReflexioClient:
|
|
|
614
624
|
source=source,
|
|
615
625
|
custom_feature=custom_feature,
|
|
616
626
|
extractor_name=extractor_name,
|
|
627
|
+
tags=tags,
|
|
617
628
|
threshold=threshold,
|
|
618
629
|
enable_reformulation=enable_reformulation,
|
|
619
630
|
search_mode=search_mode,
|
|
@@ -690,6 +701,7 @@ class ReflexioClient:
|
|
|
690
701
|
start_time: datetime | None = None,
|
|
691
702
|
end_time: datetime | None = None,
|
|
692
703
|
status_filter: list[Status | None] | None = None,
|
|
704
|
+
tags: list[str] | None = None,
|
|
693
705
|
top_k: int | None = None,
|
|
694
706
|
threshold: float | None = None,
|
|
695
707
|
enable_reformulation: bool | None = None,
|
|
@@ -706,6 +718,7 @@ class ReflexioClient:
|
|
|
706
718
|
start_time (Optional[datetime]): Start time for created_at filter
|
|
707
719
|
end_time (Optional[datetime]): End time for created_at filter
|
|
708
720
|
status_filter (Optional[list[Optional[Status]]]): Filter by status (None for CURRENT, PENDING, ARCHIVED)
|
|
721
|
+
tags (Optional[list[str]]): Match playbooks having any of these tags.
|
|
709
722
|
top_k (Optional[int]): Maximum number of results to return (default: 10)
|
|
710
723
|
threshold (Optional[float]): Similarity threshold for vector search (default: 0.4)
|
|
711
724
|
enable_reformulation (Optional[bool]): Enable LLM query reformulation (default: False)
|
|
@@ -723,6 +736,7 @@ class ReflexioClient:
|
|
|
723
736
|
start_time=start_time,
|
|
724
737
|
end_time=end_time,
|
|
725
738
|
status_filter=status_filter,
|
|
739
|
+
tags=tags,
|
|
726
740
|
top_k=top_k,
|
|
727
741
|
threshold=threshold,
|
|
728
742
|
enable_reformulation=enable_reformulation,
|
|
@@ -744,6 +758,7 @@ class ReflexioClient:
|
|
|
744
758
|
end_time: datetime | None = None,
|
|
745
759
|
status_filter: list[Status | None] | None = None,
|
|
746
760
|
playbook_status_filter: PlaybookStatus | None = None,
|
|
761
|
+
tags: list[str] | None = None,
|
|
747
762
|
top_k: int | None = None,
|
|
748
763
|
threshold: float | None = None,
|
|
749
764
|
enable_reformulation: bool | None = None,
|
|
@@ -760,6 +775,7 @@ class ReflexioClient:
|
|
|
760
775
|
end_time (Optional[datetime]): End time for created_at filter
|
|
761
776
|
status_filter (Optional[list[Optional[Status]]]): Filter by status (None for CURRENT, PENDING, ARCHIVED)
|
|
762
777
|
playbook_status_filter (Optional[PlaybookStatus]): Filter by playbook status (PENDING, APPROVED, REJECTED)
|
|
778
|
+
tags (Optional[list[str]]): Match playbooks having any of these tags.
|
|
763
779
|
top_k (Optional[int]): Maximum number of results to return (default: 10)
|
|
764
780
|
threshold (Optional[float]): Similarity threshold for vector search (default: 0.4)
|
|
765
781
|
enable_reformulation (Optional[bool]): Enable LLM query reformulation (default: False)
|
|
@@ -777,6 +793,7 @@ class ReflexioClient:
|
|
|
777
793
|
end_time=end_time,
|
|
778
794
|
status_filter=status_filter,
|
|
779
795
|
playbook_status_filter=playbook_status_filter,
|
|
796
|
+
tags=tags,
|
|
780
797
|
top_k=top_k,
|
|
781
798
|
threshold=threshold,
|
|
782
799
|
enable_reformulation=enable_reformulation,
|
|
@@ -1140,6 +1157,7 @@ class ReflexioClient:
|
|
|
1140
1157
|
end_time: datetime | None = None,
|
|
1141
1158
|
top_k: int | None = None,
|
|
1142
1159
|
status_filter: list[Status | str | None] | None = None,
|
|
1160
|
+
tags: list[str] | None = None,
|
|
1143
1161
|
) -> GetProfilesViewResponse:
|
|
1144
1162
|
"""Get user profiles.
|
|
1145
1163
|
|
|
@@ -1151,6 +1169,7 @@ class ReflexioClient:
|
|
|
1151
1169
|
end_time (Optional[datetime]): Filter by end time
|
|
1152
1170
|
top_k (Optional[int]): Maximum number of results to return (default: 30)
|
|
1153
1171
|
status_filter (Optional[list[Optional[Union[Status, str]]]]): Filter by profile status. Accepts Status enum or string values (e.g., "archived", "pending").
|
|
1172
|
+
tags (Optional[list[str]]): Match profiles having any of these tags.
|
|
1154
1173
|
|
|
1155
1174
|
Returns:
|
|
1156
1175
|
GetProfilesViewResponse: Response containing list of profiles
|
|
@@ -1175,6 +1194,7 @@ class ReflexioClient:
|
|
|
1175
1194
|
end_time=end_time,
|
|
1176
1195
|
top_k=top_k,
|
|
1177
1196
|
status_filter=converted_status_filter,
|
|
1197
|
+
tags=tags,
|
|
1178
1198
|
)
|
|
1179
1199
|
|
|
1180
1200
|
# Check cache if not forcing refresh
|
|
@@ -1186,6 +1206,7 @@ class ReflexioClient:
|
|
|
1186
1206
|
end_time=req.end_time,
|
|
1187
1207
|
top_k=req.top_k,
|
|
1188
1208
|
status_filter=req.status_filter,
|
|
1209
|
+
tags=req.tags,
|
|
1189
1210
|
)
|
|
1190
1211
|
if cached_result is not None:
|
|
1191
1212
|
return cached_result
|
|
@@ -1207,6 +1228,7 @@ class ReflexioClient:
|
|
|
1207
1228
|
end_time=req.end_time,
|
|
1208
1229
|
top_k=req.top_k,
|
|
1209
1230
|
status_filter=req.status_filter,
|
|
1231
|
+
tags=req.tags,
|
|
1210
1232
|
)
|
|
1211
1233
|
|
|
1212
1234
|
return result
|
|
@@ -1265,7 +1287,10 @@ class ReflexioClient:
|
|
|
1265
1287
|
Returns:
|
|
1266
1288
|
dict: Response containing success status and message
|
|
1267
1289
|
"""
|
|
1268
|
-
config = self._convert_to_model(
|
|
1290
|
+
config = self._convert_to_model( # type: ignore[reportAssignmentType]
|
|
1291
|
+
config,
|
|
1292
|
+
_ClientConfigPayload,
|
|
1293
|
+
)
|
|
1269
1294
|
return self._make_request(
|
|
1270
1295
|
"POST",
|
|
1271
1296
|
"/api/set_config",
|
|
@@ -1287,7 +1312,7 @@ class ReflexioClient:
|
|
|
1287
1312
|
|
|
1288
1313
|
Args:
|
|
1289
1314
|
partial: Top-level fields to overlay on the existing config.
|
|
1290
|
-
Unknown keys are
|
|
1315
|
+
Unknown keys are rejected server-side.
|
|
1291
1316
|
|
|
1292
1317
|
Returns:
|
|
1293
1318
|
dict: ``{"success": bool, "msg": str}`` from the server.
|
|
@@ -1311,7 +1336,7 @@ class ReflexioClient:
|
|
|
1311
1336
|
"GET",
|
|
1312
1337
|
"/api/get_config",
|
|
1313
1338
|
)
|
|
1314
|
-
return
|
|
1339
|
+
return _ClientConfigPayload(**response)
|
|
1315
1340
|
|
|
1316
1341
|
def invalidate_cache(self, org_id: str | None = None) -> dict:
|
|
1317
1342
|
"""Explicitly evict the server-side per-org Reflexio cache entry.
|
|
@@ -1353,6 +1378,7 @@ class ReflexioClient:
|
|
|
1353
1378
|
playbook_name: str | None = None,
|
|
1354
1379
|
agent_version: str | None = None,
|
|
1355
1380
|
status_filter: list[Status | None] | None = None,
|
|
1381
|
+
tags: list[str] | None = None,
|
|
1356
1382
|
) -> GetUserPlaybooksViewResponse:
|
|
1357
1383
|
"""Get user playbooks.
|
|
1358
1384
|
|
|
@@ -1363,6 +1389,7 @@ class ReflexioClient:
|
|
|
1363
1389
|
playbook_name (Optional[str]): Filter by playbook name
|
|
1364
1390
|
agent_version (Optional[str]): Filter by agent version
|
|
1365
1391
|
status_filter (Optional[list[Optional[Status]]]): Filter by status
|
|
1392
|
+
tags (Optional[list[str]]): Match playbooks having any of these tags.
|
|
1366
1393
|
|
|
1367
1394
|
Returns:
|
|
1368
1395
|
GetUserPlaybooksViewResponse: Response containing user playbooks
|
|
@@ -1375,6 +1402,7 @@ class ReflexioClient:
|
|
|
1375
1402
|
playbook_name=playbook_name,
|
|
1376
1403
|
agent_version=agent_version,
|
|
1377
1404
|
status_filter=status_filter,
|
|
1405
|
+
tags=tags,
|
|
1378
1406
|
)
|
|
1379
1407
|
response = self._make_request(
|
|
1380
1408
|
"POST",
|
|
@@ -1628,6 +1656,7 @@ class ReflexioClient:
|
|
|
1628
1656
|
agent_version: str | None = None,
|
|
1629
1657
|
status_filter: list[Status | None] | None = None,
|
|
1630
1658
|
playbook_status_filter: PlaybookStatus | None = None,
|
|
1659
|
+
tags: list[str] | None = None,
|
|
1631
1660
|
) -> GetAgentPlaybooksViewResponse:
|
|
1632
1661
|
"""Get agent playbooks.
|
|
1633
1662
|
|
|
@@ -1639,6 +1668,7 @@ class ReflexioClient:
|
|
|
1639
1668
|
agent_version (Optional[str]): Filter by agent version
|
|
1640
1669
|
status_filter (Optional[list[Optional[Status]]]): Filter by status
|
|
1641
1670
|
playbook_status_filter (Optional[PlaybookStatus]): Filter by playbook status (default: APPROVED)
|
|
1671
|
+
tags (Optional[list[str]]): Match playbooks having any of these tags.
|
|
1642
1672
|
|
|
1643
1673
|
Returns:
|
|
1644
1674
|
GetAgentPlaybooksViewResponse: Response containing agent playbooks
|
|
@@ -1651,6 +1681,7 @@ class ReflexioClient:
|
|
|
1651
1681
|
agent_version=agent_version,
|
|
1652
1682
|
status_filter=status_filter,
|
|
1653
1683
|
playbook_status_filter=playbook_status_filter,
|
|
1684
|
+
tags=tags,
|
|
1654
1685
|
)
|
|
1655
1686
|
|
|
1656
1687
|
# Check cache if not forcing refresh
|
|
@@ -1659,8 +1690,10 @@ class ReflexioClient:
|
|
|
1659
1690
|
"get_agent_playbooks",
|
|
1660
1691
|
limit=req.limit,
|
|
1661
1692
|
playbook_name=req.playbook_name,
|
|
1693
|
+
agent_version=req.agent_version,
|
|
1662
1694
|
status_filter=req.status_filter,
|
|
1663
1695
|
playbook_status_filter=req.playbook_status_filter,
|
|
1696
|
+
tags=req.tags,
|
|
1664
1697
|
)
|
|
1665
1698
|
if cached_result is not None:
|
|
1666
1699
|
return cached_result
|
|
@@ -1679,8 +1712,10 @@ class ReflexioClient:
|
|
|
1679
1712
|
result,
|
|
1680
1713
|
limit=req.limit,
|
|
1681
1714
|
playbook_name=req.playbook_name,
|
|
1715
|
+
agent_version=req.agent_version,
|
|
1682
1716
|
status_filter=req.status_filter,
|
|
1683
1717
|
playbook_status_filter=req.playbook_status_filter,
|
|
1718
|
+
tags=req.tags,
|
|
1684
1719
|
)
|
|
1685
1720
|
|
|
1686
1721
|
return result
|
|
@@ -2212,6 +2247,9 @@ class ReflexioClient:
|
|
|
2212
2247
|
enable_agent_answer: bool | None = None,
|
|
2213
2248
|
conversation_history: list[ConversationTurn] | list[dict] | None = None,
|
|
2214
2249
|
search_mode: SearchMode | str | None = None,
|
|
2250
|
+
request_id: str | None = None,
|
|
2251
|
+
session_id: str | None = None,
|
|
2252
|
+
interaction_id: int | None = None,
|
|
2215
2253
|
) -> UnifiedSearchViewResponse:
|
|
2216
2254
|
"""Search across all entity types (profiles, agent playbooks, user playbooks).
|
|
2217
2255
|
|
|
@@ -2235,6 +2273,9 @@ class ReflexioClient:
|
|
|
2235
2273
|
the configured search backend supports it (default: False).
|
|
2236
2274
|
conversation_history (Optional[list[ConversationTurn] | list[dict]]): Prior conversation turns for context-aware query reformulation. Accepts ConversationTurn objects or dicts with "role" and "content" keys.
|
|
2237
2275
|
search_mode (Optional[SearchMode | str]): Search mode to use. Accepts SearchMode enum or string value ("vector", "fts", "hybrid").
|
|
2276
|
+
request_id (Optional[str]): Caller correlation id for the search turn.
|
|
2277
|
+
session_id (Optional[str]): Caller session id for the search turn.
|
|
2278
|
+
interaction_id (Optional[int]): Caller interaction id for the search turn.
|
|
2238
2279
|
|
|
2239
2280
|
Returns:
|
|
2240
2281
|
UnifiedSearchViewResponse: Combined search results from all entity types
|
|
@@ -2254,6 +2295,9 @@ class ReflexioClient:
|
|
|
2254
2295
|
enable_agent_answer=enable_agent_answer,
|
|
2255
2296
|
conversation_history=conversation_history,
|
|
2256
2297
|
search_mode=search_mode,
|
|
2298
|
+
request_id=request_id,
|
|
2299
|
+
session_id=session_id,
|
|
2300
|
+
interaction_id=interaction_id,
|
|
2257
2301
|
)
|
|
2258
2302
|
response = self._make_request("POST", "/api/search", json=req.model_dump())
|
|
2259
2303
|
return UnifiedSearchViewResponse(**response)
|