Class: Muxi::FormationClient
- Inherits:
-
Object
- Object
- Muxi::FormationClient
- Defined in:
- lib/muxi/formation_client.rb
Instance Method Summary collapse
- #add_memory(user_id, mem_type, detail) ⇒ Object
- #audio_chat(payload, user_id: "") ⇒ Object
- #audio_chat_stream(payload, user_id: "", &block) ⇒ Object
- #cancel_request(request_id, user_id) ⇒ Object
-
#chat(payload, user_id: "") ⇒ Object
Chat.
- #chat_stream(payload, user_id: "", &block) ⇒ Object
- #clear_all_buffers ⇒ Object
- #clear_audit_log ⇒ Object
- #clear_session_buffer(user_id, session_id) ⇒ Object
- #clear_user_buffer(user_id) ⇒ Object
- #create_credential(user_id, payload) ⇒ Object
- #create_scheduler_job(job_type, schedule, message, user_id) ⇒ Object
- #delete_credential(credential_id, user_id) ⇒ Object
- #delete_memory(user_id, memory_id) ⇒ Object
- #delete_scheduler_job(job_id) ⇒ Object
- #delete_secret(key) ⇒ Object
- #fire_trigger(name, data, async_mode: false, user_id: "") ⇒ Object
- #get_a2a_config ⇒ Object
- #get_agent(agent_id) ⇒ Object
-
#get_agents ⇒ Object
Agents / MCP.
-
#get_async_config ⇒ Object
Async / logging / a2a.
- #get_audit_log ⇒ Object
- #get_buffer_stats ⇒ Object
- #get_config ⇒ Object
- #get_credential(credential_id, user_id) ⇒ Object
- #get_formation_info ⇒ Object
- #get_llm_settings ⇒ Object
- #get_logging_config ⇒ Object
- #get_logging_destinations ⇒ Object
- #get_mcp_server(server_id) ⇒ Object
- #get_mcp_servers ⇒ Object
- #get_mcp_tools ⇒ Object
- #get_memories(user_id, limit: nil) ⇒ Object
-
#get_memory_config ⇒ Object
Memory.
-
#get_overlord_config ⇒ Object
Overlord / LLM.
- #get_overlord_soul ⇒ Object
- #get_request_status(request_id, user_id) ⇒ Object
- #get_requests(user_id) ⇒ Object
-
#get_scheduler_config ⇒ Object
Scheduler.
- #get_scheduler_job(job_id) ⇒ Object
- #get_scheduler_jobs(user_id) ⇒ Object
- #get_secret(key) ⇒ Object
-
#get_secrets ⇒ Object
Secrets.
- #get_session(session_id, user_id) ⇒ Object
- #get_session_messages(session_id, user_id) ⇒ Object
-
#get_sessions(user_id, limit: nil) ⇒ Object
Sessions / requests.
- #get_sop(name) ⇒ Object
- #get_sops ⇒ Object
- #get_status ⇒ Object
- #get_trigger(name) ⇒ Object
-
#get_triggers ⇒ Object
Triggers / SOP / Audit.
- #get_user_buffer(user_id) ⇒ Object
- #get_user_identifiers_for_user(user_id) ⇒ Object
-
#health ⇒ Object
Health / status.
-
#initialize(config = nil, **kwargs) ⇒ FormationClient
constructor
A new instance of FormationClient.
- #link_user_identifier(muxi_user_id, identifiers) ⇒ Object
-
#list_credential_services ⇒ Object
Credentials / identifiers.
- #list_credentials(user_id) ⇒ Object
- #pause_scheduler_job(job_id) ⇒ Object
-
#resolve_user(identifier, create_user: false) ⇒ Object
Resolve user.
- #restore_session(session_id, user_id, messages) ⇒ Object
- #resume_scheduler_job(job_id) ⇒ Object
- #set_secret(key, value) ⇒ Object
-
#stream_events(user_id, &block) ⇒ Object
Streaming.
- #stream_logs(filters = nil, &block) ⇒ Object
- #stream_request(user_id, session_id, request_id, &block) ⇒ Object
- #unlink_user_identifier(identifier) ⇒ Object
- #update_scheduler_job(job_id, **updates) ⇒ Object
Constructor Details
#initialize(config = nil, **kwargs) ⇒ FormationClient
Returns a new instance of FormationClient.
330 331 332 333 334 335 336 337 338 339 340 341 342 343 |
# File 'lib/muxi/formation_client.rb', line 330 def initialize(config = nil, **kwargs) cfg = config || FormationConfig.new(**kwargs) base_url = build_base_url(cfg) @transport = FormationTransport.new( base_url: base_url, admin_key: cfg.admin_key, client_key: cfg.client_key, timeout: cfg.timeout, max_retries: cfg.max_retries, debug: cfg.debug, logger: cfg.logger, app: cfg._app ) end |
Instance Method Details
#add_memory(user_id, mem_type, detail) ⇒ Object
459 460 461 |
# File 'lib/muxi/formation_client.rb', line 459 def add_memory(user_id, mem_type, detail) @transport.request_json("POST", "/memories", body: { user_id: user_id, type: mem_type, detail: detail }, use_admin: false, user_id: user_id) end |
#audio_chat(payload, user_id: "") ⇒ Object
410 411 412 |
# File 'lib/muxi/formation_client.rb', line 410 def audio_chat(payload, user_id: "") @transport.request_json("POST", "/audiochat", body: payload, use_admin: false, user_id: user_id) end |
#audio_chat_stream(payload, user_id: "", &block) ⇒ Object
414 415 416 417 |
# File 'lib/muxi/formation_client.rb', line 414 def audio_chat_stream(payload, user_id: "", &block) body = payload.merge(stream: true) @transport.stream_sse("POST", "/audiochat", body: body, use_admin: false, user_id: user_id, &block) end |
#cancel_request(request_id, user_id) ⇒ Object
445 446 447 |
# File 'lib/muxi/formation_client.rb', line 445 def cancel_request(request_id, user_id) @transport.request_json("DELETE", "/requests/#{request_id}", use_admin: false, user_id: user_id) end |
#chat(payload, user_id: "") ⇒ Object
Chat
401 402 403 |
# File 'lib/muxi/formation_client.rb', line 401 def chat(payload, user_id: "") @transport.request_json("POST", "/chat", body: payload, use_admin: false, user_id: user_id) end |
#chat_stream(payload, user_id: "", &block) ⇒ Object
405 406 407 408 |
# File 'lib/muxi/formation_client.rb', line 405 def chat_stream(payload, user_id: "", &block) body = payload.merge(stream: true) @transport.stream_sse("POST", "/chat", body: body, use_admin: false, user_id: user_id, &block) end |
#clear_all_buffers ⇒ Object
479 480 481 |
# File 'lib/muxi/formation_client.rb', line 479 def clear_all_buffers @transport.request_json("DELETE", "/memory/buffer", use_admin: true) end |
#clear_audit_log ⇒ Object
611 612 613 |
# File 'lib/muxi/formation_client.rb', line 611 def clear_audit_log @transport.request_json("DELETE", "/audit?confirm=clear-audit-log", use_admin: true) end |
#clear_session_buffer(user_id, session_id) ⇒ Object
475 476 477 |
# File 'lib/muxi/formation_client.rb', line 475 def clear_session_buffer(user_id, session_id) @transport.request_json("DELETE", "/memory/buffer/#{session_id}", params: { user_id: user_id }, use_admin: false, user_id: user_id) end |
#clear_user_buffer(user_id) ⇒ Object
471 472 473 |
# File 'lib/muxi/formation_client.rb', line 471 def clear_user_buffer(user_id) @transport.request_json("DELETE", "/memory/buffer", params: { user_id: user_id }, use_admin: false, user_id: user_id) end |
#create_credential(user_id, payload) ⇒ Object
552 553 554 |
# File 'lib/muxi/formation_client.rb', line 552 def create_credential(user_id, payload) @transport.request_json("POST", "/credentials", body: payload, use_admin: false, user_id: user_id) end |
#create_scheduler_job(job_type, schedule, message, user_id) ⇒ Object
500 501 502 503 |
# File 'lib/muxi/formation_client.rb', line 500 def create_scheduler_job(job_type, schedule, , user_id) body = { type: job_type, schedule: schedule, message: , user_id: user_id } @transport.request_json("POST", "/scheduler/jobs", body: body, use_admin: true) end |
#delete_credential(credential_id, user_id) ⇒ Object
556 557 558 |
# File 'lib/muxi/formation_client.rb', line 556 def delete_credential(credential_id, user_id) @transport.request_json("DELETE", "/credentials/#{credential_id}", use_admin: false, user_id: user_id) end |
#delete_memory(user_id, memory_id) ⇒ Object
463 464 465 |
# File 'lib/muxi/formation_client.rb', line 463 def delete_memory(user_id, memory_id) @transport.request_json("DELETE", "/memories/#{memory_id}", params: { user_id: user_id }, use_admin: false, user_id: user_id) end |
#delete_scheduler_job(job_id) ⇒ Object
505 506 507 |
# File 'lib/muxi/formation_client.rb', line 505 def delete_scheduler_job(job_id) @transport.request_json("DELETE", "/scheduler/jobs/#{job_id}", use_admin: true) end |
#delete_secret(key) ⇒ Object
396 397 398 |
# File 'lib/muxi/formation_client.rb', line 396 def delete_secret(key) @transport.request_json("DELETE", "/secrets/#{key}", use_admin: true) end |
#fire_trigger(name, data, async_mode: false, user_id: "") ⇒ Object
594 595 596 597 |
# File 'lib/muxi/formation_client.rb', line 594 def fire_trigger(name, data, async_mode: false, user_id: "") params = { async: async_mode.to_s } @transport.request_json("POST", "/triggers/#{name}", params: params, body: data, use_admin: false, user_id: user_id) end |
#get_a2a_config ⇒ Object
527 528 529 |
# File 'lib/muxi/formation_client.rb', line 527 def get_a2a_config @transport.request_json("GET", "/a2a", use_admin: true) end |
#get_agent(agent_id) ⇒ Object
367 368 369 |
# File 'lib/muxi/formation_client.rb', line 367 def get_agent(agent_id) @transport.request_json("GET", "/agents/#{agent_id}", use_admin: true) end |
#get_agents ⇒ Object
Agents / MCP
363 364 365 |
# File 'lib/muxi/formation_client.rb', line 363 def get_agents @transport.request_json("GET", "/agents", use_admin: true) end |
#get_async_config ⇒ Object
Async / logging / a2a
523 524 525 |
# File 'lib/muxi/formation_client.rb', line 523 def get_async_config @transport.request_json("GET", "/async", use_admin: true) end |
#get_audit_log ⇒ Object
607 608 609 |
# File 'lib/muxi/formation_client.rb', line 607 def get_audit_log @transport.request_json("GET", "/audit", use_admin: true) end |
#get_buffer_stats ⇒ Object
483 484 485 |
# File 'lib/muxi/formation_client.rb', line 483 def get_buffer_stats @transport.request_json("GET", "/memory/stats", use_admin: true) end |
#get_config ⇒ Object
354 355 356 |
# File 'lib/muxi/formation_client.rb', line 354 def get_config @transport.request_json("GET", "/config", use_admin: true) end |
#get_credential(credential_id, user_id) ⇒ Object
548 549 550 |
# File 'lib/muxi/formation_client.rb', line 548 def get_credential(credential_id, user_id) @transport.request_json("GET", "/credentials/#{credential_id}", use_admin: false, user_id: user_id) end |
#get_formation_info ⇒ Object
358 359 360 |
# File 'lib/muxi/formation_client.rb', line 358 def get_formation_info @transport.request_json("GET", "/formation", use_admin: true) end |
#get_llm_settings ⇒ Object
581 582 583 |
# File 'lib/muxi/formation_client.rb', line 581 def get_llm_settings @transport.request_json("GET", "/llm/settings", use_admin: true) end |
#get_logging_config ⇒ Object
531 532 533 |
# File 'lib/muxi/formation_client.rb', line 531 def get_logging_config @transport.request_json("GET", "/logging", use_admin: true) end |
#get_logging_destinations ⇒ Object
535 536 537 |
# File 'lib/muxi/formation_client.rb', line 535 def get_logging_destinations @transport.request_json("GET", "/logging/destinations", use_admin: true) end |
#get_mcp_server(server_id) ⇒ Object
375 376 377 |
# File 'lib/muxi/formation_client.rb', line 375 def get_mcp_server(server_id) @transport.request_json("GET", "/mcp/servers/#{server_id}", use_admin: true) end |
#get_mcp_servers ⇒ Object
371 372 373 |
# File 'lib/muxi/formation_client.rb', line 371 def get_mcp_servers @transport.request_json("GET", "/mcp/servers", use_admin: true) end |
#get_mcp_tools ⇒ Object
379 380 381 |
# File 'lib/muxi/formation_client.rb', line 379 def get_mcp_tools @transport.request_json("GET", "/mcp/tools", use_admin: true) end |
#get_memories(user_id, limit: nil) ⇒ Object
454 455 456 457 |
# File 'lib/muxi/formation_client.rb', line 454 def get_memories(user_id, limit: nil) params = { user_id: user_id, limit: limit } @transport.request_json("GET", "/memories", params: params, use_admin: false, user_id: user_id) end |
#get_memory_config ⇒ Object
Memory
450 451 452 |
# File 'lib/muxi/formation_client.rb', line 450 def get_memory_config @transport.request_json("GET", "/memory", use_admin: true) end |
#get_overlord_config ⇒ Object
Overlord / LLM
573 574 575 |
# File 'lib/muxi/formation_client.rb', line 573 def get_overlord_config @transport.request_json("GET", "/overlord", use_admin: true) end |
#get_overlord_soul ⇒ Object
577 578 579 |
# File 'lib/muxi/formation_client.rb', line 577 def get_overlord_soul @transport.request_json("GET", "/overlord/soul", use_admin: true) end |
#get_request_status(request_id, user_id) ⇒ Object
441 442 443 |
# File 'lib/muxi/formation_client.rb', line 441 def get_request_status(request_id, user_id) @transport.request_json("GET", "/requests/#{request_id}", use_admin: false, user_id: user_id) end |
#get_requests(user_id) ⇒ Object
437 438 439 |
# File 'lib/muxi/formation_client.rb', line 437 def get_requests(user_id) @transport.request_json("GET", "/requests", use_admin: false, user_id: user_id) end |
#get_scheduler_config ⇒ Object
Scheduler
488 489 490 |
# File 'lib/muxi/formation_client.rb', line 488 def get_scheduler_config @transport.request_json("GET", "/scheduler", use_admin: true) end |
#get_scheduler_job(job_id) ⇒ Object
496 497 498 |
# File 'lib/muxi/formation_client.rb', line 496 def get_scheduler_job(job_id) @transport.request_json("GET", "/scheduler/jobs/#{job_id}", use_admin: true) end |
#get_scheduler_jobs(user_id) ⇒ Object
492 493 494 |
# File 'lib/muxi/formation_client.rb', line 492 def get_scheduler_jobs(user_id) @transport.request_json("GET", "/scheduler/jobs", params: { user_id: user_id }, use_admin: true) end |
#get_secret(key) ⇒ Object
388 389 390 |
# File 'lib/muxi/formation_client.rb', line 388 def get_secret(key) @transport.request_json("GET", "/secrets/#{key}", use_admin: true) end |
#get_secrets ⇒ Object
Secrets
384 385 386 |
# File 'lib/muxi/formation_client.rb', line 384 def get_secrets @transport.request_json("GET", "/secrets", use_admin: true) end |
#get_session(session_id, user_id) ⇒ Object
425 426 427 |
# File 'lib/muxi/formation_client.rb', line 425 def get_session(session_id, user_id) @transport.request_json("GET", "/sessions/#{session_id}", use_admin: false, user_id: user_id) end |
#get_session_messages(session_id, user_id) ⇒ Object
429 430 431 |
# File 'lib/muxi/formation_client.rb', line 429 def (session_id, user_id) @transport.request_json("GET", "/sessions/#{session_id}/messages", use_admin: false, user_id: user_id) end |
#get_sessions(user_id, limit: nil) ⇒ Object
Sessions / requests
420 421 422 423 |
# File 'lib/muxi/formation_client.rb', line 420 def get_sessions(user_id, limit: nil) params = { user_id: user_id, limit: limit } @transport.request_json("GET", "/sessions", params: params, use_admin: false, user_id: user_id) end |
#get_sop(name) ⇒ Object
603 604 605 |
# File 'lib/muxi/formation_client.rb', line 603 def get_sop(name) @transport.request_json("GET", "/sops/#{name}", use_admin: false) end |
#get_sops ⇒ Object
599 600 601 |
# File 'lib/muxi/formation_client.rb', line 599 def get_sops @transport.request_json("GET", "/sops", use_admin: false) end |
#get_status ⇒ Object
350 351 352 |
# File 'lib/muxi/formation_client.rb', line 350 def get_status @transport.request_json("GET", "/status", use_admin: true) end |
#get_trigger(name) ⇒ Object
590 591 592 |
# File 'lib/muxi/formation_client.rb', line 590 def get_trigger(name) @transport.request_json("GET", "/triggers/#{name}", use_admin: false) end |
#get_triggers ⇒ Object
Triggers / SOP / Audit
586 587 588 |
# File 'lib/muxi/formation_client.rb', line 586 def get_triggers @transport.request_json("GET", "/triggers", use_admin: false) end |
#get_user_buffer(user_id) ⇒ Object
467 468 469 |
# File 'lib/muxi/formation_client.rb', line 467 def get_user_buffer(user_id) @transport.request_json("GET", "/memory/buffer", params: { user_id: user_id }, use_admin: false, user_id: user_id) end |
#get_user_identifiers_for_user(user_id) ⇒ Object
560 561 562 |
# File 'lib/muxi/formation_client.rb', line 560 def get_user_identifiers_for_user(user_id) @transport.request_json("GET", "/users/identifiers/#{user_id}", use_admin: true) end |
#health ⇒ Object
Health / status
346 347 348 |
# File 'lib/muxi/formation_client.rb', line 346 def health @transport.request_json("GET", "/health", use_admin: false) end |
#link_user_identifier(muxi_user_id, identifiers) ⇒ Object
564 565 566 |
# File 'lib/muxi/formation_client.rb', line 564 def link_user_identifier(muxi_user_id, identifiers) @transport.request_json("POST", "/users/identifiers", body: { muxi_user_id: muxi_user_id, identifiers: identifiers }, use_admin: true) end |
#list_credential_services ⇒ Object
Credentials / identifiers
540 541 542 |
# File 'lib/muxi/formation_client.rb', line 540 def list_credential_services @transport.request_json("GET", "/credentials/services", use_admin: true) end |
#list_credentials(user_id) ⇒ Object
544 545 546 |
# File 'lib/muxi/formation_client.rb', line 544 def list_credentials(user_id) @transport.request_json("GET", "/credentials", use_admin: false, user_id: user_id) end |
#pause_scheduler_job(job_id) ⇒ Object
514 515 516 |
# File 'lib/muxi/formation_client.rb', line 514 def pause_scheduler_job(job_id) @transport.request_json("POST", "/scheduler/jobs/#{job_id}/pause", use_admin: true) end |
#resolve_user(identifier, create_user: false) ⇒ Object
Resolve user
629 630 631 |
# File 'lib/muxi/formation_client.rb', line 629 def resolve_user(identifier, create_user: false) @transport.request_json("POST", "/users/resolve", body: { identifier: identifier, create_user: create_user }, use_admin: false) end |
#restore_session(session_id, user_id, messages) ⇒ Object
433 434 435 |
# File 'lib/muxi/formation_client.rb', line 433 def restore_session(session_id, user_id, ) @transport.request_json("POST", "/sessions/#{session_id}/restore", body: { messages: }, use_admin: false, user_id: user_id) end |
#resume_scheduler_job(job_id) ⇒ Object
518 519 520 |
# File 'lib/muxi/formation_client.rb', line 518 def resume_scheduler_job(job_id) @transport.request_json("POST", "/scheduler/jobs/#{job_id}/resume", use_admin: true) end |
#set_secret(key, value) ⇒ Object
392 393 394 |
# File 'lib/muxi/formation_client.rb', line 392 def set_secret(key, value) @transport.request_json("PUT", "/secrets/#{key}", body: { value: value }, use_admin: true) end |
#stream_events(user_id, &block) ⇒ Object
Streaming
616 617 618 |
# File 'lib/muxi/formation_client.rb', line 616 def stream_events(user_id, &block) @transport.stream_sse("GET", "/events", params: { user_id: user_id }, use_admin: false, user_id: user_id, &block) end |
#stream_logs(filters = nil, &block) ⇒ Object
624 625 626 |
# File 'lib/muxi/formation_client.rb', line 624 def stream_logs(filters = nil, &block) @transport.stream_sse("GET", "/logs", params: filters, use_admin: true, &block) end |
#stream_request(user_id, session_id, request_id, &block) ⇒ Object
620 621 622 |
# File 'lib/muxi/formation_client.rb', line 620 def stream_request(user_id, session_id, request_id, &block) @transport.stream_sse("GET", "/events/#{session_id}/#{request_id}", use_admin: false, user_id: user_id, &block) end |
#unlink_user_identifier(identifier) ⇒ Object
568 569 570 |
# File 'lib/muxi/formation_client.rb', line 568 def unlink_user_identifier(identifier) @transport.request_json("DELETE", "/users/identifiers/#{identifier}", use_admin: true) end |
#update_scheduler_job(job_id, **updates) ⇒ Object
509 510 511 512 |
# File 'lib/muxi/formation_client.rb', line 509 def update_scheduler_job(job_id, **updates) body = updates.slice(:message, :schedule, :title) @transport.request_json("PUT", "/scheduler/jobs/#{job_id}", body: body, use_admin: true) end |