وثائق بوابة القرار

تقييم بوابة حتمي وقابل لإعادة التشغيل مع قرارات قابلة للتدقيق.

وثائق Asset Core

أدوات بوابة القرار MCP

تحميل: tooling.json (268 كيلوبايت) تحميل: openapi/decision-gate.json (343 كيلوبايت)

صفحات تفاصيل الأدوات

  • scenario_define - تسجيل ScenarioSpec، التحقق من صحته، وإرجاع التجزئة القياسية المستخدمة لفحوصات السلامة.
  • scenario_start - إنشاء حالة تشغيل جديدة لسيناريو وإصدار حزم دخول اختيارية.
  • scenario_status - جلب لقطة تشغيل للقراءة فقط وملخص آمن دون تغيير الحالة.
  • scenario_next - تقييم البوابات استجابةً لطلب التالي المدفوع من قبل الوكيل.
  • scenario_submit - تقديم العناصر الخارجية إلى حالة التشغيل للتدقيق والتقييم لاحقًا.
  • scenario_trigger - تقديم حدث تفعيل (جدولة/خارجي) وتقييم التشغيل.
  • evidence_query - استعلام عن مزود الأدلة مع سياق التشغيل الكامل وسياسة الإفصاح.
  • runpack_export - تصدير قطع العمل المحددة للتحقق غير المتصل.
  • runpack_verify - تحقق من بيان تشغيل الحزمة والفنون المرفقة دون اتصال.
  • providers_list - قائمة مقدمي الأدلة المسجلين وملخص القدرات.
  • provider_contract_get - استرجاع JSON عقد المزود القياسي والتجزئة لمزود الخدمة.
  • provider_check_schema_get - جلب تفاصيل مخطط التحقق (المعلمات/النتيجة/المقارنات) لمزود الخدمة.
  • schemas_register - تسجيل مخطط شكل البيانات لمستأجر وفضاء اسم.
  • schemas_list - قائمة الأشكال البيانية المسجلة لمستأجر وفضاء أسماء.
  • schemas_get - استرجاع شكل بيانات محدد بواسطة المعرف والإصدار.
  • scenarios_list - قائمة السيناريوهات المسجلة لمستأجر وفضاء اسم.
  • precheck - تقييم سيناريو مقابل البيانات المحددة دون تغيير الحالة.
  • decision_gate_docs_search - ابحث في وثائق بوابة القرار للحصول على إرشادات وقت التشغيل.

هذا المستند يلخص واجهة أداة MCP والاستخدام المتوقع. المخططات الكاملة موجودة في tooling.json، مع المخططات الداعمة تحت schemas/ والأمثلة تحت examples/.

بدء سريع لدورة الحياة

  • scenario_define يسجل ويحقق في صحة ScenarioSpec.
  • scenario_start ينشئ عملية تشغيل ويصدر حزم إدخال بشكل اختياري.
  • scenario_next يتقدم بتشغيل مدفوع من قبل الوكيل؛ scenario_trigger يتقدم بالوقت/المحفزات الخارجية.
  • scenario_status يستعلم عن حالة التشغيل دون تغييرها.
  • scenario_submit يضيف عناصر خارجية للتدقيق والفحوصات اللاحقة.
  • runpack_export و runpack_verify تدعمان التحقق غير المتصل بالإنترنت.

مراجع الأثر

  • authoring.md: إرشادات تنسيق التأليف والتطبيع.
  • [scenario.json](/downloads/decision-gate/examples/scenario.json): مثال كامل لـ ScenarioSpec.
  • examples/scenario.ron: مثال ScenarioSpec سهل التأليف.
  • [run-config.json](/downloads/decision-gate/examples/run-config.json): مثال على تكوين التشغيل لسيناريو البدء.
  • [decision-gate.toml](/downloads/decision-gate/examples/decision-gate.toml): مثال على تكوين MCP لمقدمي الخدمات.
