@inneranimalmedia/agentsam-sdk 2.6.7 → 2.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +37 -0
  2. package/docs/REPO_FILE_MAP.txt +132 -0
  3. package/migrations/d1/0018_goap_control_plane_remaster.sql +40 -0
  4. package/migrations/d1/0019_agentsam_agent_run_plan_todo.sql +14 -0
  5. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +20 -9
  6. package/migrations/runtime/0002_goap_blackboard_v1.sql +15 -0
  7. package/migrations/runtime/0004_agent_run_plan_linkage.sql +8 -0
  8. package/native/agentsam-machine/cli/Cargo.toml +8 -1
  9. package/native/agentsam-machine/cli/README.md +21 -0
  10. package/native/agentsam-machine/core/Cargo.toml +7 -0
  11. package/native/agentsam-machine/core/README.md +14 -0
  12. package/native/agentsam-machine/core/build.rs +33 -0
  13. package/native/agentsam-machine/core/contracts/source-types.v1.json +353 -0
  14. package/native/agentsam-machine/core/src/lib.rs +6 -0
  15. package/native/agentsam-machine/core/src/source_types.rs +2 -2
  16. package/package.json +16 -6
  17. package/packages/agentsam-errors/package.json +1 -1
  18. package/packages/agentsam-errors/src/index.js +1 -0
  19. package/packages/agentsam-errors/src/tool.js +56 -0
  20. package/packages/agentsam-errors/test/tool.test.mjs +58 -0
  21. package/packages/agentsam-goap/README.md +52 -0
  22. package/packages/agentsam-goap/package.json +37 -0
  23. package/packages/agentsam-goap/src/adapters/d1-sqlite.js +570 -0
  24. package/packages/agentsam-goap/src/adapters/memory.js +199 -0
  25. package/packages/agentsam-goap/src/contracts.js +226 -0
  26. package/packages/agentsam-goap/src/control-plane.js +112 -0
  27. package/packages/agentsam-goap/src/errors.js +157 -0
  28. package/packages/agentsam-goap/src/index.js +5 -0
  29. package/packages/agentsam-goap/src/world.js +202 -0
  30. package/packages/agentsam-goap/test/goap-control-plane.test.mjs +245 -0
  31. package/packages/agentsam-goap/test/world.test.mjs +79 -0
  32. package/packages/agentsam-nav/dist/Nav.d.ts +43 -0
  33. package/packages/agentsam-nav/dist/NavCollapsible.d.ts +10 -0
  34. package/packages/agentsam-nav/dist/NavContent.d.ts +2 -0
  35. package/packages/agentsam-nav/dist/NavFooter.d.ts +2 -0
  36. package/packages/agentsam-nav/dist/NavGroup.d.ts +3 -0
  37. package/packages/agentsam-nav/dist/NavHeader.d.ts +2 -0
  38. package/packages/agentsam-nav/dist/NavMenu.d.ts +22 -0
  39. package/packages/agentsam-nav/dist/NavProvider.d.ts +35 -0
  40. package/packages/agentsam-nav/dist/NavTrigger.d.ts +2 -0
  41. package/packages/agentsam-nav/dist/Surfaces.d.ts +41 -0
  42. package/packages/agentsam-nav/dist/browser.d.ts +11 -0
  43. package/packages/agentsam-nav/dist/browser.global.js +135 -0
  44. package/packages/agentsam-nav/dist/browser.js +7290 -0
  45. package/packages/agentsam-nav/dist/contracts.d.ts +76 -0
  46. package/packages/agentsam-nav/dist/index.d.ts +11 -0
  47. package/packages/agentsam-nav/dist/index.js +7291 -0
  48. package/packages/agentsam-nav/dist/legacy.css +83 -0
  49. package/packages/agentsam-nav/dist/shell.css +113 -0
  50. package/packages/agentsam-nav/dist/theme.css +113 -0
  51. package/packages/agentsam-nav/dist/utils.d.ts +1 -0
  52. package/packages/agentsam-repository/src/goap.js +13 -14
  53. package/packages/agentsam-repository/src/goap.js.bak-20260922011251 +670 -0
  54. package/packages/agentsam-repository/src/tickets.js +15 -22
  55. package/packages/agentsam-repository/test/goap-tickets-workspace-state.test.mjs +19 -8
  56. package/packages/connectors/cloudflare/package.json +3 -1
  57. package/packages/identity/tests/lane1-packed-consumer.test.mjs +1 -1
  58. package/python/agentsam_sdk/repository/intelligence/discovery.py +27 -2
  59. package/python/agentsam_sdk/repository/intelligence/git.py +4 -0
  60. package/python/tests/test_repository_intelligence.py +30 -0
  61. package/src/cli/command-catalog.js +2 -1
  62. package/src/cli.js +10 -1
  63. package/src/commands/goap-world.js +134 -0
  64. package/src/commands/goap.js +11 -4
  65. package/src/commands/machine-binary.js +33 -27
  66. package/src/commands/machine-runtime.js +266 -0
  67. package/src/commands/machine.js +122 -51
  68. package/src/commands/package.js +530 -0
  69. package/src/commands/plan-ledger.js +370 -0
  70. package/src/commands/plan.js +183 -0
  71. package/src/commands/skill.js +78 -17
  72. package/src/knowledge/source.js +1 -1
  73. package/src/lib/slash-commands.js +1 -1
  74. package/src/local/runtime-store.js +24 -2
  75. package/src/local/sqlite.js +17 -0
  76. package/src/sam/operations/package-audit.js +41 -0
  77. package/src/sam/seed.js +2 -0
  78. package/skills/grok-auth/SKILL.md +0 -110
  79. package/skills/grok-auth/agentsam.skill.json +0 -25
  80. package/skills/grok-auth/references/grok-identity.md +0 -64
  81. package/skills/grok-auth/references/per-user-data.md +0 -49
  82. package/skills/grok-auth/references/prewired-and-env.md +0 -54
  83. package/skills/grok-auth/references/session-ui.md +0 -133
  84. package/skills/grok-auth/references/sign-in-methods.md +0 -55
  85. package/skills/grok-auth/references/wiring.md +0 -71
  86. package/skills/grok-building-games/SKILL.md +0 -213
  87. package/skills/grok-building-games/agentsam.skill.json +0 -25
  88. package/skills/grok-building-games/references/3d-libs.md +0 -64
  89. package/skills/grok-building-games/references/ai-pathfinding.md +0 -122
  90. package/skills/grok-building-games/references/audio.md +0 -129
  91. package/skills/grok-building-games/references/babylon.md +0 -202
  92. package/skills/grok-building-games/references/collision-physics.md +0 -122
  93. package/skills/grok-building-games/references/ecs-architecture.md +0 -111
  94. package/skills/grok-building-games/references/game-feel-juice.md +0 -110
  95. package/skills/grok-building-games/references/genres/board-card-chess.md +0 -89
  96. package/skills/grok-building-games/references/genres/endless-runner.md +0 -83
  97. package/skills/grok-building-games/references/genres/fps.md +0 -105
  98. package/skills/grok-building-games/references/genres/platformer-2d.md +0 -97
  99. package/skills/grok-building-games/references/genres/puzzle-match3-tetris.md +0 -131
  100. package/skills/grok-building-games/references/genres/racing-kart.md +0 -106
  101. package/skills/grok-building-games/references/genres/topdown-twin-stick.md +0 -97
  102. package/skills/grok-building-games/references/genres/tower-defense.md +0 -84
  103. package/skills/grok-building-games/references/genres/voxel-minecraft.md +0 -89
  104. package/skills/grok-building-games/references/input.md +0 -139
  105. package/skills/grok-building-games/references/phaser.md +0 -277
  106. package/skills/grok-building-games/references/procedural-generation.md +0 -141
  107. package/skills/grok-building-games/references/save-persistence.md +0 -108
  108. package/skills/grok-building-games/references/threejs-foundational.md +0 -148
  109. package/skills/grok-controls/SKILL.md +0 -274
  110. package/skills/grok-controls/agentsam.skill.json +0 -25
  111. package/skills/grok-design-ui/SKILL.md +0 -122
  112. package/skills/grok-design-ui/agentsam.skill.json +0 -25
  113. package/skills/grok-design-ui/references/animations.md +0 -379
  114. package/skills/grok-design-ui/references/performance.md +0 -88
  115. package/skills/grok-design-ui/references/refined-ui.md +0 -384
  116. package/skills/grok-design-ui/references/surfaces.md +0 -247
  117. package/skills/grok-design-ui/references/typography.md +0 -123
  118. package/skills/grok-game-animation-frames/SKILL.md +0 -84
  119. package/skills/grok-game-animation-frames/agentsam.skill.json +0 -25
  120. package/skills/grok-game-asset-core/SKILL.md +0 -69
  121. package/skills/grok-game-asset-core/agentsam.skill.json +0 -25
  122. package/skills/grok-game-character-consistency/SKILL.md +0 -69
  123. package/skills/grok-game-character-consistency/agentsam.skill.json +0 -25
  124. package/skills/grok-game-tilesets/SKILL.md +0 -65
  125. package/skills/grok-game-tilesets/agentsam.skill.json +0 -25
  126. package/skills/grok-game-ui-icons/SKILL.md +0 -56
  127. package/skills/grok-game-ui-icons/agentsam.skill.json +0 -25
  128. package/skills/grok-generate2dmap/LICENSE +0 -21
  129. package/skills/grok-generate2dmap/SKILL.md +0 -120
  130. package/skills/grok-generate2dmap/SOURCE.md +0 -6
  131. package/skills/grok-generate2dmap/agentsam.skill.json +0 -25
  132. package/skills/grok-generate2dmap/references/deliverables.md +0 -101
  133. package/skills/grok-generate2dmap/references/layered-map-contract.md +0 -209
  134. package/skills/grok-generate2dmap/references/map-strategies.md +0 -341
  135. package/skills/grok-generate2dmap/references/object-production-gate.md +0 -24
  136. package/skills/grok-generate2dmap/references/pipeline.md +0 -149
  137. package/skills/grok-generate2dmap/references/prop-pack-contract.md +0 -174
  138. package/skills/grok-generate2dmap/references/side-scroll-stages.md +0 -29
  139. package/skills/grok-generate2dmap/scripts/compose_layered_preview.py +0 -157
  140. package/skills/grok-generate2dmap/scripts/extract_prop_pack.py +0 -369
  141. package/skills/grok-generate2dsprite/LICENSE +0 -21
  142. package/skills/grok-generate2dsprite/SKILL.md +0 -313
  143. package/skills/grok-generate2dsprite/SOURCE.md +0 -6
  144. package/skills/grok-generate2dsprite/agentsam.skill.json +0 -25
  145. package/skills/grok-generate2dsprite/references/modes.md +0 -124
  146. package/skills/grok-generate2dsprite/references/prompt-rules.md +0 -315
  147. package/skills/grok-generate2dsprite/scripts/generate2dsprite.py +0 -1031
  148. package/skills/grok-generate2dsprite/scripts/make_layout_guide.py +0 -109
  149. package/skills/grok-imagine/SKILL.md +0 -201
  150. package/skills/grok-imagine/agentsam.skill.json +0 -25
  151. package/skills/grok-multiplayer-p2p/SKILL.md +0 -111
  152. package/skills/grok-multiplayer-p2p/agentsam.skill.json +0 -25
  153. package/skills/grok-multiplayer-p2p/references/react-binding.md +0 -144
  154. package/skills/grok-multiplayer-p2p/references/signaling-relay.md +0 -269
  155. package/skills/grok-neon/SKILL.md +0 -157
  156. package/skills/grok-neon/agentsam.skill.json +0 -25
  157. package/skills/grok-og/SKILL.md +0 -102
  158. package/skills/grok-og/agentsam.skill.json +0 -25
  159. package/skills/grok-og/references/brand-pass.md +0 -53
  160. package/skills/grok-og/references/custom-card.md +0 -107
  161. package/skills/grok-og/references/favicon-and-icons.md +0 -48
  162. package/skills/grok-og/references/og-type-contract.md +0 -18
  163. package/skills/grok-og/references/placeholder-card.md +0 -21
  164. package/skills/grok-og/references/x-banner.md +0 -41
  165. package/skills/grok-threejs/SKILL.md +0 -67
  166. package/skills/grok-threejs/agentsam.skill.json +0 -25
  167. package/skills/grok-threejs/references/llms-full.txt +0 -2780
  168. package/skills/grok-video2dsprite/LICENSE +0 -21
  169. package/skills/grok-video2dsprite/SKILL.md +0 -236
  170. package/skills/grok-video2dsprite/SOURCE.md +0 -6
  171. package/skills/grok-video2dsprite/agentsam.skill.json +0 -25
  172. package/skills/grok-video2dsprite/references/pipeline.md +0 -90
  173. package/skills/grok-video2dsprite/references/prompt-rules.md +0 -63
  174. package/skills/grok-video2dsprite/scripts/video2dsprite.py +0 -490
  175. package/skills/grok-xai-api/SKILL.md +0 -152
  176. package/skills/grok-xai-api/agentsam.skill.json +0 -25
  177. package/test/account-session.test.mjs +0 -101
  178. package/test/agent-capabilities.test.mjs +0 -67
  179. package/test/app-authority-context.test.mjs +0 -32
  180. package/test/app-building-skills.test.mjs +0 -61
  181. package/test/apps-scaffold-contract.test.mjs +0 -115
  182. package/test/blender-cad.test.mjs +0 -146
  183. package/test/cad-docker.test.mjs +0 -96
  184. package/test/capabilities.test.mjs +0 -133
  185. package/test/cli/api-key-env-whoami.test.mjs +0 -129
  186. package/test/cli/catalog-authority.test.mjs +0 -64
  187. package/test/cli/codebaseindex-plan-ux.test.mjs +0 -37
  188. package/test/cli/eval-live.test.mjs +0 -219
  189. package/test/cli/go.test.mjs +0 -128
  190. package/test/cli/local-vault-and-provider-setup.test.mjs +0 -268
  191. package/test/cli/machine-command.test.mjs +0 -34
  192. package/test/cli/mcp-client.test.mjs +0 -256
  193. package/test/cli/preferences-runtime.test.mjs +0 -11
  194. package/test/cli/runtime-persist.test.mjs +0 -56
  195. package/test/cli/runtime-ui.test.mjs +0 -141
  196. package/test/cli/rust-command.test.mjs +0 -21
  197. package/test/cli/skill-npm-and-env.test.mjs +0 -52
  198. package/test/cli/status-actions.test.mjs +0 -88
  199. package/test/cli/wireframes-go-registry.test.mjs +0 -139
  200. package/test/cli-preferences.test.mjs +0 -46
  201. package/test/cloudflare-connector.test.mjs +0 -93
  202. package/test/cloudflare-runtime.test.mjs +0 -82
  203. package/test/context.test.mjs +0 -159
  204. package/test/credentials-audit.test.mjs +0 -113
  205. package/test/deploy-health-scan.test.mjs +0 -95
  206. package/test/deploy-receipt.test.mjs +0 -91
  207. package/test/dockerize.test.mjs +0 -93
  208. package/test/error-diagnostics.test.mjs +0 -124
  209. package/test/eval-context.test.mjs +0 -37
  210. package/test/execution-approvals.test.mjs +0 -27
  211. package/test/fixtures/cad/courtyard-house.json +0 -208
  212. package/test/fixtures/knowledge-rpc-worker.mjs +0 -16
  213. package/test/fixtures/project-authority/customer-app/.agentsam/app.json +0 -5
  214. package/test/fixtures/project-authority/customer-app/apps/my-product/index.ts +0 -1
  215. package/test/fixtures/project-authority/customer-app/wrangler.toml +0 -17
  216. package/test/gcloud-auth.test.mjs +0 -111
  217. package/test/go/build-source-identity.test.mjs +0 -31
  218. package/test/go/cloudflare-probe.test.mjs +0 -317
  219. package/test/go/distribution.test.mjs +0 -28
  220. package/test/google-cloud-connection.test.mjs +0 -83
  221. package/test/google-cloud-inventory.test.mjs +0 -64
  222. package/test/indexing-provider.test.mjs +0 -29
  223. package/test/init-options.test.mjs +0 -35
  224. package/test/integration/ai-access-onboarding.test.mjs +0 -47
  225. package/test/integration/app-command.test.mjs +0 -85
  226. package/test/integration/autorag-project-authority.integration.test.mjs +0 -51
  227. package/test/integration/autorag-runtime-discovery.test.mjs +0 -107
  228. package/test/integration/cad-discovery.test.mjs +0 -158
  229. package/test/integration/cad-docker-executor.test.mjs +0 -249
  230. package/test/integration/cad-execution.test.mjs +0 -184
  231. package/test/integration/cad-project-app.test.mjs +0 -31
  232. package/test/integration/cad-project-d1.test.mjs +0 -25
  233. package/test/integration/cad-project-native.test.mjs +0 -24
  234. package/test/integration/cad-project-workflow.test.mjs +0 -9
  235. package/test/integration/cad-project.test.mjs +0 -85
  236. package/test/integration/cli-help.test.mjs +0 -41
  237. package/test/integration/cms-app-scaffold.test.mjs +0 -77
  238. package/test/integration/cms-site-tenancy-contract.test.mjs +0 -268
  239. package/test/integration/codebaseindex-ingest.test.mjs +0 -255
  240. package/test/integration/core-client.integration.test.mjs +0 -55
  241. package/test/integration/database-hosted-honesty.test.mjs +0 -49
  242. package/test/integration/desktop-keychain-boundary.test.mjs +0 -45
  243. package/test/integration/error-runtime-rpc.test.mjs +0 -71
  244. package/test/integration/features-resolve.test.mjs +0 -147
  245. package/test/integration/hosted-work-host-authority.test.mjs +0 -47
  246. package/test/integration/icon-registry.test.mjs +0 -67
  247. package/test/integration/ingest-discover-models.test.mjs +0 -30
  248. package/test/integration/inspect-path-cli.test.mjs +0 -46
  249. package/test/integration/install-script.test.mjs +0 -110
  250. package/test/integration/inventory-core.test.mjs +0 -53
  251. package/test/integration/inventory-eligibility.test.mjs +0 -59
  252. package/test/integration/inventory-evidence.test.mjs +0 -125
  253. package/test/integration/knowledge-rpc.test.mjs +0 -112
  254. package/test/integration/local-fs.test.mjs +0 -113
  255. package/test/integration/local-provider-bridge.test.mjs +0 -65
  256. package/test/integration/local-studio-settings-production.test.mjs +0 -40
  257. package/test/integration/lockfile-sync.test.mjs +0 -26
  258. package/test/integration/merkle-cli.test.mjs +0 -61
  259. package/test/integration/merkle-persistence-identity.test.mjs +0 -48
  260. package/test/integration/plugins-cloudflare.integration.test.mjs +0 -28
  261. package/test/integration/provider-env-cli.test.mjs +0 -60
  262. package/test/integration/provider-factory.test.mjs +0 -197
  263. package/test/integration/repository-company-graph.test.mjs +0 -90
  264. package/test/integration/runtime-migrations.test.mjs +0 -87
  265. package/test/integration/runtime-status.integration.test.mjs +0 -227
  266. package/test/integration/sam-activity-recovery.test.mjs +0 -147
  267. package/test/integration/sam-decision.test.mjs +0 -584
  268. package/test/integration/sam-kernel.test.mjs +0 -99
  269. package/test/integration/sam-planning-astar.test.mjs +0 -279
  270. package/test/integration/scaffold-cloudflare.test.mjs +0 -46
  271. package/test/integration/skill-runtime.test.mjs +0 -240
  272. package/test/integration/storage-architecture.test.mjs +0 -154
  273. package/test/integration/store-discovery.test.mjs +0 -44
  274. package/test/integration/studio-fs-pty-e2e.test.mjs +0 -294
  275. package/test/integration/terminal-exec.integration.test.mjs +0 -86
  276. package/test/integration/theme-package-registry.test.mjs +0 -31
  277. package/test/integration/tool-runtime.test.mjs +0 -124
  278. package/test/integration/tool-schema.test.mjs +0 -59
  279. package/test/jr-dev-skill.test.mjs +0 -26
  280. package/test/knowledge-context-pack.test.mjs +0 -19
  281. package/test/knowledge-postgres.test.mjs +0 -40
  282. package/test/knowledge-service.test.mjs +0 -110
  283. package/test/knowledge.test.mjs +0 -206
  284. package/test/live/terminal-transport.live.test.mjs +0 -24
  285. package/test/local-sessions.test.mjs +0 -57
  286. package/test/local-studio-deploy.test.mjs +0 -83
  287. package/test/loopback-oauth.test.mjs +0 -53
  288. package/test/merkle-render.test.mjs +0 -31
  289. package/test/mini.test.mjs +0 -140
  290. package/test/model-catalog.test.mjs +0 -70
  291. package/test/models.test.mjs +0 -309
  292. package/test/npm10-lock.test.mjs +0 -29
  293. package/test/ollama.test.mjs +0 -137
  294. package/test/open-url.test.mjs +0 -64
  295. package/test/openai-responses.test.mjs +0 -155
  296. package/test/portable-context.test.mjs +0 -94
  297. package/test/project-config.test.mjs +0 -81
  298. package/test/project-rules.test.mjs +0 -44
  299. package/test/provider-credentials.test.mjs +0 -106
  300. package/test/rehydrate.test.mjs +0 -25
  301. package/test/release-hygiene.test.mjs +0 -42
  302. package/test/repository-snapshot-view.test.mjs +0 -112
  303. package/test/responses-runner.test.mjs +0 -465
  304. package/test/runtime-activity.test.mjs +0 -98
  305. package/test/sdk-worker-contract.test.mjs +0 -72
  306. package/test/security.test.mjs +0 -266
  307. package/test/setup-planner.test.mjs +0 -74
  308. package/test/setup-runtime.test.mjs +0 -51
  309. package/test/shell.test.mjs +0 -281
  310. package/test/skills.test.mjs +0 -22
  311. package/test/smoke.mjs +0 -122
  312. package/test/telemetry.test.mjs +0 -79
  313. package/test/terminal/local-pty.mock.test.mjs +0 -153
  314. package/test/terminal-machine-identity.test.mjs +0 -88
  315. package/test/theme-portability.test.mjs +0 -14
  316. package/test/tools-search.test.mjs +0 -73
  317. package/test/unit/website-assets-bindings.test.mjs +0 -60
  318. package/test/whoami-resume.test.mjs +0 -157
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 0x0funky
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,236 +0,0 @@
1
- ---
2
- name: video2dsprite
3
- description: >
4
- Grok Build only. Turn a 2D character still into denser animation sprites via
5
- imagine_text_to_image base → imagine_image_to_video (6s/10s run-in-place) → ffmpeg
6
- frames → magenta chroma-key → dense sampled strips/grids/GIFs. Use when the
7
- user wants video-to-sprite, smoother run/walk cycles, or denser intermediate
8
- poses. Prefer generate2dsprite for crisp production pixel sheets. Triggers on
9
- "video to sprite", "imagine_image_to_video sprite", "dense walk cycle", "smooth run
10
- animation from video".
11
- metadata:
12
- short-description: "Video→dense sprites (imagine_image_to_video + chroma postprocess)"
13
- user-invocable: false
14
- ---
15
-
16
- # Video2dsprite (Grok Build only)
17
-
18
- Convert a **base 2D character image** into **dense animation sprites** using Grok Build's native video tools.
19
-
20
- ## App-builder / Grok environment
21
-
22
- | Item | Value |
23
- | --- | --- |
24
- | Skill dir | `.grok/skills/video2dsprite/` |
25
- | Scripts | `python3 .grok/skills/video2dsprite/scripts/video2dsprite.py …` |
26
- | Video tools | `imagine_image_to_video` — animate one base `file_path` (verify present) |
27
- | Inspect | `read_file` on stills/frames; report paths for videos |
28
- | Deps | ffmpeg + Pillow + numpy (preinstalled in app-builder image) |
29
- | Output home | `assets/sprites/video2dsprite/<name>/` under `/workspace` |
30
- | Default | Prefer **`generate2dsprite`** for production heroes; this is the denser-motion path |
31
-
32
- ```text
33
- base still → imagine_image_to_video (in-place motion) → extract frames → chroma key → sample/normalize → strip / grid / GIF
34
- ```
35
-
36
- ## Platform gate (read first)
37
-
38
- | Runtime | Supported? |
39
- | --- | --- |
40
- | **Grok Build** (xAI) | **Yes** — requires an image generator + an image→video tool |
41
- | Codex / Claude / other agents | **No** — they lack Grok video tools. Tell the user this skill is Grok Build only and offer `$generate2dsprite` instead |
42
-
43
- **Gate on the capability, not the exact tool name.** Image generation appears
44
- as `imagine_text_to_image` / `imagine_image_to_image`; video as `imagine_image_to_video`
45
- or (legacy) `generate_video`. Use whichever pair your tool list has. Stop and
46
- explain only when you have no image→video tool at all. Do not fake motion with
47
- code-drawn frames.
48
-
49
- This skill is an **optional denser-motion path**. It does **not** replace `$generate2dsprite`:
50
-
51
- | Use `$generate2dsprite` when… | Use `$video2dsprite` when… |
52
- | --- | --- |
53
- | Crisp pixel sheets, fixed grids, identity-critical heroes | User wants denser intermediate poses / smoother feeling loops |
54
- | Attack/cast body sheets, prop packs, engine atlases | Experimenting with video-sourced run/walk/idle motion |
55
- | Production default for most game sprites | User explicitly asks for video → frames → sprites |
56
-
57
- Video softens pixels, drifts identity, and leaves chroma fringes. Always QC; for production heroes, prefer `$generate2dsprite` unless the user wants the video look.
58
-
59
- ## Parameters
60
-
61
- Infer from the user request:
62
-
63
- - `subject`: character / creature description, or path to existing still
64
- - `action`: `run` | `walk` | `idle` | `attack` | custom motion phrase
65
- - `view`: usually `side` (side-scroller). `topdown` is harder — warn and keep camera locked
66
- - `duration`: `6` (default) or `10` seconds
67
- - `frame_counts`: which denser sets to export, default `8,16,24,48`
68
- - `cell_size`: output sprite cell, default `128`
69
- - `anchor`: `feet` (default for side locomotion) | `center`
70
- - `bg`: solid `#FF00FF` (required for chroma)
71
- - `name`: output slug
72
- - `out_dir`: working folder (default `./sprites/video2dsprite/<name>/` or project-relative)
73
-
74
- ## Agent rules
75
-
76
- 1. **Grok-only.** Refuse on non-Grok runtimes with a short explanation + `$generate2dsprite` alternative.
77
- 2. **Still → video, never text-to-video alone.** Stage frame 1 as a clean still with `imagine_text_to_image` (from a prompt, or from a reference `file_path`). Then call `imagine_image_to_video` with that still's `file_path`.
78
- 3. **In-place motion.** Prompt for run/walk **in place** facing a fixed direction. No camera pan, no background scroll, no scene change. Subject stays roughly centered.
79
- 4. **Solid magenta background** on the base and preserved in the video prompt (`#FF00FF` / pure magenta). Required for flood-fill chroma.
80
- 5. **Do not invent art with PIL/Canvas.** Base art comes from `imagine_text_to_image` or a user/local still. Scripts only postprocess.
81
- 6. **Do not put experimental outputs into the game** unless the user asks to integrate.
82
- 7. **Prefer one locomotion cycle for game use.** Dense sample across a full 6s multi-cycle clip is fine for previews; for engine sheets, optionally re-sample a single cycle (12–16 frames) after visual QC.
83
- 8. **Report absolute paths** of video, cleaned frames, strips, and preview GIFs when done.
84
-
85
- ## Workflow
86
-
87
- ### 1. Plan
88
-
89
- Pick the smallest useful run:
90
-
91
- - Side-view run/walk loop → this skill
92
- - Multi-action hero kit → still use `$generate2dsprite` per action; only use video for locomotion if requested
93
- - FX / projectile / prop packs → `$generate2dsprite`, not video
94
-
95
- Create:
96
-
97
- ```text
98
- <out_dir>/
99
- base/
100
- video/
101
- frames-raw/
102
- frames-clean/
103
- sprite/ # default 8-frame set + denser x16/x24/x48
104
- prompt-used.txt
105
- pipeline-meta.json
106
- README.txt
107
- ```
108
-
109
- ### 2. Build the base still
110
-
111
- Options:
112
-
113
- - **A. Existing sprite:** read the image, composite onto solid `#FF00FF` if needed, then pass that sandbox path to `imagine_image_to_image` / `imagine_image_to_video`
114
- - **B. New character:** `imagine_text_to_image` with solid magenta background, full body, side view, centered
115
- - **C. Match reference:** `imagine_image_to_image` with the reference `file_path`, moving it onto magenta and preserving identity
116
-
117
- Base requirements:
118
-
119
- - Full body visible, generous magenta margin
120
- - Side view for run/walk (profile or 3/4 side), feet near bottom third
121
- - Same art style as the rest of the project when a reference exists
122
- - No text, UI, watermark, or second character
123
-
124
- Copy the returned `file_path` and save as
125
- `<out_dir>/base/<name>-base.png`; keep the base `file_path` for the video call.
126
-
127
- Write the exact image prompt into `prompt-used.txt`.
128
-
129
- ### 3. Animate with `imagine_image_to_video`
130
-
131
- Call Grok `imagine_image_to_video`:
132
-
133
- - source path: `<base still file_path>` (sandbox path returned by T2I / I2I)
134
- - `duration`: `6` (default) or `10`
135
- - `resolution_name`: `480p` unless user asks `720p`
136
- - `prompt`: one short present-tense shot (see [references/prompt-rules.md](references/prompt-rules.md))
137
-
138
- Mandatory motion constraints in the prompt:
139
-
140
- - Subject runs/walks **in place** (treadmill style)
141
- - Camera **locked** — no pan, zoom, or orbit
142
- - Background stays **flat solid magenta**
143
- - Identity, costume, palette stable for the whole shot
144
- - Single continuous action only
145
-
146
- Copy the returned video `file_path` to
147
- `<out_dir>/video/<name>-<duration>s.mp4`.
148
-
149
- If video tools are unavailable, stop (platform gate).
150
-
151
- ### 4. Extract + chroma + sample (local script)
152
-
153
- Run the processor (ffmpeg + Pillow + numpy):
154
-
155
- ```bash
156
- python3 .grok/skills/video2dsprite/scripts/video2dsprite.py process \
157
- --video <out_dir>/video/<name>-6s.mp4 \
158
- --out-dir <out_dir> \
159
- --name <name> \
160
- --frame-counts 8,16,24,48 \
161
- --cell-size 128 \
162
- --body-height 100 \
163
- --foot-y 118 \
164
- --fps 0
165
- ```
166
-
167
- Notes:
168
-
169
- - `--fps 0` = extract every decoded frame (use source fps)
170
- - Magenta flood-fill from corners + despill
171
- - Even sampling for each count in `--frame-counts`
172
- - Feet-normalized cells, horizontal strip, grid, loop GIF per count
173
-
174
- Optional: only re-sample denser sets from existing cleaned frames:
175
-
176
- ```bash
177
- python3 .grok/skills/video2dsprite/scripts/video2dsprite.py sample \
178
- --clean-dir <out_dir>/frames-clean \
179
- --out-dir <out_dir> \
180
- --frame-counts 16,24,48 \
181
- --cell-size 128
182
- ```
183
-
184
- ### 5. QC
185
-
186
- Visually check:
187
-
188
- - [ ] Preview GIF loops without huge pops
189
- - [ ] Magenta gone (no solid pink blocks); fringe acceptable or re-key
190
- - [ ] Feet stay on a stable baseline (no hop from bad crop)
191
- - [ ] Identity roughly stable (face/clothes not morphing every frame)
192
- - [ ] Action is in-place (not sliding out of frame)
193
- - [ ] For game use: pick one count (often **16 or 24**) or cut one true cycle
194
-
195
- If identity drifts hard or pixels are too soft, fall back to `$generate2dsprite` for production sheets and keep the video set as motion reference only.
196
-
197
- ### 6. Deliver
198
-
199
- Report paths only (unless user asked to wire into a game):
200
-
201
- - Video: `video/*.mp4`
202
- - Dense sprites: `sprite/x16|x24|x48/`
203
- - Strips / grids / GIFs: `sprite/run-strip-N.png`, `run-grid-N.png`, `run-preview-N.gif`
204
- - Meta: `pipeline-meta.json`
205
-
206
- Do **not** modify game code unless requested.
207
-
208
- ## Defaults
209
-
210
- - Duration: **6s**
211
- - Action: **side run in place**, facing right
212
- - Export counts: **8, 16, 24, 48**
213
- - Cell: **128²**, body height ~100, feet at y≈118
214
- - Background: **#FF00FF**
215
- - Prefer single-asset `imagine_image_to_video` over multi-ref (compose multi-ref with `imagine_text_to_image` first if needed)
216
-
217
- ## Tradeoffs (tell the user once)
218
-
219
- **Pros:** denser intermediates → often feels smoother than 4–8 discrete gen poses.
220
- **Cons:** softer pixels, identity drift, chroma fringe, multi-cycle 6s clips are not a single perfect loop, heavier assets.
221
- **Rule of thumb:** 8→16→24 usually gains smoothness; 48 is often diminishing returns; 145 raw frames are for sampling, not all for runtime.
222
-
223
- ## Resources
224
-
225
- - [references/prompt-rules.md](references/prompt-rules.md) — base still + video prompts
226
- - [references/pipeline.md](references/pipeline.md) — folder layout, ffmpeg, sampling strategy
227
- - [scripts/video2dsprite.py](scripts/video2dsprite.py) — extract, chroma, normalize, export
228
-
229
- ## Relationship to other skills
230
-
231
- - `$generate2dsprite` — primary sheet pipeline (Codex + Grok when image gen exists)
232
- - `$generate2dmap` — maps; not used here
233
- - `$video2dsprite` — **Grok Build exclusive** motion densification path
234
- - `$game-asset-core` / `$game-animation-frames` — loop/flip-test/motion laws and
235
- engine-ready defaults; still use this skill’s scripts for sandbox execution
236
- (magenta base + chroma), not a freeform background color
@@ -1,6 +0,0 @@
1
- # Source
2
-
3
- Vendored from [agent-sprite-forge](https://github.com/0x0funky/agent-sprite-forge) (`53dce6055984c610d833e77887939cbd0fb1c92b`).
4
- MIT License — see `LICENSE`.
5
-
6
- Adapted for Grok Build / app-builder sandbox (image tool paths, `read_file` for image inspection, workspace-relative script paths).
@@ -1,25 +0,0 @@
1
- {
2
- "schema": "agentsam.skill.v1",
3
- "id": "grok-video2dsprite",
4
- "name": "Grok \u00b7 video2dsprite",
5
- "description": "Video\u2192dense sprites (imagine_image_to_video + chroma postprocess)",
6
- "icon": "skill",
7
- "slash": {
8
- "suggested": "/grok-video2dsprite"
9
- },
10
- "instructions": {
11
- "source": "local_file",
12
- "ref": "SKILL.md"
13
- },
14
- "execution": {
15
- "mode": "turn",
16
- "tools": [],
17
- "operations": [],
18
- "capabilities": []
19
- },
20
- "provenance": {
21
- "source": "apps/local-studio/.grok/skills",
22
- "vendor": "grok",
23
- "status": "imported"
24
- }
25
- }
@@ -1,90 +0,0 @@
1
- # Video2dsprite pipeline
2
-
3
- ## End-to-end
4
-
5
- ```text
6
- 1. base still imagine_text_to_image / existing PNG on #FF00FF
7
- 2. video imagine_image_to_video (6s default, 10s optional)
8
- 3. frames-raw ffmpeg decode all frames (or fixed fps)
9
- 4. frames-clean magenta flood-fill + light despill → RGBA
10
- 5. sample even indices for N in {8,16,24,48}
11
- 6. normalize crop alpha bbox → scale body height → feet line
12
- 7. export sprite_XX.png, strip, grid, preview GIF
13
- 8. meta pipeline-meta.json + README.txt
14
- ```
15
-
16
- ## Suggested folder layout
17
-
18
- ```text
19
- <out_dir>/
20
- base/<name>-base.png
21
- video/<name>-6s.mp4
22
- frames-raw/frame_0001.png ...
23
- frames-clean/clean_0000.png ...
24
- sprite/
25
- sprite_01.png ... # default small set if requested
26
- x16/sprite_01.png ...
27
- x24/...
28
- x48/...
29
- run-strip-8.png
30
- run-strip-16.png
31
- run-preview-24.gif
32
- ...
33
- prompt-used.txt
34
- pipeline-meta.json
35
- README.txt
36
- ```
37
-
38
- ## ffmpeg extract
39
-
40
- Processor shells out to `ffmpeg` when available:
41
-
42
- ```bash
43
- ffmpeg -y -i video.mp4 -vsync 0 frames-raw/frame_%04d.png
44
- ```
45
-
46
- If ffmpeg is missing, fail with a clear install message. Do not invent frames.
47
-
48
- ## Chroma key
49
-
50
- 1. Treat near-magenta pixels as key candidates (hue distance + high magenta channel).
51
- 2. Flood-fill from image corners so interior magenta-ish costume bits are less likely to vanish.
52
- 3. Despill residual pink fringes toward neutral/transparent.
53
- 4. Write RGBA PNGs.
54
-
55
- ## Sampling
56
-
57
- Even spacing including first and last:
58
-
59
- ```text
60
- idx[i] = round(i * (total - 1) / (want - 1)) for i in 0..want-1
61
- ```
62
-
63
- Export multiple `want` values in one run so the user can compare smoothness vs softness.
64
-
65
- ## Normalize (feet anchor)
66
-
67
- 1. Alpha bbox of cleaned frame
68
- 2. Scale so content height ≈ `body_height` (default 100 in a 128 cell)
69
- 3. Paste so bottom of content sits at `foot_y` (default 118)
70
- 4. Center horizontally
71
-
72
- For `center` anchor, place bbox center at cell center instead.
73
-
74
- ## GIF duration defaults
75
-
76
- | Frames | ms / frame (approx) |
77
- | --- | --- |
78
- | 8 | 80 |
79
- | 16 | 60 |
80
- | 24 | 40 |
81
- | 48 | 25 |
82
-
83
- Goal: roughly 0.6–1.2s visual loop for previews (not necessarily matching source video realtime).
84
-
85
- ## When not to use this pipeline
86
-
87
- - Need hard pixel edges and fixed multi-row grids → `$generate2dsprite`
88
- - Map props / tilesets → `$generate2dmap` + `$generate2dsprite`
89
- - Non-Grok agent without `imagine_image_to_video`
90
- - User wants production-perfect hero kit with many actions — video path is locomotion experiment first
@@ -1,63 +0,0 @@
1
- # Video2dsprite prompt rules
2
-
3
- ## Base still (`imagine_text_to_image`)
4
-
5
- Required:
6
-
7
- - Solid flat background `#FF00FF` (pure magenta), no gradient, no floor shadow if possible
8
- - Full body, centered, generous margin on all sides
9
- - Side or 3/4-side view for run/walk
10
- - Same scale and costume the game already uses when a reference exists
11
- - No text, UI, watermark, speech bubbles, second character
12
-
13
- Good base pattern:
14
-
15
- ```text
16
- Side-view full-body 2D game sprite of <subject>, <style>, standing ready pose,
17
- facing right, centered in frame, feet near lower third, solid flat magenta
18
- background #FF00FF only, no ground, no shadow, no text, crisp readable silhouette.
19
- ```
20
-
21
- If matching a project sprite: use `imagine_image_to_image` with the existing frame's `file_path` and only change pose/background to magenta if needed. Prefer compositing a known good frame onto magenta in code when the art already exists.
22
-
23
- ## Video (`imagine_image_to_video`)
24
-
25
- Write **one short present-tense shot** (1–2 sentences). Constraints:
26
-
27
- | Do | Don't |
28
- | --- | --- |
29
- | Run/walk **in place** (treadmill) | Travel across the screen |
30
- | Locked camera | Pan, zoom, orbit, handheld |
31
- | Keep solid magenta background | Scenic BG, ground scroll, particles filling frame |
32
- | Single continuous action | Combo attacks + movement + camera |
33
- | Stable identity/clothes | Costume change mid-clip |
34
-
35
- Run example:
36
-
37
- ```text
38
- The same chibi ninja character runs in place facing right with a classic side-scroller
39
- stride, arms trailing slightly back, body centered, camera locked, solid flat magenta
40
- background only.
41
- ```
42
-
43
- Walk / idle examples:
44
-
45
- ```text
46
- The character walks in place facing right with a steady side-view walk cycle, camera locked, solid magenta background.
47
- ```
48
-
49
- ```text
50
- The character idles in place with a subtle breathing bob and weight shift, camera locked, solid magenta background.
51
- ```
52
-
53
- Attack (use carefully — identity drift is higher):
54
-
55
- ```text
56
- The character performs a single short punch combo in place facing right, camera locked, solid magenta background, no screen-filling FX.
57
- ```
58
-
59
- ## Sampling guidance (post-video)
60
-
61
- - Export multiple densities: 8 / 16 / 24 / 48 for comparison GIFs
62
- - For engine integration: pick one smooth cycle (~12–16 frames) after watching previews
63
- - If the 6s clip contains multiple run cycles, denser even sampling across the whole clip can look like a long multi-cycle animation — that is OK for previews, but for a game loop re-sample one cycle region manually if needed