载入中...
搜索中...
未找到
ConversationAuthoring.cpp
浏览该文件的文档.
18 static constexpr std::array<const char*, 7> types{"line", "branch", "choice", "call", "command", "wait", "end"};
25 static const std::vector<Field> line{{"next", "node"}, {"speaker", "string"}, {"text", "multiline"},
63ConversationDocument::ConversationDocument(eve::dnut::SequenceAsset asset) : asset_(std::move(asset)) {}
101int ConversationDocument::getParameterCount() const { return static_cast<int>(asset_.parameters.size()); }
104 return index >= 0 && index < getParameterCount() ? asset_.parameters[static_cast<std::size_t>(index)].name
129 return index >= 0 && index < getNodeCount() ? asset_.nodes[static_cast<std::size_t>(index)].id : std::string{};
132bool ConversationDocument::hasNode(const std::string& nodeId) const { return findNode(nodeId) != nullptr; }
207std::string ConversationDocument::getField(const std::string& nodeId, const std::string& field) const {
221bool ConversationDocument::setField(const std::string& nodeId, const std::string& field, const std::string& value) {
270bool ConversationDocument::addRoute(const std::string& nodeId, const std::string& label, const std::string& target) {
282bool ConversationDocument::setRoute(const std::string& nodeId, int index, const std::string& label,
306int ConversationDocument::getDiagnosticCount() const { return static_cast<int>(diagnostics_.size()); }
310 return diagnostics_[static_cast<std::size_t>(index)].severity == ConversationDiagnostic::Severity::Error
Dialogue payload codecs for L1 sequence assets.
Result< std::string > toJson() const
Serialize this value as deterministic compact JSON.
Definition Value.cpp:67
static Result< Value > fromJson(std::string_view json)
Parse one strict JSON value into an owning Value.
Definition Value.cpp:57
static Value string(std::string value)
Compatibility factory for a string value.
Definition Value.h:110
Value * find(const std::string &key) noexcept
Return an object member, or nullptr when absent.
Definition Value.cpp:124
bool validate()
Validate the graph and refresh structured diagnostics.
Definition ConversationAuthoring.cpp:299
bool addNode(const std::string &nodeId, const std::string &kind)
Add a node of kind line, branch, choice, call, command, wait, or end.
Definition ConversationAuthoring.cpp:134
std::string getParameter(int index) const
Return a declared parameter by insertion order.
Definition ConversationAuthoring.cpp:103
std::string getNodeKind(const std::string &nodeId) const
Return a node kind name.
Definition ConversationAuthoring.cpp:174
int getDiagnosticLine(int index) const
Return a diagnostic line, or zero for graph diagnostics.
Definition ConversationAuthoring.cpp:320
bool removeRoute(const std::string &nodeId, int index)
Remove an outgoing route.
Definition ConversationAuthoring.cpp:292
bool setEntry(const std::string &nodeId)
Set the entry node identifier.
Definition ConversationAuthoring.cpp:94
std::string getField(const std::string &nodeId, const std::string &field) const
Return a scalar field value by key.
Definition ConversationAuthoring.cpp:207
bool addParameter(const std::string &name)
Add a unique parameter.
Definition ConversationAuthoring.cpp:108
bool removeParameter(const std::string &name)
Remove a parameter.
Definition ConversationAuthoring.cpp:118
std::string getRouteLabel(const std::string &nodeId, int index) const
Return a route label or expression.
Definition ConversationAuthoring.cpp:256
int getRouteCount(const std::string &nodeId) const
Return the number of outgoing conditional or choice routes.
Definition ConversationAuthoring.cpp:251
std::string getRouteTarget(const std::string &nodeId, int index) const
Return a route destination.
Definition ConversationAuthoring.cpp:263
int getFieldCount(const std::string &nodeId) const
Return the reflected inspector field count for a node kind.
Definition ConversationAuthoring.cpp:188
std::string getFieldName(const std::string &nodeId, int index) const
Return a reflected field key.
Definition ConversationAuthoring.cpp:193
bool addRoute(const std::string &nodeId, const std::string &label, const std::string &target)
Append an outgoing route.
Definition ConversationAuthoring.cpp:270
bool setRoute(const std::string &nodeId, int index, const std::string &label, const std::string &target)
Replace an outgoing route.
Definition ConversationAuthoring.cpp:282
std::string getDiagnosticMessage(int index) const
Return a diagnostic message.
Definition ConversationAuthoring.cpp:324
std::string getFieldKind(const std::string &nodeId, int index) const
Return a field UI hint such as string, multiline, expression, asset, or json.
Definition ConversationAuthoring.cpp:200
bool setNodeKind(const std::string &nodeId, const std::string &kind)
Change a node kind while preserving compatible fields.
Definition ConversationAuthoring.cpp:179
bool removeNode(const std::string &nodeId)
Remove a node and references to it.
Definition ConversationAuthoring.cpp:146
bool setVersion(int version)
Set the asset schema version to a positive value.
Definition ConversationAuthoring.cpp:87
std::string getNodeId(int index) const
Return a stable node identifier by insertion order.
Definition ConversationAuthoring.cpp:128
std::string getDiagnosticSeverity(int index) const
Return error or warning.
Definition ConversationAuthoring.cpp:308
std::string getDiagnosticPath(int index) const
Return a diagnostic source path.
Definition ConversationAuthoring.cpp:315
bool renameNode(const std::string &oldId, const std::string &newId)
Rename a node and rewrite graph references.
Definition ConversationAuthoring.cpp:163
int getDiagnosticCount() const
Return the current diagnostic count.
Definition ConversationAuthoring.cpp:306
bool hasNode(const std::string &nodeId) const
Test whether a node exists.
Definition ConversationAuthoring.cpp:132
bool setField(const std::string &nodeId, const std::string &field, const std::string &value)
Set a scalar field value by key.
Definition ConversationAuthoring.cpp:221
bool setId(const std::string &id)
Rename the document identifier.
Definition ConversationAuthoring.cpp:80
ConversationDocument(std::string id={})
Create an empty document with one end node.
Definition ConversationAuthoring.cpp:54
int getParameterCount() const
Return the number of declared parameters.
Definition ConversationAuthoring.cpp:101
Definition ConversationAuthoring.cpp:12
eve::Result< void > renameConversationNode(std::vector< eve::dnut::SequenceAsset > &assets, const std::string &assetId, const std::string &oldId, const std::string &newId)
Rename one stable node and rewrite all references inside its asset.
Definition ConversationToolchain.cpp:96
eve::Result< void > lintConversations(const std::vector< eve::dnut::SequenceAsset > &assets, const std::string &path, std::vector< ConversationDiagnostic > &diagnostics)
Validate references and report unreachable nodes.
Definition ConversationCompiler.cpp:36
std::string sequencePayloadString(const eve::dnut::SequenceNode &node, std::string_view key)
Read an optional string from a node payload; missing or ill-typed values yield empty.
Definition DialogueSequence.cpp:108
Definition Container.h:602
Immutable, parameterized and versioned compiled sequence.
Definition SequenceAsset.h:77
const SequenceNode * findNode(const std::string &nodeId) const noexcept
Find one node by its stable identifier.
Definition SequenceAsset.cpp:29
std::vector< SequenceParameter > parameters
Definition SequenceAsset.h:82