Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions intrinsic_pybind11_vendor/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>ament_cmake_vendor_package</buildtool_depend>
<buildtool_depend>python3-dev</buildtool_depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
2 changes: 1 addition & 1 deletion intrinsic_sdk_cmake/cmake/api/all.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill.cmake
include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill_config.cmake")
include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill_container_image.cmake")
include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill_main_cc.cmake")
include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill_manifest_pbbin.cmake")
include("${intrinsic_sdk_cmake_API_DIR}/skill/intrinsic_sdk_generate_skill_bundle.cmake")

# Service APIs
include("${intrinsic_sdk_cmake_API_DIR}/service/intrinsic_sdk_generate_service_manifest.cmake")
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Copyright 2025 Intrinsic Innovation LLC
#
# You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
# copy, modify, and distribute this Intrinsic SDK in source code or binary form for use
# in connection with the services and APIs provided by Intrinsic Innovation LLC (“Intrinsic”).
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# If you use this Intrinsic SDK with any Intrinsic services, your use is subject to the Intrinsic
# Platform Terms of Service [https://intrinsic.ai/platform-terms]. If you create works that call
# Intrinsic APIs, you must agree to the terms of service for those APIs separately. This license
# does not grant you any special rights to use the services.
#
# This copyright notice shall be included in all copies or substantial portions of the software.

include_guard(GLOBAL)

#
# Generate a skill bundle that can be deployed to Flowstate.
#
# :param MANIFEST: the path to the manifest file
# :type MANIFEST: string
# :param PROTOS_TARGET: the cmake target for generating the skill's proto files
# :type PROTOS_TARGET: cmake target
# :param SOURCES: the list of source files for the skill target
# :type SOURCES: list of strings
#
# @public
#
function(intrinsic_sdk_generate_skill_bundle)
set(options)
set(one_value_args
TARGET
MANIFEST
PROTO_DESCRIPTOR_FILE
OCI_IMAGE
SKILL_BUNDLE_OUTPUT
)
set(multi_value_args)

cmake_parse_arguments(
arg
"${options}"
"${one_value_args}"
"${multi_value_args}"
${ARGN}
)

set(OUT_DIR ${CMAKE_CURRENT_BINARY_DIR})

# Generate the binary proto skill config
add_custom_command(
OUTPUT ${arg_SKILL_BUNDLE_OUTPUT}
COMMAND inbuild_import
ARGS
skill bundle
--manifest=${arg_MANIFEST}
--file_descriptor_set=${arg_PROTO_DESCRIPTOR_FILE}
--oci_image=${arg_OCI_IMAGE}
--output=${arg_SKILL_BUNDLE_OUTPUT}
COMMENT "Generating skill config for ${arg_TARGET}"
DEPENDS
${arg_PROTO_DESCRIPTOR_FILE}
${arg_OCI_IMAGE}
)

