- 删除 cli.RegisterRuntimeContractFinal 包装器:生产侧零调用(全部走 corecmd.New 内部注册或 contractfinal 直调),9 处测试调用迁移到 contractfinal.RegisterRuntimeContractFinal - 删除死常量 ProvenanceEmbeddedCommandCatalog(全库零引用的 legacy wire label;运行时装配统一打 SchemaSourceRuntimeAssembled) - 同步 6 处文档/注释:AGENTS.md、RFC §277、contract/final.go、 contractfinal/store.go、contractfinal/doc.go、corecmd.go、 contract/doc.go、contract_register_seam_test.go 的死符号钉扎改为 import 前缀分层检查兜底
52 lines
2.6 KiB
Go
52 lines
2.6 KiB
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Package contract owns command-framework declaration DTOs and the
|
|
// ProductDecl registry. It is intentionally free of Cobra-keyed runtime
|
|
// stores and Catalog delivery code.
|
|
//
|
|
// This package is the sole definition point for:
|
|
// - ContractFinalPayload (DTO only — store lives in corecmd/contractfinal)
|
|
// - ProductDecl (+ string-keyed registry; not Cobra-keyed)
|
|
// - SafetySpec / SelectionSpec / InterfaceSpec / DryRunSpec / identity /
|
|
// positionals / ParamDecl
|
|
// - FieldProvenance / FieldCandidateProvenance
|
|
//
|
|
// Package boundary:
|
|
//
|
|
// - Types / ProductDecl → corecmd/contract (this package).
|
|
// - Authoring wrapper → corecmd.ContractDecl (leaf-facing; nested fields are
|
|
// these contract types). Name is ContractDecl, not SchemaDecl: "Schema" in
|
|
// this repo means Catalog / ToolSpec delivery, not the author declaration.
|
|
// - AnnotateRuntime* writers → internal/corecmd/runtimeannotate
|
|
// (framework-owned; cli may thin re-export; corecmd must not import cli).
|
|
// - ContractFinal cobra store + Register seam → internal/corecmd/contractfinal
|
|
// (all callers register here directly; corecmd.New registers internally).
|
|
// - Catalog assembly / ResolveMeta (`RegisterSchemaSourceRoot` →
|
|
// `ResolveSchemaBuild`); go:embed only for reviewed inputs → internal/cli
|
|
// (delivery root).
|
|
//
|
|
// Description declare vs delivery (not dual authority):
|
|
//
|
|
// - Construction requires ContractDecl.Description (declaration evidence).
|
|
// - Catalog delivery prefers Cobra Long when present → provenance cobra_help;
|
|
// without Long, declared Description is delivered → contract_final.
|
|
// - Title prefers declared ContractDecl/ContractFinal, then Cobra Short, then
|
|
// MCP metadata. Declare is not "wire final value" for description when Long
|
|
// exists; assembly stamps the real winner.
|
|
//
|
|
// Authoring path: corecmd.ContractDecl → ContractFinalPayload (via
|
|
// contractfinal seam); ProductDecl for product-level Agent routing.
|
|
// Provenance stamp for declared leaf Safety remains "corecmd.contract".
|
|
package contract
|