@synopackageland/cli 0.5.0 → 0.6.0

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 (1268) hide show
  1. package/README.md +69 -38
  2. package/dist/add.d.ts +4 -0
  3. package/dist/add.js +124 -0
  4. package/dist/build-spk/delete-app-data.d.ts +3 -3
  5. package/dist/build-spk/generator.js +3 -90
  6. package/dist/build-spk/native-lifecycle.d.ts +3 -49
  7. package/dist/build-spk/native-lifecycle.js +8 -187
  8. package/dist/build-spk/notices.d.ts +1 -1
  9. package/dist/build-spk/notices.js +8 -12
  10. package/dist/build-spk/uninstall-wizard.d.ts +4 -11
  11. package/dist/build-spk/uninstall-wizard.js +6 -4
  12. package/dist/build-spk/wizard-messages.d.ts +28 -6
  13. package/dist/build-spk/wizard-messages.js +33 -11
  14. package/dist/capabilities.d.ts +4 -0
  15. package/dist/capabilities.js +12 -0
  16. package/dist/cli.js +329 -467
  17. package/dist/compose/analyze.js +2 -2
  18. package/dist/contract/unsupported-types.js +1 -1
  19. package/dist/deploy/deploy.d.ts +1 -1
  20. package/dist/deploy/deploy.js +1 -3
  21. package/dist/deploy/plan.d.ts +1 -1
  22. package/dist/deploy/plan.js +55 -24
  23. package/dist/discovery.d.ts +1 -2
  24. package/dist/discovery.js +3 -3
  25. package/dist/error-registry.js +71 -299
  26. package/dist/host/dsm-client.js +79 -7
  27. package/dist/host/dsm-port-profile.d.ts +1 -1
  28. package/dist/host/dsm-port-profile.js +1 -1
  29. package/dist/host/types.d.ts +13 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.js +1 -0
  32. package/dist/info.d.ts +20 -2
  33. package/dist/info.js +140 -0
  34. package/dist/init.d.ts +2 -14
  35. package/dist/init.js +91 -71
  36. package/dist/inspect.js +1 -1
  37. package/dist/log.d.ts +5 -0
  38. package/dist/log.js +18 -0
  39. package/dist/runtime/executor-build.d.ts +22 -0
  40. package/dist/runtime/executor-build.js +36 -0
  41. package/dist/runtime/executor-inspect.d.ts +15 -0
  42. package/dist/runtime/executor-inspect.js +32 -0
  43. package/dist/runtime/executor-policy.d.ts +25 -0
  44. package/dist/runtime/executor-policy.js +24 -0
  45. package/dist/runtime/executor-tasks.d.ts +16 -0
  46. package/dist/runtime/executor-tasks.js +28 -0
  47. package/dist/runtime/uninstall-cleanup.d.ts +7 -0
  48. package/dist/runtime/uninstall-cleanup.js +10 -0
  49. package/dist/skill.js +3 -1
  50. package/dist/standalone/api-permissions.d.ts +18 -0
  51. package/dist/standalone/api-permissions.js +63 -0
  52. package/dist/standalone/build.d.ts +1 -1
  53. package/dist/standalone/build.js +26 -28
  54. package/dist/standalone/dsm-window.js +43 -17
  55. package/dist/standalone/inspect-spk.d.ts +9 -3
  56. package/dist/standalone/inspect-spk.js +64 -57
  57. package/dist/standalone/lifecycle.d.ts +1 -1
  58. package/dist/standalone/lifecycle.js +31 -27
  59. package/dist/standalone/manifest.d.ts +17 -14
  60. package/dist/standalone/manifest.js +77 -53
  61. package/dist/standalone/resource.d.ts +2 -2
  62. package/dist/standalone/resource.js +1 -1
  63. package/dist/standalone/root-ops.d.ts +1 -28
  64. package/dist/standalone/root-ops.js +1 -58
  65. package/dist/standalone/root-window.d.ts +5 -38
  66. package/dist/standalone/root-window.js +116 -399
  67. package/dist/standalone/spk.d.ts +3 -3
  68. package/dist/standalone/spk.js +25 -36
  69. package/dist/templates/_executor/README.md +204 -0
  70. package/dist/templates/_executor/apppriv_review_test.go +28 -0
  71. package/dist/templates/_executor/auth_presence_review_test.go +38 -0
  72. package/dist/templates/_executor/cmd/lifecycle/main.go +42 -0
  73. package/dist/templates/_executor/cookie_review_test.go +27 -0
  74. package/dist/templates/_executor/digest_review_test.go +120 -0
  75. package/dist/templates/_executor/directories.go +40 -0
  76. package/dist/templates/_executor/dsm.go +319 -0
  77. package/dist/templates/_executor/dsm_test.go +196 -0
  78. package/dist/templates/_executor/executor.go +524 -0
  79. package/dist/templates/_executor/executor_test.go +284 -0
  80. package/dist/templates/_executor/go.mod +3 -0
  81. package/dist/templates/_executor/identity.go +48 -0
  82. package/dist/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  83. package/dist/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  84. package/dist/templates/_executor/internal/taskscript/boot.sh +31 -0
  85. package/dist/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  86. package/dist/templates/_executor/internal/taskscript/control.sh +26 -0
  87. package/dist/templates/_executor/internal/taskscript/tasks.go +42 -0
  88. package/dist/templates/_executor/json_review_test.go +40 -0
  89. package/dist/templates/_executor/lifecycle_test.go +86 -0
  90. package/dist/templates/_executor/main.go +518 -0
  91. package/dist/templates/_executor/managed.go +117 -0
  92. package/dist/templates/_executor/managed_test.go +137 -0
  93. package/dist/templates/_executor/path_test.go +17 -0
  94. package/dist/templates/_executor/platform_linux.go +336 -0
  95. package/dist/templates/_executor/platform_linux_test.go +247 -0
  96. package/dist/templates/_executor/platform_other.go +42 -0
  97. package/dist/templates/_executor/process.go +139 -0
  98. package/dist/templates/_executor/socket_linux_test.go +46 -0
  99. package/dist/templates/_executor/store.go +90 -0
  100. package/dist/templates/_executor/task_race_review_test.go +47 -0
  101. package/dist/templates/_executor/tasks.go +283 -0
  102. package/dist/templates/_executor/tasks_review_test.go +43 -0
  103. package/dist/templates/_executor/tasks_test.go +166 -0
  104. package/dist/templates/_executor/testdata/evidence/cleanup.json +24 -0
  105. package/dist/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  106. package/dist/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  107. package/dist/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  108. package/dist/templates/_executor/testdata/evidence/live.jsonl +23 -0
  109. package/dist/templates/_executor/testdata/evidence/storage.json +90 -0
  110. package/dist/templates/_executor/testdata/evidence/validation.json +55 -0
  111. package/dist/templates/_executor/testdata/live_probe.py +98 -0
  112. package/dist/templates/_executor/upgrade_watch_test.go +236 -0
  113. package/dist/templates/_executor/watch.go +156 -0
  114. package/dist/templates/_executor/watch_test.go +270 -0
  115. package/dist/templates/_executor/write_review_linux_test.go +95 -0
  116. package/dist/templates/_shared/AGENTS.md +17 -0
  117. package/dist/templates/_shared/CLAUDE.md +1 -0
  118. package/dist/templates/binary/LICENSES/GO-LICENSE +27 -0
  119. package/dist/templates/binary/LICENSES/GO-PATENTS +22 -0
  120. package/dist/templates/binary/dsm-package.yaml +19 -0
  121. package/dist/templates/binary/example/main.go +16 -0
  122. package/dist/templates/binary/gitignore +2 -0
  123. package/dist/templates/binary/ui/app.css +4 -0
  124. package/dist/templates/binary/ui/app.js +17 -0
  125. package/dist/templates/native-go/README.md +129 -116
  126. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  127. package/dist/templates/native-go/backend/cmd/app/main.go +30 -21
  128. package/dist/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  129. package/dist/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  130. package/dist/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  131. package/dist/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  132. package/dist/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  133. package/dist/templates/native-go/backend/internal/api/errors.go +14 -0
  134. package/dist/templates/native-go/backend/internal/api/permissions.go +161 -0
  135. package/dist/templates/native-go/backend/internal/api/permissions.json +5 -0
  136. package/dist/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  137. package/dist/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  138. package/dist/templates/native-go/backend/internal/api/registry.go +48 -32
  139. package/dist/templates/native-go/backend/internal/api/registry_test.go +16 -1
  140. package/dist/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  141. package/dist/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  142. package/dist/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  143. package/dist/templates/native-go/backend/internal/api/server.go +135 -8
  144. package/dist/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  145. package/dist/templates/native-go/backend/internal/app/background.go +23 -44
  146. package/dist/templates/native-go/backend/internal/app/background_owner.go +0 -21
  147. package/dist/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  148. package/dist/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  149. package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  150. package/dist/templates/native-go/backend/internal/app/background_test.go +15 -41
  151. package/dist/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  152. package/dist/templates/native-go/backend/internal/app/identity.go +20 -0
  153. package/dist/templates/native-go/backend/internal/app/identity_test.go +15 -0
  154. package/dist/templates/native-go/backend/internal/app/routes.go +15 -36
  155. package/dist/templates/native-go/backend/internal/app/routes_test.go +16 -40
  156. package/dist/templates/native-go/backend/internal/app/session_files.go +4 -10
  157. package/dist/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  158. package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  159. package/dist/templates/native-go/backend/internal/background/lock_test.go +131 -0
  160. package/dist/templates/native-go/backend/internal/background/owner_test.go +12 -20
  161. package/dist/templates/native-go/backend/internal/background/runner_test.go +1 -1
  162. package/dist/templates/native-go/backend/internal/background/schedule.go +53 -17
  163. package/dist/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  164. package/dist/templates/native-go/backend/internal/background/store.go +115 -99
  165. package/dist/templates/native-go/backend/internal/background/store_test.go +10 -52
  166. package/dist/templates/native-go/backend/internal/dsm/admin.go +70 -0
  167. package/dist/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  168. package/dist/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  169. package/dist/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  170. package/dist/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  171. package/dist/templates/native-go/backend/internal/dsm/auth.go +24 -48
  172. package/dist/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  173. package/dist/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  174. package/dist/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  175. package/dist/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  176. package/dist/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  177. package/dist/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  178. package/dist/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  179. package/dist/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  180. package/dist/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  181. package/dist/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  182. package/dist/templates/native-go/backend/internal/filestation/client.go +68 -18
  183. package/dist/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  184. package/dist/templates/native-go/backend/internal/filestation/doc.go +1 -1
  185. package/dist/templates/native-go/backend/internal/filestation/http.go +70 -0
  186. package/dist/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  187. package/dist/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  188. package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  189. package/dist/templates/native-go/backend/internal/filestation/service.go +117 -117
  190. package/dist/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  191. package/dist/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  192. package/dist/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  193. package/dist/templates/native-go/backend/internal/filestation/write.go +0 -40
  194. package/dist/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  195. package/dist/templates/native-go/backend/internal/identity/README.md +55 -0
  196. package/dist/templates/native-go/backend/internal/identity/dsm.go +96 -0
  197. package/dist/templates/native-go/backend/internal/identity/http.go +291 -0
  198. package/dist/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  199. package/dist/templates/native-go/backend/internal/identity/service.go +159 -0
  200. package/dist/templates/native-go/backend/internal/identity/store.go +109 -0
  201. package/dist/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  202. package/dist/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  203. package/dist/templates/native-go/dsm-package.yaml +9 -18
  204. package/dist/templates/native-go-delegate/DELEGATE.md +142 -0
  205. package/dist/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  206. package/dist/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  207. package/dist/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  208. package/dist/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  209. package/dist/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  210. package/dist/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  211. package/dist/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  212. package/dist/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  213. package/dist/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  214. package/dist/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  215. package/dist/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  216. package/dist/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  217. package/dist/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  218. package/dist/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  219. package/dist/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  220. package/dist/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  221. package/dist/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  222. package/dist/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  223. package/dist/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  224. package/dist/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  225. package/dist/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  226. package/dist/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  227. package/dist/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  228. package/dist/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  229. package/dist/templates/native-go-delegate/test-frontend.sh +12 -0
  230. package/dist/templates/native-go-delegate/test.sh +17 -0
  231. package/dist/templates/native-go-jobs/BACKGROUND.md +108 -0
  232. package/dist/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  233. package/dist/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  234. package/dist/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  235. package/dist/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  236. package/dist/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  237. package/dist/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  238. package/dist/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  239. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  240. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  241. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  242. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  243. package/dist/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  244. package/dist/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  245. package/dist/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  246. package/dist/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  247. package/dist/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  248. package/dist/templates/native-go-root-ops/root/whoami.sh +3 -0
  249. package/dist/templates/native-go-vue/README.md +36 -248
  250. package/dist/templates/native-go-vue/frontend/DESIGN.md +20 -49
  251. package/dist/templates/native-go-vue/frontend/package-lock.json +278 -159
  252. package/dist/templates/native-go-vue/frontend/package.json +2 -2
  253. package/dist/templates/native-go-vue/frontend/src/App.vue +55 -151
  254. package/dist/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  255. package/dist/templates/native-go-vue/frontend/src/context.ts +3 -12
  256. package/dist/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  257. package/dist/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  258. package/dist/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  259. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  260. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  261. package/dist/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  262. package/dist/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  263. package/dist/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  264. package/dist/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  265. package/dist/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  266. package/dist/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  267. package/dist/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  268. package/dist/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  269. package/dist/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  270. package/dist/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  271. package/dist/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  272. package/dist/templates/native-go-vue/frontend/src/main.ts +7 -4
  273. package/dist/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  274. package/dist/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  275. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  276. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  277. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  278. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  279. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  280. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  281. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  282. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  283. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  284. package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  285. package/dist/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  286. package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  287. package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  288. package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  289. package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  290. package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  291. package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  292. package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  293. package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  294. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  295. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  296. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  297. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  298. package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  299. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  300. package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  301. package/dist/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  302. package/dist/templates/native-go-vue/frontend/vite.config.ts +2 -2
  303. package/dist/types.d.ts +1 -1
  304. package/dist/validate.js +27 -36
  305. package/package.json +1 -1
  306. package/skills/SKILL.md +21 -3
  307. package/skills/reference/create.md +16 -7
  308. package/skills/reference/deploy.md +5 -3
  309. package/skills/reference/diagnose.md +1 -1
  310. package/skills/reference/files.md +8 -6
  311. package/skills/reference/identity.md +9 -3
  312. package/skills/reference/ui-json.md +78 -0
  313. package/skills/reference/ui-vue.md +71 -0
  314. package/skills/reference/wrap.md +3 -4
  315. package/templates/_executor/README.md +204 -0
  316. package/templates/_executor/apppriv_review_test.go +28 -0
  317. package/templates/_executor/auth_presence_review_test.go +38 -0
  318. package/templates/_executor/cmd/lifecycle/main.go +42 -0
  319. package/templates/_executor/cookie_review_test.go +27 -0
  320. package/templates/_executor/digest_review_test.go +120 -0
  321. package/templates/_executor/directories.go +40 -0
  322. package/templates/_executor/dsm.go +319 -0
  323. package/templates/_executor/dsm_test.go +196 -0
  324. package/templates/_executor/executor.go +524 -0
  325. package/templates/_executor/executor_test.go +284 -0
  326. package/templates/_executor/go.mod +3 -0
  327. package/templates/_executor/identity.go +48 -0
  328. package/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  329. package/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  330. package/templates/_executor/internal/taskscript/boot.sh +31 -0
  331. package/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  332. package/templates/_executor/internal/taskscript/control.sh +26 -0
  333. package/templates/_executor/internal/taskscript/tasks.go +42 -0
  334. package/templates/_executor/json_review_test.go +40 -0
  335. package/templates/_executor/lifecycle_test.go +86 -0
  336. package/templates/_executor/main.go +518 -0
  337. package/templates/_executor/managed.go +117 -0
  338. package/templates/_executor/managed_test.go +137 -0
  339. package/templates/_executor/path_test.go +17 -0
  340. package/templates/_executor/platform_linux.go +336 -0
  341. package/templates/_executor/platform_linux_test.go +247 -0
  342. package/templates/_executor/platform_other.go +42 -0
  343. package/templates/_executor/process.go +139 -0
  344. package/templates/_executor/socket_linux_test.go +46 -0
  345. package/templates/_executor/store.go +90 -0
  346. package/templates/_executor/task_race_review_test.go +47 -0
  347. package/templates/_executor/tasks.go +283 -0
  348. package/templates/_executor/tasks_review_test.go +43 -0
  349. package/templates/_executor/tasks_test.go +166 -0
  350. package/templates/_executor/testdata/evidence/cleanup.json +24 -0
  351. package/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  352. package/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  353. package/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  354. package/templates/_executor/testdata/evidence/live.jsonl +23 -0
  355. package/templates/_executor/testdata/evidence/storage.json +90 -0
  356. package/templates/_executor/testdata/evidence/validation.json +55 -0
  357. package/templates/_executor/testdata/live_probe.py +98 -0
  358. package/templates/_executor/upgrade_watch_test.go +236 -0
  359. package/templates/_executor/watch.go +156 -0
  360. package/templates/_executor/watch_test.go +270 -0
  361. package/templates/_executor/write_review_linux_test.go +95 -0
  362. package/templates/_shared/AGENTS.md +17 -0
  363. package/templates/_shared/CLAUDE.md +1 -0
  364. package/templates/binary/LICENSES/GO-LICENSE +27 -0
  365. package/templates/binary/LICENSES/GO-PATENTS +22 -0
  366. package/templates/binary/dsm-package.yaml +19 -0
  367. package/templates/binary/example/main.go +16 -0
  368. package/templates/binary/gitignore +2 -0
  369. package/templates/binary/ui/app.css +4 -0
  370. package/templates/binary/ui/app.js +17 -0
  371. package/templates/native-go/README.md +129 -116
  372. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  373. package/templates/native-go/backend/cmd/app/main.go +30 -21
  374. package/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  375. package/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  376. package/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  377. package/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  378. package/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  379. package/templates/native-go/backend/internal/api/errors.go +14 -0
  380. package/templates/native-go/backend/internal/api/permissions.go +161 -0
  381. package/templates/native-go/backend/internal/api/permissions.json +5 -0
  382. package/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  383. package/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  384. package/templates/native-go/backend/internal/api/registry.go +48 -32
  385. package/templates/native-go/backend/internal/api/registry_test.go +16 -1
  386. package/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  387. package/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  388. package/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  389. package/templates/native-go/backend/internal/api/server.go +135 -8
  390. package/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  391. package/templates/native-go/backend/internal/app/background.go +23 -44
  392. package/templates/native-go/backend/internal/app/background_owner.go +0 -21
  393. package/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  394. package/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  395. package/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  396. package/templates/native-go/backend/internal/app/background_test.go +15 -41
  397. package/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  398. package/templates/native-go/backend/internal/app/identity.go +20 -0
  399. package/templates/native-go/backend/internal/app/identity_test.go +15 -0
  400. package/templates/native-go/backend/internal/app/routes.go +15 -36
  401. package/templates/native-go/backend/internal/app/routes_test.go +16 -40
  402. package/templates/native-go/backend/internal/app/session_files.go +4 -10
  403. package/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  404. package/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  405. package/templates/native-go/backend/internal/background/lock_test.go +131 -0
  406. package/templates/native-go/backend/internal/background/owner_test.go +12 -20
  407. package/templates/native-go/backend/internal/background/runner_test.go +1 -1
  408. package/templates/native-go/backend/internal/background/schedule.go +53 -17
  409. package/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  410. package/templates/native-go/backend/internal/background/store.go +115 -99
  411. package/templates/native-go/backend/internal/background/store_test.go +10 -52
  412. package/templates/native-go/backend/internal/dsm/admin.go +70 -0
  413. package/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  414. package/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  415. package/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  416. package/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  417. package/templates/native-go/backend/internal/dsm/auth.go +24 -48
  418. package/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  419. package/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  420. package/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  421. package/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  422. package/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  423. package/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  424. package/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  425. package/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  426. package/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  427. package/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  428. package/templates/native-go/backend/internal/filestation/client.go +68 -18
  429. package/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  430. package/templates/native-go/backend/internal/filestation/doc.go +1 -1
  431. package/templates/native-go/backend/internal/filestation/http.go +70 -0
  432. package/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  433. package/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  434. package/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  435. package/templates/native-go/backend/internal/filestation/service.go +117 -117
  436. package/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  437. package/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  438. package/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  439. package/templates/native-go/backend/internal/filestation/write.go +0 -40
  440. package/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  441. package/templates/native-go/backend/internal/identity/README.md +55 -0
  442. package/templates/native-go/backend/internal/identity/dsm.go +96 -0
  443. package/templates/native-go/backend/internal/identity/http.go +291 -0
  444. package/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  445. package/templates/native-go/backend/internal/identity/service.go +159 -0
  446. package/templates/native-go/backend/internal/identity/store.go +109 -0
  447. package/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  448. package/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  449. package/templates/native-go/dsm-package.yaml +9 -18
  450. package/templates/native-go-delegate/DELEGATE.md +142 -0
  451. package/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  452. package/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  453. package/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  454. package/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  455. package/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  456. package/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  457. package/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  458. package/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  459. package/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  460. package/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  461. package/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  462. package/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  463. package/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  464. package/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  465. package/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  466. package/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  467. package/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  468. package/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  469. package/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  470. package/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  471. package/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  472. package/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  473. package/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  474. package/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  475. package/templates/native-go-delegate/test-frontend.sh +12 -0
  476. package/templates/native-go-delegate/test.sh +17 -0
  477. package/templates/native-go-jobs/BACKGROUND.md +108 -0
  478. package/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  479. package/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  480. package/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  481. package/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  482. package/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  483. package/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  484. package/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  485. package/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  486. package/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  487. package/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  488. package/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  489. package/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  490. package/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  491. package/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  492. package/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  493. package/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  494. package/templates/native-go-root-ops/root/whoami.sh +3 -0
  495. package/templates/native-go-vue/README.md +36 -248
  496. package/templates/native-go-vue/frontend/DESIGN.md +20 -49
  497. package/templates/native-go-vue/frontend/package-lock.json +278 -159
  498. package/templates/native-go-vue/frontend/package.json +2 -2
  499. package/templates/native-go-vue/frontend/src/App.vue +55 -151
  500. package/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  501. package/templates/native-go-vue/frontend/src/context.ts +3 -12
  502. package/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  503. package/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  504. package/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  505. package/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  506. package/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  507. package/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  508. package/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  509. package/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  510. package/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  511. package/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  512. package/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  513. package/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  514. package/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  515. package/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  516. package/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  517. package/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  518. package/templates/native-go-vue/frontend/src/main.ts +7 -4
  519. package/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  520. package/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  521. package/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  522. package/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  523. package/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  524. package/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  525. package/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  526. package/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  527. package/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  528. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  529. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  530. package/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  531. package/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  532. package/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  533. package/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  534. package/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  535. package/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  536. package/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  537. package/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  538. package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  539. package/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  540. package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  541. package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  542. package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  543. package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  544. package/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  545. package/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  546. package/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  547. package/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  548. package/templates/native-go-vue/frontend/vite.config.ts +2 -2
  549. package/dist/build-spk/native-payload.d.ts +0 -37
  550. package/dist/build-spk/native-payload.js +0 -679
  551. package/dist/native/load.d.ts +0 -8
  552. package/dist/native/load.js +0 -11
  553. package/dist/native/types.d.ts +0 -28
  554. package/dist/native/types.js +0 -3
  555. package/dist/native/validate.d.ts +0 -6
  556. package/dist/native/validate.js +0 -143
  557. package/dist/standalone/helper-inventory.d.ts +0 -31
  558. package/dist/standalone/helper-inventory.js +0 -11
  559. package/dist/standalone/helper.d.ts +0 -22
  560. package/dist/standalone/helper.js +0 -123
  561. package/dist/standalone/inspect-helper.d.ts +0 -6
  562. package/dist/standalone/inspect-helper.js +0 -93
  563. package/dist/standalone/job-diagnostics.d.ts +0 -1
  564. package/dist/standalone/job-diagnostics.js +0 -49
  565. package/dist/standalone/lifecycle-helper.d.ts +0 -2
  566. package/dist/standalone/lifecycle-helper.js +0 -12
  567. package/dist/standalone/native-layout.d.ts +0 -74
  568. package/dist/standalone/native-layout.js +0 -318
  569. package/dist/standalone/root-messages.d.ts +0 -7
  570. package/dist/standalone/root-messages.js +0 -259
  571. package/dist/standalone/worker-contract-json.d.ts +0 -8
  572. package/dist/standalone/worker-contract-json.js +0 -141
  573. package/dist/standalone/worker-contract.d.ts +0 -189
  574. package/dist/standalone/worker-contract.js +0 -175
  575. package/dist/standalone/worker-registry.d.ts +0 -40
  576. package/dist/standalone/worker-registry.js +0 -167
  577. package/dist/templates/_shared/notice-overrides/index.json +0 -14
  578. package/dist/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +0 -21
  579. package/dist/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +0 -21
  580. package/dist/templates/binary/native.yaml +0 -16
  581. package/dist/templates/binary/synology-app.yaml +0 -7
  582. package/dist/templates/compose-import/compose.yaml +0 -10
  583. package/dist/templates/compose-import/synology-app.yaml +0 -15
  584. package/dist/templates/hello-web/compose.yaml +0 -24
  585. package/dist/templates/hello-web/html/app.js +0 -1
  586. package/dist/templates/hello-web/html/index.html +0 -13
  587. package/dist/templates/hello-web/synology-app.yaml +0 -16
  588. package/dist/templates/hello-web-page/compose.yaml +0 -24
  589. package/dist/templates/hello-web-page/html/app.js +0 -1
  590. package/dist/templates/hello-web-page/html/index.html +0 -13
  591. package/dist/templates/hello-web-page/synology-app.yaml +0 -16
  592. package/dist/templates/native-go/backend/cmd/app/sdk_main.go +0 -60
  593. package/dist/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +0 -46
  594. package/dist/templates/native-go/backend/cmd/helper/main.go +0 -47
  595. package/dist/templates/native-go/backend/cmd/helper/sdk_registry.go +0 -19
  596. package/dist/templates/native-go/backend/internal/api/binary.go +0 -154
  597. package/dist/templates/native-go/backend/internal/api/binary_test.go +0 -165
  598. package/dist/templates/native-go/backend/internal/app/integration_state.go +0 -16
  599. package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +0 -129
  600. package/dist/templates/native-go/backend/internal/app/nas_refusal_test.go +0 -46
  601. package/dist/templates/native-go/backend/internal/app/sdk_jobs.go +0 -70
  602. package/dist/templates/native-go/backend/internal/app/sdk_jobs_test.go +0 -116
  603. package/dist/templates/native-go/backend/internal/app/sdk_routes.go +0 -174
  604. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux.go +0 -335
  605. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +0 -41
  606. package/dist/templates/native-go/backend/internal/dsmprobe/protocol.go +0 -179
  607. package/dist/templates/native-go/backend/internal/dsmprobe/protocol_test.go +0 -29
  608. package/dist/templates/native-go/backend/internal/filestation/repository.go +0 -207
  609. package/dist/templates/native-go/backend/internal/filestation/repository_test.go +0 -104
  610. package/dist/templates/native-go/backend/internal/filestation/sdk_session.go +0 -241
  611. package/dist/templates/native-go/backend/internal/filestation/sdk_session_test.go +0 -183
  612. package/dist/templates/native-go/backend/internal/filestation/session_semantics_test.go +0 -383
  613. package/dist/templates/native-go/backend/internal/helper/background_proof.go +0 -163
  614. package/dist/templates/native-go/backend/internal/helper/background_proof_contract.go +0 -46
  615. package/dist/templates/native-go/backend/internal/helper/background_proof_test.go +0 -161
  616. package/dist/templates/native-go/backend/internal/helper/cohort.go +0 -393
  617. package/dist/templates/native-go/backend/internal/helper/cohort_publication.go +0 -18
  618. package/dist/templates/native-go/backend/internal/helper/cohort_publication_test.go +0 -105
  619. package/dist/templates/native-go/backend/internal/helper/cohort_test.go +0 -372
  620. package/dist/templates/native-go/backend/internal/helper/control.go +0 -424
  621. package/dist/templates/native-go/backend/internal/helper/control_test.go +0 -250
  622. package/dist/templates/native-go/backend/internal/helper/data_contract.go +0 -245
  623. package/dist/templates/native-go/backend/internal/helper/data_contract_test.go +0 -51
  624. package/dist/templates/native-go/backend/internal/helper/data_decode.go +0 -184
  625. package/dist/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +0 -30
  626. package/dist/templates/native-go/backend/internal/helper/data_protocol.go +0 -419
  627. package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +0 -449
  628. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux.go +0 -139
  629. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +0 -121
  630. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +0 -95
  631. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +0 -56
  632. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +0 -144
  633. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +0 -89
  634. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux.go +0 -107
  635. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +0 -82
  636. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +0 -151
  637. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +0 -66
  638. package/dist/templates/native-go/backend/internal/helper/grant_authority.go +0 -519
  639. package/dist/templates/native-go/backend/internal/helper/grant_authority_contract.go +0 -88
  640. package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +0 -510
  641. package/dist/templates/native-go/backend/internal/helper/grant_cohort.go +0 -389
  642. package/dist/templates/native-go/backend/internal/helper/grant_cohort_test.go +0 -239
  643. package/dist/templates/native-go/backend/internal/helper/grant_delivery.go +0 -49
  644. package/dist/templates/native-go/backend/internal/helper/grant_delivery_methods.go +0 -273
  645. package/dist/templates/native-go/backend/internal/helper/grant_delivery_test.go +0 -322
  646. package/dist/templates/native-go/backend/internal/helper/grant_operation_contract.go +0 -47
  647. package/dist/templates/native-go/backend/internal/helper/grant_readonly_test.go +0 -180
  648. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +0 -416
  649. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +0 -469
  650. package/dist/templates/native-go/backend/internal/helper/grant_rpc.go +0 -147
  651. package/dist/templates/native-go/backend/internal/helper/grant_rpc_test.go +0 -51
  652. package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +0 -78
  653. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +0 -134
  654. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +0 -254
  655. package/dist/templates/native-go/backend/internal/helper/jobcontract/bindings.go +0 -48
  656. package/dist/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +0 -436
  657. package/dist/templates/native-go/backend/internal/helper/jobcontract/decode.go +0 -185
  658. package/dist/templates/native-go/backend/internal/helper/jobcontract/digest.go +0 -55
  659. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry.go +0 -85
  660. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +0 -73
  661. package/dist/templates/native-go/backend/internal/helper/jobcontract/result.go +0 -53
  662. package/dist/templates/native-go/backend/internal/helper/jobcontract/stub.go +0 -8
  663. package/dist/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +0 -127
  664. package/dist/templates/native-go/backend/internal/helper/jobcontract/types.go +0 -234
  665. package/dist/templates/native-go/backend/internal/helper/jobcontract/types_test.go +0 -29
  666. package/dist/templates/native-go/backend/internal/helper/jobcontract/validate.go +0 -462
  667. package/dist/templates/native-go/backend/internal/helper/lease.go +0 -112
  668. package/dist/templates/native-go/backend/internal/helper/lease_linux.go +0 -44
  669. package/dist/templates/native-go/backend/internal/helper/lease_other.go +0 -8
  670. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +0 -34
  671. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +0 -6
  672. package/dist/templates/native-go/backend/internal/helper/lifecycle.go +0 -234
  673. package/dist/templates/native-go/backend/internal/helper/lifecycle_test.go +0 -473
  674. package/dist/templates/native-go/backend/internal/helper/managed_pilot.go +0 -284
  675. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +0 -74
  676. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +0 -40
  677. package/dist/templates/native-go/backend/internal/helper/managed_pilot_test.go +0 -210
  678. package/dist/templates/native-go/backend/internal/helper/management.go +0 -79
  679. package/dist/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +0 -97
  680. package/dist/templates/native-go/backend/internal/helper/native_discovery.go +0 -79
  681. package/dist/templates/native-go/backend/internal/helper/native_identity.go +0 -89
  682. package/dist/templates/native-go/backend/internal/helper/native_provider.go +0 -159
  683. package/dist/templates/native-go/backend/internal/helper/native_provider_test.go +0 -421
  684. package/dist/templates/native-go/backend/internal/helper/observation.go +0 -244
  685. package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +0 -127
  686. package/dist/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +0 -117
  687. package/dist/templates/native-go/backend/internal/helper/observation_test.go +0 -196
  688. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +0 -155
  689. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +0 -76
  690. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +0 -130
  691. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +0 -98
  692. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +0 -40
  693. package/dist/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +0 -193
  694. package/dist/templates/native-go/backend/internal/helper/operation_credentials_linux.go +0 -56
  695. package/dist/templates/native-go/backend/internal/helper/operation_linux.go +0 -480
  696. package/dist/templates/native-go/backend/internal/helper/operation_linux_test.go +0 -528
  697. package/dist/templates/native-go/backend/internal/helper/peer_linux.go +0 -44
  698. package/dist/templates/native-go/backend/internal/helper/peer_other.go +0 -7
  699. package/dist/templates/native-go/backend/internal/helper/process_linux.go +0 -180
  700. package/dist/templates/native-go/backend/internal/helper/process_other.go +0 -5
  701. package/dist/templates/native-go/backend/internal/helper/publication_test.go +0 -178
  702. package/dist/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +0 -115
  703. package/dist/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +0 -254
  704. package/dist/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +0 -156
  705. package/dist/templates/native-go/backend/internal/helper/read_transfer.go +0 -40
  706. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux.go +0 -109
  707. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +0 -118
  708. package/dist/templates/native-go/backend/internal/helper/read_transfer_test.go +0 -177
  709. package/dist/templates/native-go/backend/internal/helper/readonly.go +0 -105
  710. package/dist/templates/native-go/backend/internal/helper/readonly_admission.go +0 -85
  711. package/dist/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +0 -253
  712. package/dist/templates/native-go/backend/internal/helper/readonly_linux_test.go +0 -378
  713. package/dist/templates/native-go/backend/internal/helper/readonly_mount_linux.go +0 -65
  714. package/dist/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +0 -113
  715. package/dist/templates/native-go/backend/internal/helper/readonly_operations_linux.go +0 -168
  716. package/dist/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +0 -241
  717. package/dist/templates/native-go/backend/internal/helper/readonly_test.go +0 -40
  718. package/dist/templates/native-go/backend/internal/helper/relaxed_identity.go +0 -252
  719. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +0 -105
  720. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_test.go +0 -406
  721. package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +0 -203
  722. package/dist/templates/native-go/backend/internal/helper/repair.go +0 -132
  723. package/dist/templates/native-go/backend/internal/helper/repair_test.go +0 -271
  724. package/dist/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +0 -303
  725. package/dist/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +0 -184
  726. package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +0 -250
  727. package/dist/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +0 -18
  728. package/dist/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +0 -51
  729. package/dist/templates/native-go/backend/internal/helper/sdk_attach.go +0 -83
  730. package/dist/templates/native-go/backend/internal/helper/sdk_attach_contract.go +0 -32
  731. package/dist/templates/native-go/backend/internal/helper/sdk_attach_test.go +0 -184
  732. package/dist/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +0 -6
  733. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority.go +0 -832
  734. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +0 -714
  735. package/dist/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +0 -218
  736. package/dist/templates/native-go/backend/internal/helper/sdk_background_lease.go +0 -218
  737. package/dist/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +0 -110
  738. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +0 -261
  739. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_test.go +0 -58
  740. package/dist/templates/native-go/backend/internal/helper/sdk_bindings.go +0 -60
  741. package/dist/templates/native-go/backend/internal/helper/sdk_data_contract.go +0 -251
  742. package/dist/templates/native-go/backend/internal/helper/sdk_data_protocol.go +0 -424
  743. package/dist/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +0 -51
  744. package/dist/templates/native-go/backend/internal/helper/sdk_display.go +0 -488
  745. package/dist/templates/native-go/backend/internal/helper/sdk_display_contract.go +0 -121
  746. package/dist/templates/native-go/backend/internal/helper/sdk_display_test.go +0 -459
  747. package/dist/templates/native-go/backend/internal/helper/sdk_grant_authority.go +0 -559
  748. package/dist/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +0 -417
  749. package/dist/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +0 -94
  750. package/dist/templates/native-go/backend/internal/helper/sdk_history.go +0 -80
  751. package/dist/templates/native-go/backend/internal/helper/sdk_history_test.go +0 -76
  752. package/dist/templates/native-go/backend/internal/helper/sdk_job.go +0 -697
  753. package/dist/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +0 -309
  754. package/dist/templates/native-go/backend/internal/helper/sdk_job_contract.go +0 -122
  755. package/dist/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +0 -159
  756. package/dist/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +0 -327
  757. package/dist/templates/native-go/backend/internal/helper/sdk_job_test.go +0 -501
  758. package/dist/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +0 -343
  759. package/dist/templates/native-go/backend/internal/helper/sdk_journal.go +0 -77
  760. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux.go +0 -244
  761. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +0 -295
  762. package/dist/templates/native-go/backend/internal/helper/sdk_journal_test.go +0 -71
  763. package/dist/templates/native-go/backend/internal/helper/sdk_picker_test.go +0 -50
  764. package/dist/templates/native-go/backend/internal/helper/sdk_process_linux.go +0 -184
  765. package/dist/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +0 -129
  766. package/dist/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +0 -242
  767. package/dist/templates/native-go/backend/internal/helper/sdk_rpc.go +0 -299
  768. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +0 -70
  769. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_test.go +0 -135
  770. package/dist/templates/native-go/backend/internal/helper/sdk_server_linux.go +0 -152
  771. package/dist/templates/native-go/backend/internal/helper/sdk_session.go +0 -677
  772. package/dist/templates/native-go/backend/internal/helper/sdk_session_contract.go +0 -72
  773. package/dist/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +0 -215
  774. package/dist/templates/native-go/backend/internal/helper/sdk_session_test.go +0 -475
  775. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +0 -78
  776. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +0 -414
  777. package/dist/templates/native-go/backend/internal/helper/sdk_transport.go +0 -79
  778. package/dist/templates/native-go/backend/internal/helper/sdk_transport_linux.go +0 -82
  779. package/dist/templates/native-go/backend/internal/helper/sdk_transport_test.go +0 -64
  780. package/dist/templates/native-go/backend/internal/helper/server_linux.go +0 -127
  781. package/dist/templates/native-go/backend/internal/helper/stale_management_linux_test.go +0 -126
  782. package/dist/templates/native-go/backend/internal/helper/stale_management_test.go +0 -122
  783. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic.go +0 -68
  784. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +0 -126
  785. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +0 -117
  786. package/dist/templates/native-go/backend/internal/helper/status.go +0 -343
  787. package/dist/templates/native-go/backend/internal/helper/status_test.go +0 -333
  788. package/dist/templates/native-go/backend/internal/helper/supervision.go +0 -107
  789. package/dist/templates/native-go/backend/internal/helper/supervision_test.go +0 -124
  790. package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +0 -79
  791. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +0 -69
  792. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_test.go +0 -107
  793. package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +0 -367
  794. package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +0 -913
  795. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +0 -74
  796. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_test.go +0 -45
  797. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +0 -23
  798. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +0 -67
  799. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +0 -52
  800. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +0 -20
  801. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +0 -20
  802. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +0 -20
  803. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +0 -22
  804. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +0 -22
  805. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +0 -22
  806. package/dist/templates/native-go/backend/internal/helper/unit_connection.go +0 -75
  807. package/dist/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +0 -135
  808. package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +0 -151
  809. package/dist/templates/native-go/backend/internal/helper/unit_frame_test.go +0 -32
  810. package/dist/templates/native-go/backend/internal/helper/unit_linux.go +0 -368
  811. package/dist/templates/native-go/backend/internal/helper/unit_linux_test.go +0 -46
  812. package/dist/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +0 -217
  813. package/dist/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +0 -178
  814. package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +0 -115
  815. package/dist/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +0 -372
  816. package/dist/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +0 -232
  817. package/dist/templates/native-go/backend/internal/helper/write.go +0 -77
  818. package/dist/templates/native-go/backend/internal/helper/write_admission.go +0 -260
  819. package/dist/templates/native-go/backend/internal/helper/write_admission_test.go +0 -135
  820. package/dist/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +0 -218
  821. package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +0 -205
  822. package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +0 -225
  823. package/dist/templates/native-go/backend/internal/helper/write_intent_linux.go +0 -116
  824. package/dist/templates/native-go/backend/internal/helper/write_intent_linux_test.go +0 -74
  825. package/dist/templates/native-go/backend/internal/helper/write_operation_linux.go +0 -245
  826. package/dist/templates/native-go/backend/internal/helper/write_test.go +0 -53
  827. package/dist/templates/native-go-background/BACKGROUND.md +0 -111
  828. package/dist/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  829. package/dist/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  830. package/dist/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  831. package/dist/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  832. package/dist/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  833. package/dist/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  834. package/dist/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  835. package/dist/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  836. package/dist/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  837. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  838. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  839. package/dist/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  840. package/dist/templates/native-go-background/frontend/test/background.test.ts +0 -179
  841. package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  842. package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  843. package/dist/templates/native-go-better-auth/node/app.mjs +0 -72
  844. package/dist/templates/native-go-better-auth/node/build.mjs +0 -4
  845. package/dist/templates/native-go-better-auth/node/package-lock.json +0 -862
  846. package/dist/templates/native-go-better-auth/node/package.json +0 -1
  847. package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  848. package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  849. package/dist/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  850. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  851. package/dist/templates/native-go-root/backend/internal/app/root.go +0 -107
  852. package/dist/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  853. package/dist/templates/native-go-root/root/whoami.sh +0 -6
  854. package/dist/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  855. package/dist/templates/native-go-vue/frontend/README-M2.md +0 -64
  856. package/dist/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  857. package/dist/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  858. package/dist/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  859. package/dist/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  860. package/dist/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  861. package/dist/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  862. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  863. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  864. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  865. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  866. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  867. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  868. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  869. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  870. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  871. package/dist/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  872. package/dist/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  873. package/dist/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  874. package/dist/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  875. package/dist/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  876. package/dist/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  877. package/dist/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  878. package/dist/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  879. package/dist/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  880. package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  881. package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  882. package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  883. package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  884. package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  885. package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  886. package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  887. package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  888. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  889. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  890. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  891. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  892. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  893. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  894. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  895. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  896. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  897. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  898. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  899. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  900. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  901. package/dist/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  902. package/dist/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  903. package/dist/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  904. package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  905. package/dist/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  906. package/dist/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  907. package/dist/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  908. package/dist/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  909. package/dist/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  910. package/dist/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  911. package/dist/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  912. package/dist/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  913. package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  914. package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  915. package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  916. package/dist/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  917. package/dist/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  918. package/dist/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  919. package/templates/_shared/notice-overrides/index.json +0 -14
  920. package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +0 -21
  921. package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +0 -21
  922. package/templates/binary/native.yaml +0 -16
  923. package/templates/binary/synology-app.yaml +0 -7
  924. package/templates/compose-import/compose.yaml +0 -10
  925. package/templates/compose-import/synology-app.yaml +0 -15
  926. package/templates/hello-web/compose.yaml +0 -24
  927. package/templates/hello-web/html/app.js +0 -1
  928. package/templates/hello-web/html/index.html +0 -13
  929. package/templates/hello-web/synology-app.yaml +0 -16
  930. package/templates/hello-web-page/compose.yaml +0 -24
  931. package/templates/hello-web-page/html/app.js +0 -1
  932. package/templates/hello-web-page/html/index.html +0 -13
  933. package/templates/hello-web-page/synology-app.yaml +0 -16
  934. package/templates/native-go/backend/cmd/app/sdk_main.go +0 -60
  935. package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +0 -46
  936. package/templates/native-go/backend/cmd/helper/main.go +0 -47
  937. package/templates/native-go/backend/cmd/helper/sdk_registry.go +0 -19
  938. package/templates/native-go/backend/internal/api/binary.go +0 -154
  939. package/templates/native-go/backend/internal/api/binary_test.go +0 -165
  940. package/templates/native-go/backend/internal/app/integration_state.go +0 -16
  941. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +0 -129
  942. package/templates/native-go/backend/internal/app/nas_refusal_test.go +0 -46
  943. package/templates/native-go/backend/internal/app/sdk_jobs.go +0 -70
  944. package/templates/native-go/backend/internal/app/sdk_jobs_test.go +0 -116
  945. package/templates/native-go/backend/internal/app/sdk_routes.go +0 -174
  946. package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +0 -335
  947. package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +0 -41
  948. package/templates/native-go/backend/internal/dsmprobe/protocol.go +0 -179
  949. package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +0 -29
  950. package/templates/native-go/backend/internal/filestation/repository.go +0 -207
  951. package/templates/native-go/backend/internal/filestation/repository_test.go +0 -104
  952. package/templates/native-go/backend/internal/filestation/sdk_session.go +0 -241
  953. package/templates/native-go/backend/internal/filestation/sdk_session_test.go +0 -183
  954. package/templates/native-go/backend/internal/filestation/session_semantics_test.go +0 -383
  955. package/templates/native-go/backend/internal/helper/background_proof.go +0 -163
  956. package/templates/native-go/backend/internal/helper/background_proof_contract.go +0 -46
  957. package/templates/native-go/backend/internal/helper/background_proof_test.go +0 -161
  958. package/templates/native-go/backend/internal/helper/cohort.go +0 -393
  959. package/templates/native-go/backend/internal/helper/cohort_publication.go +0 -18
  960. package/templates/native-go/backend/internal/helper/cohort_publication_test.go +0 -105
  961. package/templates/native-go/backend/internal/helper/cohort_test.go +0 -372
  962. package/templates/native-go/backend/internal/helper/control.go +0 -424
  963. package/templates/native-go/backend/internal/helper/control_test.go +0 -250
  964. package/templates/native-go/backend/internal/helper/data_contract.go +0 -245
  965. package/templates/native-go/backend/internal/helper/data_contract_test.go +0 -51
  966. package/templates/native-go/backend/internal/helper/data_decode.go +0 -184
  967. package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +0 -30
  968. package/templates/native-go/backend/internal/helper/data_protocol.go +0 -419
  969. package/templates/native-go/backend/internal/helper/data_protocol_test.go +0 -449
  970. package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +0 -139
  971. package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +0 -121
  972. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +0 -95
  973. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +0 -56
  974. package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +0 -144
  975. package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +0 -89
  976. package/templates/native-go/backend/internal/helper/dsm_home_linux.go +0 -107
  977. package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +0 -82
  978. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +0 -151
  979. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +0 -66
  980. package/templates/native-go/backend/internal/helper/grant_authority.go +0 -519
  981. package/templates/native-go/backend/internal/helper/grant_authority_contract.go +0 -88
  982. package/templates/native-go/backend/internal/helper/grant_authority_test.go +0 -510
  983. package/templates/native-go/backend/internal/helper/grant_cohort.go +0 -389
  984. package/templates/native-go/backend/internal/helper/grant_cohort_test.go +0 -239
  985. package/templates/native-go/backend/internal/helper/grant_delivery.go +0 -49
  986. package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +0 -273
  987. package/templates/native-go/backend/internal/helper/grant_delivery_test.go +0 -322
  988. package/templates/native-go/backend/internal/helper/grant_operation_contract.go +0 -47
  989. package/templates/native-go/backend/internal/helper/grant_readonly_test.go +0 -180
  990. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +0 -416
  991. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +0 -469
  992. package/templates/native-go/backend/internal/helper/grant_rpc.go +0 -147
  993. package/templates/native-go/backend/internal/helper/grant_rpc_test.go +0 -51
  994. package/templates/native-go/backend/internal/helper/grant_snapshot.go +0 -78
  995. package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +0 -134
  996. package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +0 -254
  997. package/templates/native-go/backend/internal/helper/jobcontract/bindings.go +0 -48
  998. package/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +0 -436
  999. package/templates/native-go/backend/internal/helper/jobcontract/decode.go +0 -185
  1000. package/templates/native-go/backend/internal/helper/jobcontract/digest.go +0 -55
  1001. package/templates/native-go/backend/internal/helper/jobcontract/registry.go +0 -85
  1002. package/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +0 -73
  1003. package/templates/native-go/backend/internal/helper/jobcontract/result.go +0 -53
  1004. package/templates/native-go/backend/internal/helper/jobcontract/stub.go +0 -8
  1005. package/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +0 -127
  1006. package/templates/native-go/backend/internal/helper/jobcontract/types.go +0 -234
  1007. package/templates/native-go/backend/internal/helper/jobcontract/types_test.go +0 -29
  1008. package/templates/native-go/backend/internal/helper/jobcontract/validate.go +0 -462
  1009. package/templates/native-go/backend/internal/helper/lease.go +0 -112
  1010. package/templates/native-go/backend/internal/helper/lease_linux.go +0 -44
  1011. package/templates/native-go/backend/internal/helper/lease_other.go +0 -8
  1012. package/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +0 -34
  1013. package/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +0 -6
  1014. package/templates/native-go/backend/internal/helper/lifecycle.go +0 -234
  1015. package/templates/native-go/backend/internal/helper/lifecycle_test.go +0 -473
  1016. package/templates/native-go/backend/internal/helper/managed_pilot.go +0 -284
  1017. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +0 -74
  1018. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +0 -40
  1019. package/templates/native-go/backend/internal/helper/managed_pilot_test.go +0 -210
  1020. package/templates/native-go/backend/internal/helper/management.go +0 -79
  1021. package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +0 -97
  1022. package/templates/native-go/backend/internal/helper/native_discovery.go +0 -79
  1023. package/templates/native-go/backend/internal/helper/native_identity.go +0 -89
  1024. package/templates/native-go/backend/internal/helper/native_provider.go +0 -159
  1025. package/templates/native-go/backend/internal/helper/native_provider_test.go +0 -421
  1026. package/templates/native-go/backend/internal/helper/observation.go +0 -244
  1027. package/templates/native-go/backend/internal/helper/observation_health_test.go +0 -127
  1028. package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +0 -117
  1029. package/templates/native-go/backend/internal/helper/observation_test.go +0 -196
  1030. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +0 -155
  1031. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +0 -76
  1032. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +0 -130
  1033. package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +0 -98
  1034. package/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +0 -40
  1035. package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +0 -193
  1036. package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +0 -56
  1037. package/templates/native-go/backend/internal/helper/operation_linux.go +0 -480
  1038. package/templates/native-go/backend/internal/helper/operation_linux_test.go +0 -528
  1039. package/templates/native-go/backend/internal/helper/peer_linux.go +0 -44
  1040. package/templates/native-go/backend/internal/helper/peer_other.go +0 -7
  1041. package/templates/native-go/backend/internal/helper/process_linux.go +0 -180
  1042. package/templates/native-go/backend/internal/helper/process_other.go +0 -5
  1043. package/templates/native-go/backend/internal/helper/publication_test.go +0 -178
  1044. package/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +0 -115
  1045. package/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +0 -254
  1046. package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +0 -156
  1047. package/templates/native-go/backend/internal/helper/read_transfer.go +0 -40
  1048. package/templates/native-go/backend/internal/helper/read_transfer_linux.go +0 -109
  1049. package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +0 -118
  1050. package/templates/native-go/backend/internal/helper/read_transfer_test.go +0 -177
  1051. package/templates/native-go/backend/internal/helper/readonly.go +0 -105
  1052. package/templates/native-go/backend/internal/helper/readonly_admission.go +0 -85
  1053. package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +0 -253
  1054. package/templates/native-go/backend/internal/helper/readonly_linux_test.go +0 -378
  1055. package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +0 -65
  1056. package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +0 -113
  1057. package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +0 -168
  1058. package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +0 -241
  1059. package/templates/native-go/backend/internal/helper/readonly_test.go +0 -40
  1060. package/templates/native-go/backend/internal/helper/relaxed_identity.go +0 -252
  1061. package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +0 -105
  1062. package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +0 -406
  1063. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +0 -203
  1064. package/templates/native-go/backend/internal/helper/repair.go +0 -132
  1065. package/templates/native-go/backend/internal/helper/repair_test.go +0 -271
  1066. package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +0 -303
  1067. package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +0 -184
  1068. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +0 -250
  1069. package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +0 -18
  1070. package/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +0 -51
  1071. package/templates/native-go/backend/internal/helper/sdk_attach.go +0 -83
  1072. package/templates/native-go/backend/internal/helper/sdk_attach_contract.go +0 -32
  1073. package/templates/native-go/backend/internal/helper/sdk_attach_test.go +0 -184
  1074. package/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +0 -6
  1075. package/templates/native-go/backend/internal/helper/sdk_background_authority.go +0 -832
  1076. package/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +0 -714
  1077. package/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +0 -218
  1078. package/templates/native-go/backend/internal/helper/sdk_background_lease.go +0 -218
  1079. package/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +0 -110
  1080. package/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +0 -261
  1081. package/templates/native-go/backend/internal/helper/sdk_background_store_test.go +0 -58
  1082. package/templates/native-go/backend/internal/helper/sdk_bindings.go +0 -60
  1083. package/templates/native-go/backend/internal/helper/sdk_data_contract.go +0 -251
  1084. package/templates/native-go/backend/internal/helper/sdk_data_protocol.go +0 -424
  1085. package/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +0 -51
  1086. package/templates/native-go/backend/internal/helper/sdk_display.go +0 -488
  1087. package/templates/native-go/backend/internal/helper/sdk_display_contract.go +0 -121
  1088. package/templates/native-go/backend/internal/helper/sdk_display_test.go +0 -459
  1089. package/templates/native-go/backend/internal/helper/sdk_grant_authority.go +0 -559
  1090. package/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +0 -417
  1091. package/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +0 -94
  1092. package/templates/native-go/backend/internal/helper/sdk_history.go +0 -80
  1093. package/templates/native-go/backend/internal/helper/sdk_history_test.go +0 -76
  1094. package/templates/native-go/backend/internal/helper/sdk_job.go +0 -697
  1095. package/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +0 -309
  1096. package/templates/native-go/backend/internal/helper/sdk_job_contract.go +0 -122
  1097. package/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +0 -159
  1098. package/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +0 -327
  1099. package/templates/native-go/backend/internal/helper/sdk_job_test.go +0 -501
  1100. package/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +0 -343
  1101. package/templates/native-go/backend/internal/helper/sdk_journal.go +0 -77
  1102. package/templates/native-go/backend/internal/helper/sdk_journal_linux.go +0 -244
  1103. package/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +0 -295
  1104. package/templates/native-go/backend/internal/helper/sdk_journal_test.go +0 -71
  1105. package/templates/native-go/backend/internal/helper/sdk_picker_test.go +0 -50
  1106. package/templates/native-go/backend/internal/helper/sdk_process_linux.go +0 -184
  1107. package/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +0 -129
  1108. package/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +0 -242
  1109. package/templates/native-go/backend/internal/helper/sdk_rpc.go +0 -299
  1110. package/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +0 -70
  1111. package/templates/native-go/backend/internal/helper/sdk_rpc_test.go +0 -135
  1112. package/templates/native-go/backend/internal/helper/sdk_server_linux.go +0 -152
  1113. package/templates/native-go/backend/internal/helper/sdk_session.go +0 -677
  1114. package/templates/native-go/backend/internal/helper/sdk_session_contract.go +0 -72
  1115. package/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +0 -215
  1116. package/templates/native-go/backend/internal/helper/sdk_session_test.go +0 -475
  1117. package/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +0 -78
  1118. package/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +0 -414
  1119. package/templates/native-go/backend/internal/helper/sdk_transport.go +0 -79
  1120. package/templates/native-go/backend/internal/helper/sdk_transport_linux.go +0 -82
  1121. package/templates/native-go/backend/internal/helper/sdk_transport_test.go +0 -64
  1122. package/templates/native-go/backend/internal/helper/server_linux.go +0 -127
  1123. package/templates/native-go/backend/internal/helper/stale_management_linux_test.go +0 -126
  1124. package/templates/native-go/backend/internal/helper/stale_management_test.go +0 -122
  1125. package/templates/native-go/backend/internal/helper/startup_diagnostic.go +0 -68
  1126. package/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +0 -126
  1127. package/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +0 -117
  1128. package/templates/native-go/backend/internal/helper/status.go +0 -343
  1129. package/templates/native-go/backend/internal/helper/status_test.go +0 -333
  1130. package/templates/native-go/backend/internal/helper/supervision.go +0 -107
  1131. package/templates/native-go/backend/internal/helper/supervision_test.go +0 -124
  1132. package/templates/native-go/backend/internal/helper/supervisor_frame.go +0 -79
  1133. package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +0 -69
  1134. package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +0 -107
  1135. package/templates/native-go/backend/internal/helper/supervisor_linux.go +0 -367
  1136. package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +0 -913
  1137. package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +0 -74
  1138. package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +0 -45
  1139. package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +0 -23
  1140. package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +0 -67
  1141. package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +0 -52
  1142. package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +0 -20
  1143. package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +0 -20
  1144. package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +0 -20
  1145. package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +0 -22
  1146. package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +0 -22
  1147. package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +0 -22
  1148. package/templates/native-go/backend/internal/helper/unit_connection.go +0 -75
  1149. package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +0 -135
  1150. package/templates/native-go/backend/internal/helper/unit_connection_test.go +0 -151
  1151. package/templates/native-go/backend/internal/helper/unit_frame_test.go +0 -32
  1152. package/templates/native-go/backend/internal/helper/unit_linux.go +0 -368
  1153. package/templates/native-go/backend/internal/helper/unit_linux_test.go +0 -46
  1154. package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +0 -217
  1155. package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +0 -178
  1156. package/templates/native-go/backend/internal/helper/unit_query_linux.go +0 -115
  1157. package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +0 -372
  1158. package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +0 -232
  1159. package/templates/native-go/backend/internal/helper/write.go +0 -77
  1160. package/templates/native-go/backend/internal/helper/write_admission.go +0 -260
  1161. package/templates/native-go/backend/internal/helper/write_admission_test.go +0 -135
  1162. package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +0 -218
  1163. package/templates/native-go/backend/internal/helper/write_files_linux.go +0 -205
  1164. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +0 -225
  1165. package/templates/native-go/backend/internal/helper/write_intent_linux.go +0 -116
  1166. package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +0 -74
  1167. package/templates/native-go/backend/internal/helper/write_operation_linux.go +0 -245
  1168. package/templates/native-go/backend/internal/helper/write_test.go +0 -53
  1169. package/templates/native-go-background/BACKGROUND.md +0 -111
  1170. package/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  1171. package/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  1172. package/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  1173. package/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  1174. package/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  1175. package/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  1176. package/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  1177. package/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  1178. package/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  1179. package/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  1180. package/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  1181. package/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  1182. package/templates/native-go-background/frontend/test/background.test.ts +0 -179
  1183. package/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  1184. package/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  1185. package/templates/native-go-better-auth/node/app.mjs +0 -72
  1186. package/templates/native-go-better-auth/node/build.mjs +0 -4
  1187. package/templates/native-go-better-auth/node/package-lock.json +0 -862
  1188. package/templates/native-go-better-auth/node/package.json +0 -1
  1189. package/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  1190. package/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  1191. package/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  1192. package/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  1193. package/templates/native-go-root/backend/internal/app/root.go +0 -107
  1194. package/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  1195. package/templates/native-go-root/root/whoami.sh +0 -6
  1196. package/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  1197. package/templates/native-go-vue/frontend/README-M2.md +0 -64
  1198. package/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  1199. package/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  1200. package/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  1201. package/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  1202. package/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  1203. package/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  1204. package/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  1205. package/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  1206. package/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  1207. package/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  1208. package/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  1209. package/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  1210. package/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  1211. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  1212. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  1213. package/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  1214. package/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  1215. package/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  1216. package/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  1217. package/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  1218. package/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  1219. package/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  1220. package/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  1221. package/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  1222. package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  1223. package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  1224. package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  1225. package/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  1226. package/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  1227. package/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  1228. package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  1229. package/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  1230. package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  1231. package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  1232. package/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  1233. package/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  1234. package/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  1235. package/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  1236. package/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  1237. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  1238. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  1239. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  1240. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  1241. package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  1242. package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  1243. package/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  1244. package/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  1245. package/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  1246. package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  1247. package/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  1248. package/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  1249. package/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  1250. package/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  1251. package/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  1252. package/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  1253. package/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  1254. package/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  1255. package/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  1256. package/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  1257. package/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  1258. package/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  1259. package/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  1260. package/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  1261. /package/dist/templates/{hello-files → compose}/compose.yaml +0 -0
  1262. /package/dist/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1263. /package/dist/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1264. /package/dist/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
  1265. /package/templates/{hello-files → compose}/compose.yaml +0 -0
  1266. /package/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1267. /package/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1268. /package/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