الأداةالوصف
scenario_defineتسجيل سيناريو، التحقق من صحته، وإرجاع التجزئة القياسية المستخدمة لفحوصات السلامة.
scenario_startإنشاء حالة تشغيل جديدة لسيناريو وإصدار حزم دخول اختيارية.
scenario_statusجلب لقطة تشغيل للقراءة فقط وملخص آمن دون تغيير الحالة.
scenario_nextتقييم البوابات استجابةً لطلب التالي المدفوع من قبل الوكيل.
scenario_submitتقديم عناصر خارجية إلى حالة التشغيل للتدقيق والتقييم لاحقًا.
scenario_triggerتقديم حدث تحفيزي (جدولة/خارجي) وتقييم التشغيل.
evidence_queryاستعلام عن مزود الأدلة مع سياق التشغيل الكامل وسياسة الإفصاح.
runpack_exportتصدير عناصر حزمة التشغيل الحتمية للتحقق غير المتصل.
runpack_verifyالتحقق من بيان حزمة التشغيل والعناصر غير المتصلة.
providers_listقائمة بمزودي الأدلة المسجلين وملخص القدرات.
provider_contract_getجلب عقد المزود القياسي بصيغة JSON والتجزئة لمزود.
provider_check_schema_getجلب تفاصيل مخطط التحقق (المعلمات/النتيجة/المقارنات) لمزود.
schemas_registerتسجيل مخطط شكل البيانات لمستأجر وفضاء أسماء.
schemas_listقائمة بأشكال البيانات المسجلة لمستأجر وفضاء أسماء.
schemas_getجلب شكل بيانات محدد بواسطة المعرف والإصدار.
scenarios_listقائمة بالسيناريوهات المسجلة لمستأجر وفضاء أسماء.
precheckتقييم سيناريو مقابل البيانات المؤكدة دون تغيير الحالة.
decision_gate_docs_searchالبحث في وثائق بوابة القرار للحصول على إرشادات وقت التشغيل.

تحديد_السيناريو

قم بتسجيل ScenarioSpec، تحقق منه، وارجع إلى الهاش القياسي المستخدم لفحوصات السلامة.

مدخلات

  • spec (مطلوب): مواصفة السيناريو للتسجيل.

المخرجات

  • scenario_id (required): معرف السيناريو.
  • spec_hash (مطلوب): النوع: object.

ملاحظات

  • استخدم قبل بدء الجولات؛ scenario_id يصبح المقبض الثابت لاستدعاءات لاحقة.
  • يحقق في معرفات المرحلة/البوابة/الشرط، وأشجار RET، ومراجع الشروط.
  • هاش التحقق محدد؛ خزنه للتدقيق وسلامة فك الحزمة.
  • يفشل النظام عند وجود مواصفات غير صالحة أو معرفات سيناريو مكررة.

مثال

سجل مواصفات سيناريو المثال.

مدخل:

{
  "spec": {
    "conditions": [
      {
        "comparator": "equals",
        "condition_id": "env_is_prod",
        "expected": "production",
        "policy_tags": [],
        "query": {
          "check_id": "get",
          "params": {
            "key": "DEPLOY_ENV"
          },
          "provider_id": "env"
        }
      },
      {
        "comparator": "equals",
        "condition_id": "after_freeze",
        "expected": true,
        "policy_tags": [],
        "query": {
          "check_id": "after",
          "params": {
            "timestamp": 1710000000000
          },
          "provider_id": "time"
        }
      }
    ],
    "default_tenant_id": null,
    "namespace_id": 1,
    "policies": [],
    "scenario_id": "example-scenario",
    "schemas": [],
    "spec_version": "v1",
    "stages": [
      {
        "advance_to": {
          "kind": "terminal"
        },
        "entry_packets": [
          {
            "content_type": "application/json",
            "expiry": null,
            "packet_id": "packet-hello",
            "payload": {
              "kind": "json",
              "value": {
                "message": "hello",
                "purpose": "scenario entry packet"
              }
            },
            "policy_tags": [],
            "schema_id": "schema-hello",
            "visibility_labels": [
              "public"
            ]
          }
        ],
        "gates": [
          {
            "gate_id": "env_gate",
            "requirement": {
              "Condition": "env_is_prod"
            }
          },
          {
            "gate_id": "time_gate",
            "requirement": {
              "Condition": "after_freeze"
            }
          }
        ],
        "on_timeout": "fail",
        "stage_id": "main",
        "timeout": null
      }
    ]
  }
}

