handshakeManifest property

List<({String namespace, List<Map<String, Object?>> toolDescriptors, List<String> tools})> get handshakeManifest

Handshake manifest carrying each registered tool's device-owned description and raw input schema alongside the legacy bare-name list.

Entries and tools preserve registration order. manifest remains the names-only public view for callers that do not serialize a handshake. Reading this getter does not finalize the registry.

Implementation

List<
  ({
    String namespace,
    List<String> tools,
    List<Map<String, Object?>> toolDescriptors,
  })
>
get handshakeManifest =>
    List<
      ({
        String namespace,
        List<String> tools,
        List<Map<String, Object?>> toolDescriptors,
      })
    >.unmodifiable(<
      ({
        String namespace,
        List<String> tools,
        List<Map<String, Object?>> toolDescriptors,
      })
    >[
      for (final _Entry e in _entries)
        (
          namespace: e.plugin.namespace,
          tools: List<String>.unmodifiable(
            e.plugin.tools.map((LeonardTool t) => t.name),
          ),
          toolDescriptors: List<Map<String, Object?>>.unmodifiable(
            <Map<String, Object?>>[
              for (final LeonardTool tool in e.plugin.tools)
                Map<String, Object?>.unmodifiable(<String, Object?>{
                  'name': tool.name,
                  'description': tool.description,
                  'inputSchema': tool.inputSchema.raw,
                }),
            ],
          ),
        ),
    ]);