@@ -0,0 +1,283 @@
1
+ package main
2
+
3
+ import (
4
+ "context"
5
+ "crypto/sha256"
6
+ "encoding/hex"
7
+ "encoding/json"
8
+ "errors"
9
+ "os"
10
+ "path/filepath"
11
+ "strconv"
12
+ "synopkgland/executor/internal/taskscript"
13
+ )
14
+
15
+ type approvedTask struct {
16
+ Kind string `json:"kind"`
17
+ Name string `json:"name"`
18
+ ScriptDigest string `json:"script_digest"`
19
+ }
20
+ type taskInventory struct {
21
+ Package string `json:"package"`
22
+ ExecutorDigest string `json:"executor_digest"`
23
+ PolicyDigest string `json:"policy_digest"`
24
+ Tasks []approvedTask `json:"tasks"`
25
+ }
26
+
27
+ func hashBytes(b []byte) string { h := sha256.Sum256(b); return hex.EncodeToString(h[:]) }
28
+ func validInventory(pkg string, inventory taskInventory) bool {
29
+ if inventory.Package != pkg || len(inventory.Tasks) != 2 || !idRE.MatchString(inventory.ExecutorDigest) || !idRE.MatchString(inventory.PolicyDigest) {
30
+ return false
31
+ }
32
+ seen := map[string]bool{}
33
+ for _, t := range inventory.Tasks {
34
+ if !contains([]string{"boot", "control"}, t.Kind) || seen[t.Kind] || t.Name != pkg+" executor "+t.Kind || !idRE.MatchString(t.ScriptDigest) {
35
+ return false
36
+ }
37
+ seen[t.Kind] = true
38
+ }
39
+ return true
40
+ }
41
+ func rootOwner(raw json.RawMessage, boot bool) bool {
42
+ var owner string
43
+ if json.Unmarshal(raw, &owner) == nil {
44
+ return owner == "root"
45
+ }
46
+ var owners map[string]string
47
+ return boot && json.Unmarshal(raw, &owners) == nil && len(owners) == 1 && owners["0"] == "root"
48
+ }
49
+ func taskReference(ctx context.Context, d *liveDSM, task approvedTask, expected string) (string, string, map[string]any, error) {
50
+ api, version := "SYNO.Core.EventScheduler", "1"
51
+ ref := map[string]any{"task_name": task.Name}
52
+ boot := task.Kind == "boot"
53
+ if !boot {
54
+ api = "SYNO.Core.TaskScheduler"
55
+ version = "4"
56
+ b, err := d.call(ctx, api, "list", "3", "", map[string]any{"start": 0, "limit": 500})
57
+ if err != nil {
58
+ return "", "", nil, err
59
+ }
60
+ var list struct {
61
+ Tasks []struct {
62
+ Name string `json:"name"`
63
+ ID json.Number `json:"id"`
64
+ } `json:"tasks"`
65
+ Total *int `json:"total"`
66
+ }
67
+ if json.Unmarshal(b, &list) != nil || list.Total == nil || *list.Total != len(list.Tasks) || len(list.Tasks) > 500 {
68
+ return "", "", nil, errors.New("incomplete scheduler list")
69
+ }
70
+ count := 0
71
+ var id int
72
+ for _, t := range list.Tasks {
73
+ if t.Name == task.Name {
74
+ count++
75
+ n, e := strconv.Atoi(string(t.ID))
76
+ if e != nil || n < 0 {
77
+ return "", "", nil, errors.New("task id")
78
+ }
79
+ id = n
80
+ }
81
+ }
82
+ if count != 1 {
83
+ return "", "", nil, errors.New("missing or duplicate task")
84
+ }
85
+ ref = map[string]any{"id": id, "real_owner": "root"}
86
+ }
87
+ b, err := d.call(ctx, api, "get", version, "", ref)
88
+ if err != nil {
89
+ return "", "", nil, err
90
+ }
91
+ var got struct {
92
+ Name string `json:"name"`
93
+ TaskName string `json:"task_name"`
94
+ ID json.Number `json:"id"`
95
+ Owner json.RawMessage `json:"owner"`
96
+ RealOwner string `json:"real_owner"`
97
+ Enable *bool `json:"enable"`
98
+ Type string `json:"type"`
99
+ Event string `json:"event"`
100
+ OperationType string `json:"operation_type"`
101
+ Operation string `json:"operation"`
102
+ Extra struct {
103
+ Script string `json:"script"`
104
+ } `json:"extra"`
105
+ }
106
+ if json.Unmarshal(b, &got) != nil || !rootOwner(got.Owner, boot) || got.Enable == nil {
107
+ return "", "", nil, errors.New("task owner")
108
+ }
109
+ script := got.Operation
110
+ if boot {
111
+ if got.TaskName != task.Name || !*got.Enable || got.Event != "bootup" || got.OperationType != "script" {
112
+ return "", "", nil, errors.New("boot definition")
113
+ }
114
+ } else {
115
+ if got.Name != task.Name || string(got.ID) != strconv.Itoa(ref["id"].(int)) || got.RealOwner != "root" || *got.Enable || got.Type != "script" {
116
+ return "", "", nil, errors.New("control definition")
117
+ }
118
+ script = got.Extra.Script
119
+ }
120
+ if script != expected || hashBytes([]byte(script)) != task.ScriptDigest {
121
+ return "", "", nil, errors.New("task script mismatch")
122
+ }
123
+ if !boot {
124
+ version = "2"
125
+ ref = map[string]any{"tasks": []map[string]any{ref}}
126
+ }
127
+ return api, version, ref, nil
128
+ }
129
+
130
+ // Setup records are copied into root state only after exact scheduler readback.
131
+ // Package-controlled names can never expand deletion beyond this package's pair.
132
+ func snapshotTasks(ctx context.Context, d *liveDSM, pkg, ed, pd, setupPath, runtime string) error {
133
+ b, _, err := readLifecycleFile(setupPath, 16384)
134
+ if err != nil {
135
+ return err
136
+ }
137
+ var setup struct {
138
+ Package string `json:"package"`
139
+ ExecutorDigest string `json:"executorDigest"`
140
+ PolicyDigest string `json:"policyDigest"`
141
+ Policy json.RawMessage `json:"policy"`
142
+ Implementation string `json:"implementation"`
143
+ Tasks []struct {
144
+ Kind string `json:"kind"`
145
+ Name string `json:"name"`
146
+ Header string `json:"header"`
147
+ Script string `json:"script"`
148
+ } `json:"tasks"`
149
+ }
150
+ if strictJSON(b, &setup) != nil || setup.Package != pkg || setup.ExecutorDigest != ed || setup.PolicyDigest != pd || setup.Implementation != "executor" {
151
+ return errors.New("setup pins")
152
+ }
153
+ generated, err := taskscript.Generate(pkg, ed, pd)
154
+ if err != nil || len(setup.Tasks) != len(generated) {
155
+ return errors.New("setup task inventory")
156
+ }
157
+ inv := taskInventory{Package: pkg, ExecutorDigest: ed, PolicyDigest: pd}
158
+ for i, task := range generated {
159
+ hint := setup.Tasks[i]
160
+ if hint.Kind != task.Kind || hint.Name != task.Name || hint.Header != task.Header || hint.Script != task.Script {
161
+ return errors.New("setup task mismatch")
162
+ }
163
+ inv.Tasks = append(inv.Tasks, approvedTask{Kind: task.Kind, Name: task.Name, ScriptDigest: hashBytes([]byte(task.Script))})
164
+ }
165
+ if !validInventory(pkg, inv) {
166
+ return errors.New("setup task inventory")
167
+ }
168
+ for i, task := range inv.Tasks {
169
+ if _, _, _, err = taskReference(ctx, d, task, generated[i].Script); err != nil {
170
+ return err
171
+ }
172
+ }
173
+ b, err = json.Marshal(inv)
174
+ if err != nil {
175
+ return err
176
+ }
177
+ f, err := os.CreateTemp(runtime, ".tasks-")
178
+ if err != nil {
179
+ return err
180
+ }
181
+ defer os.Remove(f.Name())
182
+ if _, err = f.Write(b); err == nil {
183
+ err = f.Sync()
184
+ }
185
+ closeErr := f.Close()
186
+ if err != nil {
187
+ return err
188
+ }
189
+ if closeErr != nil {
190
+ return closeErr
191
+ }
192
+ return os.Rename(f.Name(), filepath.Join(runtime, "tasks.json"))
193
+ }
194
+ func readTaskInventory(runtime string) (taskInventory, error) {
195
+ var inv taskInventory
196
+ f, err := openRegular(filepath.Join(runtime, "tasks.json"))
197
+ if err != nil {
198
+ return inv, err
199
+ }
200
+ defer f.Close()
201
+ info, err := f.Stat()
202
+ if err != nil || !ownedByRoot(info) || info.Mode().Perm() != 0600 {
203
+ return inv, errors.New("untrusted task inventory")
204
+ }
205
+ b, err := readLimited(f, 16384)
206
+ if err != nil {
207
+ return inv, err
208
+ }
209
+ err = strictJSON(b, &inv)
210
+ return inv, err
211
+ }
212
+ func purgeTasks(ctx context.Context, d *liveDSM, pkg string, inv taskInventory, log func(string)) {
213
+ if !validInventory(pkg, inv) {
214
+ log("task cleanup skipped: invalid protected inventory")
215
+ return
216
+ }
217
+ generated, err := taskscript.Generate(pkg, inv.ExecutorDigest, inv.PolicyDigest)
218
+ if err != nil {
219
+ log("task cleanup skipped: invalid protected pins")
220
+ return
221
+ }
222
+ for _, task := range inv.Tasks {
223
+ expected := ""
224
+ for _, canonical := range generated {
225
+ if canonical.Kind == task.Kind {
226
+ expected = canonical.Script
227
+ }
228
+ }
229
+ api, version, ref, err := taskReference(ctx, d, task, expected)
230
+ if err != nil {
231
+ log("task cleanup skipped: " + task.Kind + " definition mismatch or unavailable")
232
+ continue
233
+ }
234
+ if _, err = d.call(ctx, api, "delete", version, "", ref); err != nil {
235
+ log("task cleanup unconfirmed: " + task.Kind)
236
+ }
237
+ // The scheduler has no conditional delete. Accept the admin edit window,
238
+ // delete exactly once, and observe the name afterward without another delete.
239
+ if taskRemains(ctx, d, task) {
240
+ log("task cleanup: " + task.Kind + " same-named task remains after delete")
241
+ }
242
+
243
+ }
244
+ }
245
+
246
+ func purgeWithInventory(ctx context.Context, d *liveDSM, pkg string, inv taskInventory, state, runtime, socket string, log func(string)) error {
247
+ if runtime != filepath.Join(state, "runtime") {
248
+ return errors.New("runtime outside package protected state")
249
+ }
250
+ purgeTasks(ctx, d, pkg, inv, log)
251
+ return finishControl(state, runtime, socket, true)
252
+ }
253
+
254
+ func taskRemains(ctx context.Context, d *liveDSM, task approvedTask) bool {
255
+ if task.Kind == "boot" {
256
+ b, err := d.call(ctx, "SYNO.Core.EventScheduler", "get", "1", "", map[string]any{"task_name": task.Name})
257
+ if err != nil {
258
+ return false
259
+ }
260
+ var got struct {
261
+ Name string `json:"task_name"`
262
+ }
263
+ return json.Unmarshal(b, &got) == nil && got.Name == task.Name
264
+ }
265
+ b, err := d.call(ctx, "SYNO.Core.TaskScheduler", "list", "3", "", map[string]any{"start": 0, "limit": 500})
266
+ if err != nil {
267
+ return false
268
+ }
269
+ var list struct {
270
+ Tasks []struct {
271
+ Name string `json:"name"`
272
+ } `json:"tasks"`
273
+ }
274
+ if json.Unmarshal(b, &list) != nil {
275
+ return false
276
+ }
277
+ for _, t := range list.Tasks {
278
+ if t.Name == task.Name {
279
+ return true
280
+ }
281
+ }
282
+ return false
283
+ }
@@ -0,0 +1,43 @@
1
+ package main
2
+
3
+ import (
4
+ "context"
5
+ "encoding/json"
6
+ "os"
7
+ "path/filepath"
8
+ "strings"
9
+ "testing"
10
+ )
11
+
12
+ func TestReviewSnapshotRejectsUnrelatedSameNamedRootTasks(t *testing.T) {
13
+ dir, err := filepath.EvalSymlinks(t.TempDir())
14
+ if err != nil {
15
+ t.Fatal(err)
16
+ }
17
+ ed, pd := strings.Repeat("a", 64), strings.Repeat("b", 64)
18
+ tasks := []map[string]string{}
19
+ for _, kind := range []string{"boot", "control"} {
20
+ header := "#!/bin/sh\n# synopkgland executor " + kind + "\n"
21
+ // Another admin's script merely happens to carry these marker comments.
22
+ script := header + "# " + ed + " " + pd + "\necho unrelated-backup-task\n"
23
+ tasks = append(tasks, map[string]string{"kind": kind, "name": "TestApp executor " + kind, "header": header, "script": script})
24
+ }
25
+ setup := map[string]any{"package": "TestApp", "executorDigest": ed, "policyDigest": pd, "implementation": "executor", "tasks": tasks}
26
+ b, _ := json.Marshal(setup)
27
+ path := filepath.Join(dir, "setup.json")
28
+ os.WriteFile(path, b, 0600)
29
+ err = snapshotTasks(context.Background(), &liveDSM{Command: &snapshotFixture{tasks: tasks}}, "TestApp", ed, pd, path, dir)
30
+ if err == nil {
31
+ t.Fatal("unrelated root tasks accepted into protected deletion inventory")
32
+ }
33
+ }
34
+
35
+ func TestReviewPurgeRejectsUnrelatedSameNamedRootTasks(t *testing.T) {
36
+ script := "#!/bin/sh\n# synopkgland executor boot\n# " + strings.Repeat("a", 64) + strings.Repeat("b", 64) + "\necho unrelated-backup-task\n"
37
+ cmd := &schedulerFixture{script: script}
38
+ inv := taskInventory{Package: "TestApp", ExecutorDigest: strings.Repeat("a", 64), PolicyDigest: strings.Repeat("b", 64), Tasks: []approvedTask{{Kind: "boot", Name: "TestApp executor boot", ScriptDigest: hashBytes([]byte(script))}, {Kind: "control", Name: "TestApp executor control", ScriptDigest: hashBytes([]byte(script))}}}
39
+ purgeTasks(context.Background(), &liveDSM{Command: cmd}, "TestApp", inv, func(string) {})
40
+ if len(cmd.deleted) != 0 {
41
+ t.Fatal("deleted unrelated tasks", cmd.deleted)
42
+ }
43
+ }
@@ -0,0 +1,166 @@
1
+ package main
2
+
3
+ import (
4
+ "context"
5
+ "encoding/json"
6
+ "errors"
7
+ "os"
8
+ "path/filepath"
9
+ "strings"
10
+ "synopkgland/executor/internal/taskscript"
11
+ "testing"
12
+ )
13
+
14
+ type schedulerFixture struct {
15
+ changed, foreignOwner, duplicate bool
16
+ script string
17
+ deleted []string
18
+ }
19
+
20
+ func (s *schedulerFixture) Exec(_ context.Context, _ string, args []string) ([]byte, error) {
21
+ api, method := "", ""
22
+ for _, a := range args {
23
+ if strings.HasPrefix(a, "api=") {
24
+ api = strings.TrimPrefix(a, "api=")
25
+ }
26
+ if strings.HasPrefix(a, "method=") {
27
+ method = strings.TrimPrefix(a, "method=")
28
+ }
29
+ }
30
+ owner := "root"
31
+ if s.foreignOwner {
32
+ owner = "other"
33
+ }
34
+ generated, _ := taskscript.Generate("TestApp", strings.Repeat("a", 64), strings.Repeat("b", 64))
35
+ script := generated[1].Script
36
+ if api == "SYNO.Core.EventScheduler" {
37
+ script = generated[0].Script
38
+ }
39
+ if s.script != "" {
40
+ script = s.script
41
+ }
42
+ if s.changed {
43
+ script = "unrelated"
44
+ }
45
+ var data any
46
+ if method == "delete" {
47
+ s.deleted = append(s.deleted, api)
48
+ if api == "SYNO.Core.TaskScheduler" && !contains(args, `tasks=[{"id":7,"real_owner":"root"}]`) {
49
+ return nil, errors.New("wrong delete reference")
50
+ }
51
+ data = map[string]any{}
52
+ } else if api == "SYNO.Core.EventScheduler" {
53
+ data = map[string]any{"task_name": "TestApp executor boot", "owner": map[string]string{"0": owner}, "operation": script, "operation_type": "script", "event": "bootup", "enable": true}
54
+ } else if method == "list" {
55
+ tasks := []map[string]any{{"name": "TestApp executor control", "id": 7}, {"name": "TestApp executor boot", "id": 1000}}
56
+ if s.duplicate {
57
+ tasks = append(tasks, tasks[0])
58
+ }
59
+ data = map[string]any{"tasks": tasks, "total": len(tasks)}
60
+ } else {
61
+ data = map[string]any{"name": "TestApp executor control", "id": 7, "owner": owner, "real_owner": owner, "enable": false, "type": "script", "extra": map[string]any{"script": script}}
62
+ }
63
+ return json.Marshal(map[string]any{"success": true, "data": data})
64
+ }
65
+ func TestPurgeDeletesOnlyExactOwnRootTasksAndProtectedState(t *testing.T) {
66
+ for _, mode := range []string{"exact", "script changed", "owner changed", "duplicate control", "foreign name"} {
67
+ t.Run(mode, func(t *testing.T) {
68
+ cmd := &schedulerFixture{changed: mode == "script changed", foreignOwner: mode == "owner changed", duplicate: mode == "duplicate control"}
69
+ inventory := taskInventory{Package: "TestApp", ExecutorDigest: strings.Repeat("a", 64), PolicyDigest: strings.Repeat("b", 64), Tasks: []approvedTask{{Kind: "boot", Name: "TestApp executor boot", ScriptDigest: canonicalTaskDigest(t, "boot")}, {Kind: "control", Name: "TestApp executor control", ScriptDigest: canonicalTaskDigest(t, "control")}}}
70
+ if mode == "foreign name" {
71
+ inventory.Tasks[0].Name = "OtherApp executor boot"
72
+ }
73
+ state := filepath.Join(t.TempDir(), "state")
74
+ socket := filepath.Join(t.TempDir(), "socket")
75
+ os.MkdirAll(filepath.Join(state, "runtime"), 0700)
76
+ os.MkdirAll(socket, 0700)
77
+ if err := purgeWithInventory(context.Background(), &liveDSM{Command: cmd}, "TestApp", inventory, state, filepath.Join(state, "runtime"), socket, func(string) {}); err != nil {
78
+ t.Fatal(err)
79
+ }
80
+ if _, err := os.Stat(state); !os.IsNotExist(err) {
81
+ t.Fatal("state survived")
82
+ }
83
+ want := 0
84
+ if mode == "exact" {
85
+ want = 2
86
+ }
87
+ if mode == "duplicate control" {
88
+ want = 1
89
+ }
90
+ if len(cmd.deleted) != want {
91
+ t.Fatal("deleted mismatched tasks", cmd.deleted)
92
+ }
93
+ })
94
+ }
95
+ }
96
+
97
+ func TestSnapshotRequiresBothExactSchedulerDefinitionsBeforeWritingInventory(t *testing.T) {
98
+ for _, mismatch := range []bool{false, true} {
99
+ t.Run(map[bool]string{false: "exact setup", true: "changed root task"}[mismatch], func(t *testing.T) {
100
+ dir := realTestPath(t, t.TempDir())
101
+ ed := strings.Repeat("a", 64)
102
+ pd := strings.Repeat("b", 64)
103
+ tasks := []map[string]string{}
104
+ generated, err := taskscript.Generate("TestApp", ed, pd)
105
+ if err != nil {
106
+ t.Fatal(err)
107
+ }
108
+ for _, task := range generated {
109
+ tasks = append(tasks, map[string]string{"kind": task.Kind, "name": task.Name, "header": task.Header, "script": task.Script})
110
+ }
111
+ setup := map[string]any{"package": "TestApp", "executorDigest": ed, "policyDigest": pd, "implementation": "executor", "tasks": tasks}
112
+ b, _ := json.Marshal(setup)
113
+ path := filepath.Join(dir, "setup.json")
114
+ os.WriteFile(path, b, 0600)
115
+ command := &snapshotFixture{mismatch: mismatch, tasks: tasks}
116
+ err = snapshotTasks(context.Background(), &liveDSM{Command: command}, "TestApp", ed, pd, path, dir)
117
+ if (err != nil) != mismatch {
118
+ t.Fatal("snapshot validation", err)
119
+ }
120
+ b, readErr := os.ReadFile(filepath.Join(dir, "tasks.json"))
121
+ if mismatch {
122
+ if !os.IsNotExist(readErr) {
123
+ t.Fatal("unverified inventory persisted")
124
+ }
125
+ return
126
+ }
127
+ var inv taskInventory
128
+ if json.Unmarshal(b, &inv) != nil || !validInventory("TestApp", inv) {
129
+ t.Fatal("missing verified inventory")
130
+ }
131
+ })
132
+ }
133
+ }
134
+
135
+ type snapshotFixture struct {
136
+ mismatch bool
137
+ tasks []map[string]string
138
+ }
139
+
140
+ func (s *snapshotFixture) Exec(ctx context.Context, path string, args []string) ([]byte, error) {
141
+ f := &schedulerFixture{changed: s.mismatch}
142
+ for _, a := range args {
143
+ if a == "api=SYNO.Core.EventScheduler" {
144
+ f.script = s.tasks[0]["script"]
145
+ }
146
+ if a == "api=SYNO.Core.TaskScheduler" {
147
+ f.script = s.tasks[1]["script"]
148
+ }
149
+ }
150
+ return f.Exec(ctx, path, args)
151
+ }
152
+
153
+ func canonicalTaskDigest(t *testing.T, kind string) string {
154
+ t.Helper()
155
+ tasks, err := taskscript.Generate("TestApp", strings.Repeat("a", 64), strings.Repeat("b", 64))
156
+ if err != nil {
157
+ t.Fatal(err)
158
+ }
159
+ for _, task := range tasks {
160
+ if task.Kind == kind {
161
+ return hashBytes([]byte(task.Script))
162
+ }
163
+ }
164
+ t.Fatal("task kind")
165
+ return ""
166
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "accounts_present": {
3
+ "p2probe1": false,
4
+ "p2probe2": false,
5
+ "p2probeadm": false,
6
+ "p2probepkg": false
7
+ },
8
+ "paths_present": {
9
+ "/usr/local/etc/synopkgland/p2probepkg": false,
10
+ "/var/packages/p2probepkg": false,
11
+ "/run/synopkgland/p2probepkg": false,
12
+ "/var/services/homes/p2probe1": false,
13
+ "/var/services/homes/p2probe2": false,
14
+ "/var/services/homes/p2probeadm": false,
15
+ "/var/services/homes/p2probepkg": false,
16
+ "/tmp/p2probe-executor.test": false,
17
+ "/tmp/p2probe-executor-setup.py": false,
18
+ "/tmp/p2probe-executor-live.py": false,
19
+ "/tmp/p2probe-executor-final.py": false
20
+ },
21
+ "executor_processes": [],
22
+ "tasks_created": 0,
23
+ "administrators_probe_members": []
24
+ }
@@ -0,0 +1,9 @@
1
+ {"scenario": "final status", "response": {"ok": true, "result": {"executor_digest": "bc6d66fb667abf19a2a15f45da3aa90fc84e26fceaf9198bf904b6f8daa1b960", "policy_digest": "ccd9a4932bedd460f7b4f4d54d64449241f510721c19daa9caa426a12415fd6c", "ready": true, "version": "1"}}}
2
+ {"scenario": "delegate.create /home", "response": {"ok": true, "result": {"delegation_id": "eb56c3b83d12021ad31958a51fb2a79007455f5511fab79c2e2a501041d22821", "expires_at": "2026-10-08T01:37:34.700143938Z", "subject": {"uid": 1231, "username": "p2probe1"}}}}
3
+ {"scenario": "final list", "response": {"ok": true, "result": {"files": [{"isdir": true, "name": "p2probe-folder", "path": "/home/p2probe-folder"}, {"isdir": false, "name": "p2probe-output", "path": "/home/p2probe-output"}], "offset": 0, "total": 2}}}
4
+ {"scenario": "final info", "response": {"ok": true, "result": {"files": [{"isdir": false, "name": "p2probe-output", "path": "/home/p2probe-output"}]}}}
5
+ {"scenario": "final createFolder", "response": {"ok": true, "result": {"folders": [{"isdir": true, "name": "p2probe-final-folder", "path": "/home/p2probe-final-folder"}]}}}
6
+ {"scenario": "final checkPermission", "response": {"ok": true, "result": {"blSkip": false}}}
7
+ {"scenario": "kernel ACL denies other home", "exit_code": 1, "stderr": "executor: open /volume1/homes/p2probe2: no such file or directory\n", "note": "Target had already been deleted. This establishes missing-path refusal only; see separate existing-home kernel probe."}
8
+ {"scenario": "duplicate serve", "exit_code": 1, "stderr": "executor: already running\n"}
9
+ {"scenario": "final revoke", "response": {"ok": true, "result": {"revoked": true}}}
@@ -0,0 +1,6 @@
1
+ {
2
+ "scenario": "kernel ACL denies existing other home",
3
+ "target_exists": true,
4
+ "exit_code": 1,
5
+ "stderr": "executor: open /volume1/homes/p2probeadm: permission denied\n"
6
+ }
@@ -0,0 +1,123 @@
1
+ === RUN TestDSMAccountFailClosed
2
+ === RUN TestDSMAccountFailClosed/valid
3
+ === RUN TestDSMAccountFailClosed/success_empty
4
+ === RUN TestDSMAccountFailClosed/success_no_user
5
+ === RUN TestDSMAccountFailClosed/missing_expiry
6
+ === RUN TestDSMAccountFailClosed/disabled
7
+ === RUN TestDSMAccountFailClosed/uid_mismatch
8
+ === RUN TestDSMAccountFailClosed/name_mismatch
9
+ --- PASS: TestDSMAccountFailClosed (0.00s)
10
+ --- PASS: TestDSMAccountFailClosed/valid (0.00s)
11
+ --- PASS: TestDSMAccountFailClosed/success_empty (0.00s)
12
+ --- PASS: TestDSMAccountFailClosed/success_no_user (0.00s)
13
+ --- PASS: TestDSMAccountFailClosed/missing_expiry (0.00s)
14
+ --- PASS: TestDSMAccountFailClosed/disabled (0.00s)
15
+ --- PASS: TestDSMAccountFailClosed/uid_mismatch (0.00s)
16
+ --- PASS: TestDSMAccountFailClosed/name_mismatch (0.00s)
17
+ === RUN TestDSMAppPrivilege
18
+ === RUN TestDSMAppPrivilege/allow
19
+ === RUN TestDSMAppPrivilege/deny
20
+ === RUN TestDSMAppPrivilege/custom
21
+ === RUN TestDSMAppPrivilege/missing
22
+ === RUN TestDSMAppPrivilege/duplicate
23
+ --- PASS: TestDSMAppPrivilege (0.01s)
24
+ --- PASS: TestDSMAppPrivilege/allow (0.00s)
25
+ --- PASS: TestDSMAppPrivilege/deny (0.00s)
26
+ --- PASS: TestDSMAppPrivilege/custom (0.00s)
27
+ --- PASS: TestDSMAppPrivilege/missing (0.00s)
28
+ --- PASS: TestDSMAppPrivilege/duplicate (0.00s)
29
+ === RUN TestDSMVerify
30
+ --- PASS: TestDSMVerify (0.00s)
31
+ === RUN TestDSMArgvAndEmbeddedError
32
+ --- PASS: TestDSMArgvAndEmbeddedError (0.00s)
33
+ === RUN TestRootRequiresVerifiedAdmin
34
+ --- PASS: TestRootRequiresVerifiedAdmin (0.00s)
35
+ === RUN TestSubdirectoryBinding
36
+ --- PASS: TestSubdirectoryBinding (0.00s)
37
+ === RUN TestDSMEmptyOperationDataDenied
38
+ --- PASS: TestDSMEmptyOperationDataDenied (0.00s)
39
+ === RUN TestRejections
40
+ === RUN TestRejections/missing_account
41
+ === RUN TestRejections/disabled
42
+ === RUN TestRejections/unknown_disabled_state
43
+ === RUN TestRejections/admin_runner
44
+ === RUN TestRejections/system_runner
45
+ === RUN TestRejections/uid_reuse
46
+ === RUN TestRejections/app_deny
47
+ === RUN TestRejections/expired
48
+ === RUN TestRejections/revoked
49
+ === RUN TestRejections/job
50
+ === RUN TestRejections/scope
51
+ === RUN TestRejections/dotdot
52
+ === RUN TestRejections/name
53
+ === RUN TestRejections/outside_staging
54
+ --- PASS: TestRejections (0.01s)
55
+ --- PASS: TestRejections/missing_account (0.00s)
56
+ --- PASS: TestRejections/disabled (0.00s)
57
+ --- PASS: TestRejections/unknown_disabled_state (0.00s)
58
+ --- PASS: TestRejections/admin_runner (0.00s)
59
+ --- PASS: TestRejections/system_runner (0.00s)
60
+ --- PASS: TestRejections/uid_reuse (0.00s)
61
+ --- PASS: TestRejections/app_deny (0.00s)
62
+ --- PASS: TestRejections/expired (0.00s)
63
+ --- PASS: TestRejections/revoked (0.00s)
64
+ --- PASS: TestRejections/job (0.00s)
65
+ --- PASS: TestRejections/scope (0.00s)
66
+ --- PASS: TestRejections/dotdot (0.00s)
67
+ --- PASS: TestRejections/name (0.00s)
68
+ --- PASS: TestRejections/outside_staging (0.00s)
69
+ === RUN TestUnknownAndPolicy
70
+ --- PASS: TestUnknownAndPolicy (0.00s)
71
+ === RUN TestSpoofedUsername
72
+ --- PASS: TestSpoofedUsername (0.00s)
73
+ === RUN TestScopeSymlink
74
+ --- PASS: TestScopeSymlink (0.00s)
75
+ === RUN TestOperationDelegation
76
+ --- PASS: TestOperationDelegation (0.00s)
77
+ === RUN TestListAndRevokeOwnership
78
+ --- PASS: TestListAndRevokeOwnership (0.00s)
79
+ === RUN TestProtocol
80
+ === RUN TestProtocol/oversize
81
+ === RUN TestProtocol/unknown_field
82
+ === RUN TestProtocol/duplicate
83
+ === RUN TestProtocol/utf8
84
+ === RUN TestProtocol/version
85
+ --- PASS: TestProtocol (0.00s)
86
+ --- PASS: TestProtocol/oversize (0.00s)
87
+ --- PASS: TestProtocol/unknown_field (0.00s)
88
+ --- PASS: TestProtocol/duplicate (0.00s)
89
+ --- PASS: TestProtocol/utf8 (0.00s)
90
+ --- PASS: TestProtocol/version (0.00s)
91
+ === RUN TestWrongPeer
92
+ --- PASS: TestWrongPeer (0.00s)
93
+ === RUN TestStorePersistence
94
+ --- PASS: TestStorePersistence (0.00s)
95
+ === RUN TestFileStationPrivilegeRequiredSeparately
96
+ --- PASS: TestFileStationPrivilegeRequiredSeparately (0.00s)
97
+ === RUN TestSharedScope
98
+ --- PASS: TestSharedScope (0.00s)
99
+ === RUN TestPolicyValidation
100
+ --- PASS: TestPolicyValidation (0.00s)
101
+ === RUN TestFilenameAndTTL
102
+ --- PASS: TestFilenameAndTTL (0.00s)
103
+ === RUN TestStoreRejectSymlinkAndMode
104
+ --- PASS: TestStoreRejectSymlinkAndMode (0.00s)
105
+ === RUN TestDropOrderAndFailures
106
+ --- PASS: TestDropOrderAndFailures (0.00s)
107
+ === RUN TestLinuxStagingSymlinks
108
+ --- PASS: TestLinuxStagingSymlinks (0.00s)
109
+ === RUN TestLinuxCopyScopeAndNoOverwrite
110
+ --- PASS: TestLinuxCopyScopeAndNoOverwrite (0.00s)
111
+ === RUN TestLinuxPeerCredential
112
+ --- PASS: TestLinuxPeerCredential (0.00s)
113
+ === RUN TestLinuxPIDLock
114
+ --- PASS: TestLinuxPIDLock (0.00s)
115
+ === RUN TestScriptDigest
116
+ --- PASS: TestScriptDigest (0.00s)
117
+ === RUN TestLinuxStagingRootSymlink
118
+ --- PASS: TestLinuxStagingRootSymlink (0.00s)
119
+ === RUN TestLinuxStagingHardlinkAndOwner
120
+ --- PASS: TestLinuxStagingHardlinkAndOwner (0.00s)
121
+ === RUN TestScriptTimeoutAndOutputLimit
122
+ --- PASS: TestScriptTimeoutAndOutputLimit (0.11s)
123
+ PASS