add_custom_target(${arg_TARGET} ALL
DEPENDS
${arg_SKILL_BUNDLE_OUTPUT}
)
endfunction()
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,8 @@ include_guard(GLOBAL)
#
# :param TARGET: the name for the target that generates the skill config file
# :type TARGET: string
# :param SKILL_NAME: the name of the skill
# :type SKILL_NAME: string
# :param MANIFEST_PBBIN: the path to the manifest file
# :type MANIFEST_PBBIN: string
# :param MANIFEST: the path to the manifest textproto file
# :type MANIFEST: string
# :param PROTO_DESCRIPTOR_FILE: the path to the proto descriptor file
# :type PROTO_DESCRIPTOR_FILE: string
# :param SKILL_CONFIG_FILE_OUTPUT: the output path for the skill config file
Expand All @@ -40,9 +38,7 @@ function(intrinsic_sdk_generate_skill_config)
set(options)
set(one_value_args
TARGET
# TODO(wjwwood): extract skill name from manifest
SKILL_NAME
MANIFEST_PBBIN
MANIFEST
PROTO_DESCRIPTOR_FILE
SKILL_CONFIG_FILE_OUTPUT
)
Expand All @@ -61,16 +57,14 @@ function(intrinsic_sdk_generate_skill_config)
# Generate the binary proto skill config
add_custom_command(
OUTPUT ${arg_SKILL_CONFIG_FILE_OUTPUT}
# TODO(wjwwood): figure out why the alias does not work...
# COMMAND intrinsic_sdk_cmake::skillserviceconfiggen_main
COMMAND skillserviceconfiggen_main_import
COMMAND inbuild_import
ARGS
--manifest_pbbin_filename=${arg_MANIFEST_PBBIN}
--proto_descriptor_filename=${arg_PROTO_DESCRIPTOR_FILE}
--output_config_filename=${arg_SKILL_CONFIG_FILE_OUTPUT}
COMMENT "Generating skill config for ${arg_SKILL_NAME}"
skill generate config
--manifest=${arg_MANIFEST}
--file_descriptor_set=${arg_PROTO_DESCRIPTOR_FILE}
--output=${arg_SKILL_CONFIG_FILE_OUTPUT}
COMMENT "Generating skill config for ${arg_TARGET}"
DEPENDS
${arg_MANIFEST_PBBIN}
${arg_PROTO_DESCRIPTOR_FILE}
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,20 @@ include_guard(GLOBAL)
# This file needs to be generated because it contains variable things like the
# skill name and the name of the skill's header, etc.
#
# :param MANIFEST_PBBIN: the path to the pbbin file for the skill manifest.
# This can be generated using intrinsic_sdk_generate_skill_manifest_pbbin().
# :type MANIFEST_PBBIN: string
# :param HEADER_FILES: the paths to additional header files that need to be included
# :type HEADER_FILES: list of strings
# :param MANIFEST: the path to the skill manifest in textproto format.
# :type MANIFEST: string
# :param HEADER_FILE: the path to the header file containing the
# "create skill" method referenced in the Skill Manifest.
# :type HEADER_FILE: lstring
# :param MAIN_FILE_OUTPUT: the path of the output C++ main function file
# :type MAIN_FILE_OUTPUT: string
#
# @public
#
function(intrinsic_sdk_generate_skill_main_cc)
set(options)
set(one_value_args MANIFEST_PBBIN MAIN_FILE_OUTPUT)
set(multi_value_args HEADER_FILES)
set(one_value_args MANIFEST MAIN_FILE_OUTPUT HEADER_FILE)
set(multi_value_args)

cmake_parse_arguments(
arg
Expand All @@ -49,23 +49,15 @@ function(intrinsic_sdk_generate_skill_main_cc)
${ARGN}
)

list(JOIN arg_HEADER_FILES "," joined_header_files)

# get_property(skill_service_generator_path
# TARGET skill_service_generator_import
# PROPERTY IMPORTED_LOCATION
# )
# message(FATAL_ERROR "skill_service_generator_path: ${skill_service_generator_path}")
add_custom_command(
OUTPUT ${arg_MAIN_FILE_OUTPUT}
# TODO(wjwwood): figure out why the alias does not work...
# COMMAND intrinsic_sdk_cmake::skill_service_generator
COMMAND skill_service_generator_import
--manifest=${arg_MANIFEST_PBBIN}
--lang=cpp
--out=${arg_MAIN_FILE_OUTPUT}
--cc_headers=${joined_header_files}
DEPENDS ${arg_MANIFEST_PBBIN}
COMMAND inbuild_import
skill generate entrypoint
--manifest=${arg_MANIFEST}
--language=cpp
--output=${arg_MAIN_FILE_OUTPUT}
--cc_header=${arg_HEADER_FILE}
DEPENDS ${arg_MANIFEST}
COMMENT "Generating skill cpp main file: ${arg_MAIN_FILE_OUTPUT}"
)
endfunction()

This file was deleted.

4 changes: 2 additions & 2 deletions intrinsic_sdk_cmake/cmake/fetch_sdk.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ include(FetchContent)
# Fetch the intrinsic sdk source code during configure stage.
FetchContent_Declare(
intrinsic_sdk
URL https://github.com/intrinsic-ai/sdk/archive/refs/tags/v1.16.20250210.tar.gz
URL_HASH SHA256=be55bdb2c761b7d55476c2ee843c4e444e0953f03aafce2481797eec98e19ac0
URL https://github.com/intrinsic-ai/sdk/archive/refs/tags/v1.16.20250303.tar.gz
URL_HASH SHA256=2181ae09684bc35e47b251e21d969a4e0f3cbf72818470caaa416e2834748d32
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd recommend building off the other two open prs. Now that it's been tested I should merge those, but they already update the sdk.

DOWNLOAD_EXTRACT_TIMESTAMP FALSE
)
FetchContent_GetProperties(intrinsic_sdk)
Expand Down
1 change: 1 addition & 0 deletions intrinsic_sdk_cmake/cmake/sdk.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ list(FILTER intrinsic_SRCS EXCLUDE REGEX "_main\\.cc$")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "_tmpl\\.cc$")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/examples/")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/skills/testing/")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/intrinsic/icon/control/c_api/external_action_api/.*\.cc")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/intrinsic/icon/release/hello_world.cc")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/intrinsic/icon/release/reset_simulation.cc")
list(FILTER intrinsic_SRCS EXCLUDE REGEX "/intrinsic/icon/tools")
Expand Down
Loading