Output:

{
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  }
}

سيناريو_البداية

إنشاء حالة تشغيل جديدة لسيناريو وإصدار حزم الدخول بشكل اختياري.

مدخلات

  • issue_entry_packets (required): إصدار حزم الإدخال على الفور.
  • run_config (مطلوب): تكوين التشغيل وأهداف الإرسال.
  • scenario_id (required): معرف السيناريو.
  • started_at (مطلوب): الطابع الزمني لبداية التشغيل المقدم من المتصل.

المخرجات

  • current_stage_id (required): معرف المرحلة الحالية.
  • القرارات (مطلوبة): النوع: array.
  • dispatch_targets (مطلوب): النوع: array.
  • gate_evals (مطلوب): النوع: array.
  • namespace_id (مطلوب): معرف مساحة الاسم.
  • الحزم (مطلوب): النوع: array.
  • run_id (مطلوب): معرف التشغيل.
  • scenario_id (required): معرف السيناريو.
  • spec_hash (مطلوب): النوع: object.
  • stage_entered_at (مطلوب): واحد من: كائن، كائن.
  • الحالة (مطلوب): النوع: string.
  • التقديمات (مطلوب): النوع: array.
  • tenant_id (مطلوب): معرف المستأجر.
  • tool_calls (مطلوب): النوع: array.
  • المشغلات (مطلوب): النوع: array.

ملاحظات

  • يتطلب RunConfig (tenant_id, run_id, scenario_id, dispatch_targets).
  • استخدم started_at لتسجيل الطابع الزمني الذي يقدمه المتصل كبداية.
  • إذا كانت issue_entry_packets صحيحة، يتم الكشف عن حزم الإدخال على الفور.
  • يفشل الإغلاق إذا كان run_id موجودًا بالفعل أو كان scenario_id غير معروف.

مثال

ابدأ تشغيلًا لسيناريو المثال وأصدر حزم الإدخال.

مدخل:

{
  "issue_entry_packets": true,
  "run_config": {
    "dispatch_targets": [
      {
        "agent_id": "agent-alpha",
        "kind": "agent"
      }
    ],
    "namespace_id": 1,
    "policy_tags": [],
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario",
  "started_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  }
}

Output:

{
  "current_stage_id": "main",
  "decisions": [],
  "dispatch_targets": [
    {
      "agent_id": "agent-alpha",
      "kind": "agent"
    }
  ],
  "gate_evals": [],
  "namespace_id": 1,
  "packets": [],
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "stage_entered_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "status": "active",
  "submissions": [],
  "tenant_id": 1,
  "tool_calls": [],
  "triggers": []
}

حالة السيناريو

احصل على لقطة تشغيل للقراءة فقط وملخص آمن دون تغيير الحالة.

مدخلات

  • طلب (مطلوب): حمولة طلب الحالة.
  • scenario_id (required): معرف السيناريو.

المخرجات

  • current_stage_id (required): معرف المرحلة الحالية.
  • issued_packet_ids (required): النوع: array.
  • last_decision (مطلوب، قابل للاحتواء): واحد من: null، كائن.
  • namespace_id (اختياري): معرف المساحة الاسمية.
  • run_id (مطلوب): معرف التشغيل.
  • safe_summary (مطلوب، قابل للإلغاء): واحد من: null، كائن.
  • scenario_id (required): معرف السيناريو.
  • الحالة (مطلوب): النوع: string.

ملاحظات

  • استخدم لاستطلاع الرأي أو حالة واجهة المستخدم؛ لا يقوم بتقييم البوابات.
  • تتجاهل الملخصات الآمنة قيم الأدلة وقد تتضمن تلميحات لإعادة المحاولة.
  • يُرجع معرفات الحزم الصادرة للمساعدة في تتبع الإفصاحات.

مثال

استعلام حالة التشغيل دون التقدم في التشغيل.

مدخل:

{
  "request": {
    "correlation_id": null,
    "namespace_id": 1,
    "requested_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "run_id": "run-0001",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "current_stage_id": "main",
  "issued_packet_ids": [],
  "last_decision": null,
  "run_id": "run-0001",
  "safe_summary": null,
  "scenario_id": "example-scenario",
  "status": "active"
}

سيناريو_التالي

تقييم البوابات استجابةً لطلب التالي المدفوع بواسطة وكيل.

مدخلات

  • feedback (اختياري، قابل لأن يكون فارغاً): تجاوز مستوى التعليقات الاختياري لسيناريو_التالي.
  • request (required): الحمولة التالية المطلوبة من وكيل.
  • scenario_id (required): معرف السيناريو.

المخرجات

  • القرار (مطلوب): النوع: كائن.
  • feedback (اختياري، يمكن أن يكون فارغاً): واحد من: فارغ، كائن.
  • الحزم (مطلوب): النوع: array.
  • الحالة (مطلوب): النوع: string.

ملاحظات

  • متماثل بواسطة trigger_id؛ المكالمات المتكررة تعيد نفس القرار.
  • يسجل القرار، والأدلة، وكشف الحزم في حالة التشغيل.
  • يتطلب تشغيلًا نشطًا؛ لا تتقدم العمليات المكتملة أو الفاشلة.
  • يمكن أن تتضمن الملاحظات الاختيارية تتبع البوابة أو الأدلة عندما يسمح بذلك سياسة ملاحظات الخادم.

مثال

مثال 1: تقييم الخطوة التالية المدفوعة بالوكيل لجولة.

مدخل:

{
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

مثال 2: تقييم عملية وتشغيل طلب ملاحظات التتبع.

مدخل:

{
  "feedback": "trace",
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "feedback": {
    "gate_evaluations": [],
    "level": "trace"
  },
  "packets": [],
  "status": "completed"
}

سيناريو_تقديم

قم بتقديم العناصر الخارجية إلى حالة التشغيل للتدقيق والتقييم لاحقًا.

مدخلات

  • طلب (مطلوب): حمولة الإرسال والبيانات الوصفية.
  • scenario_id (required): معرف السيناريو.

المخرجات

  • سجل (مطلوب): النوع: كائن.

ملاحظات

  • يتم تجزئة الحمولة وتخزينها كسجل تقديم.
  • لا يحرّك الجري بنفسه.
  • استخدم للنماذج أو المشغلين الذين يزودون بالقطع الأثرية.

مثال

تقديم عنصر خارجي للتدقيق والتقييم لاحقًا.

مدخل:

{
  "request": {
    "content_type": "application/json",
    "correlation_id": null,
    "namespace_id": 1,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "record": {
    "content_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "content_type": "application/json",
    "correlation_id": null,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  }
}

مشغل_السيناريو

قم بتقديم حدث تشغيل (جدولة/خارجي) وتقييم التشغيل.

مدخلات

  • scenario_id (required): معرف السيناريو.
  • trigger (مطلوب): حمولة حدث الزناد.

المخرجات

  • القرار (مطلوب): النوع: كائن.
  • الحزم (مطلوب): النوع: array.
  • الحالة (مطلوب): النوع: string.

ملاحظات

  • يتم توفير وقت الزناد بواسطة المتصل؛ لا توجد قراءات للساعة الحائطية.
  • يسجل حدث الزناد والقرار الناتج.
  • استخدمها لتحفيزات النظام المعتمدة على الوقت أو الخارجية.

مثال

تقدم تشغيلًا من مجدول أو مشغل خارجي.

مدخل:

{
  "scenario_id": "example-scenario",
  "trigger": {
    "correlation_id": null,
    "kind": "tick",
    "namespace_id": 1,
    "payload": null,
    "run_id": "run-0001",
    "source_id": "scheduler-01",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  }
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

استعلام_الأدلة

استعلام عن مزود الأدلة مع سياق التشغيل الكامل وسياسة الإفصاح.

مدخلات

  • سياق (مطلوب): سياق الأدلة المستخدمة للتقييم.
  • استعلام (مطلوب): حمولة استعلام الأدلة.

المخرجات

  • النتيجة (مطلوب): النوع: كائن.

ملاحظات

  • قد تقوم سياسة الإفصاح بحذف القيم الخام؛ لا تزال القيم التجزئة/المرتكزات مُرجعة.
  • استخدم للتشخيصات أو فحوصات ما قبل الطيران؛ يستخدم وقت التشغيل نفس منطق المزود.
  • يتطلب provider_id و check_id و EvidenceContext الكامل.

مثال

استعلام عن مزود الأدلة باستخدام سياق التشغيل.

مدخل:

{
  "context": {
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "stage_id": "main",
    "tenant_id": 1,
    "trigger_id": "trigger-0001",
    "trigger_time": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  },
  "query": {
    "check_id": "get",
    "params": {
      "key": "DEPLOY_ENV"
    },
    "provider_id": "env"
  }
}

Output:

{
  "result": {
    "content_type": "text/plain",
    "error": null,
    "evidence_anchor": {
      "anchor_type": "env",
      "anchor_value": "DEPLOY_ENV"
    },
    "evidence_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "evidence_ref": null,
    "lane": "verified",
    "signature": null,
    "value": {
      "kind": "json",
      "value": "production"
    }
  }
}

runpack_export

تصدير فنون تشغيل الحزم الحتمية للتحقق غير المتصل.

مدخلات

  • generated_at (مطلوب): الطابع الزمني المسجل في البيان.
  • include_verification (required): إنشاء تقرير تحقق.
  • manifest_name (اختياري، يمكن أن يكون فارغًا): تجاوز اختياري لاسم ملف البيان.
  • namespace_id (مطلوب): معرف مساحة الاسم.
  • output_dir (اختياري، قابل للإلغاء): دليل الإخراج الاختياري (مطلوب لتصدير نظام الملفات).
  • run_id (مطلوب): معرف التشغيل.
  • scenario_id (required): معرف السيناريو.
  • tenant_id (مطلوب): معرف المستأجر.

المخرجات

  • manifest (مطلوب): النوع: كائن.
  • report (مطلوب، قابل للإلغاء): واحد من: null، كائن.
  • storage_uri (اختياري، يمكن أن يكون فارغًا): URI تخزين اختياري لواجهات تخزين runpack المدارة.

ملاحظات

  • يكتب البيان والسجلات إلى output_dir؛ يتم تسجيل generated_at في البيان.
  • include_verification يضيف عنصر تقرير التحقق.
  • استخدم بعد اكتمال التشغيل أو لقطات التدقيق.

مثال

تصدير حزمة تشغيل مع بيانات وصفية للمانيفيست.

مدخل:

{
  "generated_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "include_verification": false,
  "manifest_name": "manifest.json",
  "namespace_id": 1,
  "output_dir": "/var/lib/decision-gate/runpacks/run-0001",
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "tenant_id": 1
}

Output:

{
  "manifest": {
    "artifacts": [
      {
        "artifact_id": "decision_log",
        "content_type": "application/json",
        "hash": {
          "algorithm": "sha256",
          "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
        },
        "kind": "decision_log",
        "path": "decision_log.json",
        "required": true
      }
    ],
    "generated_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "hash_algorithm": "sha256",
    "integrity": {
      "file_hashes": [
        {
          "hash": {
            "algorithm": "sha256",
            "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
          },
          "path": "decision_log.json"
        }
      ],
      "root_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    },
    "manifest_version": "v1",
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "spec_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "tenant_id": 1,
    "verifier_mode": "offline_strict"
  },
  "report": null,
  "storage_uri": null
}

runpack_verify

تحقق من بيان التشغيل والمكونات في وضع عدم الاتصال.

مدخلات

  • مسار_التطبيق (مطلوب): مسار التطبيق بالنسبة لجذر حزمة التشغيل.
  • runpack_dir (مطلوب): دليل الجذر لـ Runpack.

المخرجات

  • التقرير (مطلوب): النوع: كائن.
  • حالة (مطلوبة): حالة تحقق من Runpack.

ملاحظات

  • يحقق في التجزئات، وجذر السلامة، وبنية سجل القرارات.
  • يفشل النظام في حالة فقدان أو العبث بالملفات.
  • استخدم في CI أو في خطوط تدقيق غير متصلة بالإنترنت.

مثال

تحقق من بيان التشغيل والمكونات في وضع عدم الاتصال.

مدخل:

{
  "manifest_path": "manifest.json",
  "runpack_dir": "/var/lib/decision-gate/runpacks/run-0001"
}

Output:

{
  "report": {
    "checked_files": 12,
    "errors": [],
    "status": "pass"
  },
  "status": "pass"
}

providers_list

قائمة مقدمي الأدلة المسجلين وملخص القدرات.

مدخلات

المخرجات

  • المزودون (مطلوب): النوع: array.

ملاحظات

  • يعيد معرفات المزود وبيانات النقل.
  • نتائج محصورة بسياسة المصادقة.

مثال

قائمة مقدمي الأدلة المسجلين.

مدخل:

{}

Output:

{
  "providers": [
    {
      "checks": [
        "get"
      ],
      "provider_id": "env",
      "transport": "builtin"
    }
  ]
}

providercontractget

احصل على JSON عقد المزود القياسي وهاش لمزود.

مدخلات

  • provider_id (required): معرف المزود.

المخرجات

  • عقد (مطلوب): النوع: كائن.
  • contract_hash (مطلوب): النوع: object.
  • provider_id (required): معرف المزود.
  • المصدر (مطلوب): مصدر أصل العقد.
  • version (مطلوب، قابل للإلغاء): تسمية إصدار العقد الاختيارية.

ملاحظات

  • يعيد عقد المزود كما تم تحميله بواسطة خادم MCP.
  • يتضمن تجزئة معيارية للتدقيق وإعادة الإنتاج.
  • خاضع لسياسة إفصاح المزود والتفويض.

مثال

احصل على JSON العقد لمزود الخدمة.

مدخل:

{
  "provider_id": "json"
}

Output:

{
  "contract": {
    "checks": [],
    "config_schema": {
      "additionalProperties": false,
      "type": "object"
    },
    "description": "Reads JSON or YAML files and evaluates JSONPath.",
    "name": "JSON Provider",
    "notes": [],
    "provider_id": "json",
    "transport": "builtin"
  },
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "json",
  "source": "builtin",
  "version": null
}

providercheckschema_get

احصل على تفاصيل مخطط التحقق (المعلمات/النتيجة/المقارنات) لمزود الخدمة.

مدخلات

  • check_id (required): معرف فحص المزود.
  • provider_id (required): معرف المزود.

المخرجات

  • allowed_comparators (مطلوب): قائمة السماح للمقارنات لهذا الفحص.
  • أنواع_الرابط (مطلوب): أنواع الروابط التي تصدرها هذه الفحص.
  • check_id (required): تحقق من المعرف.
  • أنواع المحتوى (مطلوب): أنواع المحتوى لنتيجة الفحص.
  • contract_hash (مطلوب): النوع: object.
  • الحتمية (مطلوب): تصنيف الحتمية لفحوصات المزود.
  • أمثلة (مطلوب): النوع: array.
  • params_required (required): ما إذا كانت المعلمات مطلوبة لهذا الفحص.
  • params_schema (required): مخطط JSON للتحقق من المعلمات.
  • provider_id (required): معرف المزود.
  • result_schema (مطلوب): مخطط JSON لقيمة نتيجة الفحص.

ملاحظات

  • يُرجع بيانات التعريف المخزنة للمخطط لمراجعة واحدة.
  • يتضمن قوائم السماح للمقارنات وأمثلة الفحص.
  • خاضع لسياسة إفصاح المزود والتفويض.

مثال

احصل على تفاصيل مخطط التحقق لمقدم الخدمة.

مدخل:

{
  "check_id": "path",
  "provider_id": "json"
}

Output:

{
  "allowed_comparators": [
    "equals",
    "in_set",
    "exists",
    "not_exists"
  ],
  "anchor_types": [],
  "check_id": "path",
  "content_types": [
    "application/json"
  ],
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "determinism": "external",
  "examples": [],
  "params_required": true,
  "params_schema": {
    "properties": {
      "file": {
        "type": "string"
      },
      "jsonpath": {
        "type": "string"
      }
    },
    "required": [
      "file"
    ],
    "type": "object"
  },
  "provider_id": "json",
  "result_schema": {
    "type": [
      "null",
      "string",
      "number",
      "boolean",
      "array",
      "object"
    ]
  }
}

schemas_register

قم بتسجيل مخطط شكل البيانات لمستأجر وفضاء الأسماء.

مدخلات

  • سجل (مطلوب): النوع: كائن.

المخرجات

  • سجل (مطلوب): النوع: كائن.

ملاحظات

  • المخططات غير قابلة للتغيير؛ تسجيل نفس النسخة مرتين يفشل.
  • قدم created_at لتسجيل متى تم تأليف المخطط.

مثال

تسجيل مخطط شكل البيانات.

مدخل:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

قائمة_المخططات

قائمة أشكال البيانات المسجلة لمستأجر وفضاء أسماء.

مدخلات

  • المؤشر (اختياري، قابل للإلغاء): واحد من: null، string.
  • الحد (اختياري): الحد الأقصى لعدد السجلات التي سيتم إرجاعها.
  • namespace_id (مطلوب): معرف مساحة الاسم.
  • tenant_id (مطلوب): معرف المستأجر.

المخرجات

  • العناصر (مطلوب): النوع: array.
  • next_token (مطلوب، قابل للإلغاء): واحد من: null، string.

ملاحظات

  • يتطلب tenant_id و namespace_id.
  • يدعم الترقيم عبر المؤشر + الحد.

مثال

قائمة أشكال البيانات لمساحة الأسماء.

مدخل:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "created_at": {
        "kind": "unix_millis",
        "value": 1710000000000
      },
      "description": "Asserted payload schema.",
      "namespace_id": 1,
      "schema": {
        "additionalProperties": false,
        "properties": {
          "deploy_env": {
            "type": "string"
          }
        },
        "required": [
          "deploy_env"
        ],
        "type": "object"
      },
      "schema_id": "asserted_payload",
      "tenant_id": 1,
      "version": "v1"
    }
  ],
  "next_token": null
}

schemas_get

احصل على شكل بيانات محدد بواسطة المعرف والإصدار.

مدخلات

  • namespace_id (مطلوب): معرف مساحة الاسم.
  • schema_id (مطلوب): معرف شكل البيانات.
  • tenant_id (مطلوب): معرف المستأجر.
  • version (required): معرف إصدار شكل البيانات.

المخرجات

  • سجل (مطلوب): النوع: كائن.

ملاحظات

  • يتطلب tenant_id و namespace_id و schema_id و version.
  • يفشل في الإغلاق عندما يكون المخطط مفقودًا.

مثال

استرجاع شكل البيانات بواسطة المعرف والإصدار.

مدخل:

{
  "namespace_id": 1,
  "schema_id": "asserted_payload",
  "tenant_id": 1,
  "version": "v1"
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

قائمة السيناريوهات

قائمة السيناريوهات المسجلة لمستأجر وفضاء الأسماء.

مدخلات

  • المؤشر (اختياري، قابل للإلغاء): واحد من: null، string.
  • الحد (اختياري): الحد الأقصى لعدد السجلات التي سيتم إرجاعها.
  • namespace_id (مطلوب): معرف مساحة الاسم.
  • tenant_id (مطلوب): معرف المستأجر.

المخرجات

  • العناصر (مطلوب): النوع: array.
  • next_token (مطلوب، قابل للإلغاء): واحد من: null، string.

ملاحظات

  • يتطلب tenant_id و namespace_id.
  • يعيد معرفات السيناريو والتجزئات.

مثال

قائمة السيناريوهات لمساحة الأسماء.

مدخل:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "namespace_id": 1,
      "scenario_id": "example-scenario",
      "spec_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    }
  ],
  "next_token": null
}

فحص مسبق

قم بتقييم سيناريو مقابل البيانات المصرح بها دون تغيير الحالة.

مدخلات

  • data_shape (مطلوب): النوع: كائن.
  • namespace_id (مطلوب): معرف مساحة الاسم.
  • حمولة البيانات (مطلوبة): حمولة البيانات المؤكدة.
  • scenario_id (اختياري، يمكن أن يكون فارغاً): واحد من: فارغ، سلسلة.
  • spec (اختياري، يمكن أن يكون فارغًا): واحد من: null، ref decision-gate://contract/schemas/scenario.schema.json.
  • stage_id (اختياري، يمكن أن يكون فارغاً): واحد من: فارغ، سلسلة.
  • tenant_id (مطلوب): معرف المستأجر.

المخرجات

  • decision (مطلوب): واحد من: كائن، كائن، كائن، كائن، كائن.
  • تقييمات_البوابة (مطلوب): النوع: array.

ملاحظات

  • يحقق في البيانات المصرح بها مقابل شكل مسجل.
  • لا يغير حالة التشغيل؛ مخصص للمحاكاة.

مثال

تحقق مسبقًا من سيناريو مع بيانات مؤكدة.

مدخل:

{
  "data_shape": {
    "schema_id": "asserted_payload",
    "version": "v1"
  },
  "namespace_id": 1,
  "payload": {
    "deploy_env": "production"
  },
  "scenario_id": "example-scenario",
  "spec": null,
  "stage_id": null,
  "tenant_id": 1
}

Output:

{
  "decision": {
    "kind": "hold",
    "summary": {
      "policy_tags": [],
      "retry_hint": "await_evidence",
      "status": "hold",
      "unmet_gates": [
        "ready"
      ]
    }
  },
  "gate_evaluations": []
}

ابحث في وثائق Decision Gate للحصول على إرشادات وقت التشغيل.

مدخلات

  • max_sections (اختياري): الحد الأقصى لعدد الأقسام التي سيتم إرجاعها (الافتراضي 3، الحد الأقصى 10).
  • استعلام (مطلوب): استعلام البحث عن أقسام الوثائق.

المخرجات

  • docs_covered (مطلوب): النوع: array.
  • الأقسام (مطلوب): النوع: array.
  • suggested_followups (required): مطالبات متابعة مدركة للدور.

ملاحظات

  • استخدم للبحث السريع عن تدفق الأدلة، والمقارنات، ودلالات المزود.
  • يُرجع الأقسام المرتبة مع علامات الدور والمتابعات المقترحة.
  • البحث محدد ويقتصر على فهرس الوثائق المكون.

مثال

ابحث عن تدفق الأدلة وإرشادات مسار الثقة.

مدخل:

{
  "max_sections": 2,
  "query": "precheck vs live run trust lanes"
}

Output:

{
  "docs_covered": [
    {
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model"
    }
  ],
  "sections": [
    {
      "content": "...",
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model",
      "heading": "Core Data Flow",
      "rank": 0
    }
  ],
  "suggested_followups": [
    "Refine the query with comparator or provider keywords for targeted guidance."
  ]
}