@synopackageland/cli 0.5.3 → 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 (1300) 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 +2 -2
  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 +3 -10
  11. package/dist/build-spk/uninstall-wizard.js +5 -3
  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 +70 -298
  26. package/dist/host/dsm-client.js +79 -7
  27. package/dist/host/types.d.ts +13 -0
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.js +1 -0
  30. package/dist/info.d.ts +20 -2
  31. package/dist/info.js +140 -0
  32. package/dist/init.d.ts +2 -14
  33. package/dist/init.js +89 -90
  34. package/dist/inspect.js +1 -1
  35. package/dist/log.d.ts +5 -0
  36. package/dist/log.js +18 -0
  37. package/dist/runtime/executor-build.d.ts +22 -0
  38. package/dist/runtime/executor-build.js +36 -0
  39. package/dist/runtime/executor-inspect.d.ts +15 -0
  40. package/dist/runtime/executor-inspect.js +32 -0
  41. package/dist/runtime/executor-policy.d.ts +25 -0
  42. package/dist/runtime/executor-policy.js +24 -0
  43. package/dist/runtime/executor-tasks.d.ts +16 -0
  44. package/dist/runtime/executor-tasks.js +28 -0
  45. package/dist/runtime/uninstall-cleanup.d.ts +7 -0
  46. package/dist/runtime/uninstall-cleanup.js +10 -0
  47. package/dist/skill.js +3 -1
  48. package/dist/standalone/api-permissions.d.ts +18 -0
  49. package/dist/standalone/api-permissions.js +63 -0
  50. package/dist/standalone/build.d.ts +1 -1
  51. package/dist/standalone/build.js +26 -40
  52. package/dist/standalone/dsm-window.js +42 -23
  53. package/dist/standalone/inspect-spk.d.ts +9 -3
  54. package/dist/standalone/inspect-spk.js +64 -68
  55. package/dist/standalone/lifecycle.d.ts +1 -1
  56. package/dist/standalone/lifecycle.js +31 -27
  57. package/dist/standalone/manifest.d.ts +17 -14
  58. package/dist/standalone/manifest.js +77 -53
  59. package/dist/standalone/resource.d.ts +2 -2
  60. package/dist/standalone/resource.js +1 -1
  61. package/dist/standalone/root-ops.d.ts +1 -30
  62. package/dist/standalone/root-ops.js +1 -68
  63. package/dist/standalone/root-window.d.ts +5 -38
  64. package/dist/standalone/root-window.js +116 -399
  65. package/dist/standalone/spk.d.ts +3 -5
  66. package/dist/standalone/spk.js +24 -49
  67. package/dist/templates/_executor/README.md +204 -0
  68. package/dist/templates/_executor/apppriv_review_test.go +28 -0
  69. package/dist/templates/_executor/auth_presence_review_test.go +38 -0
  70. package/dist/templates/_executor/cmd/lifecycle/main.go +42 -0
  71. package/dist/templates/_executor/cookie_review_test.go +27 -0
  72. package/dist/templates/_executor/digest_review_test.go +120 -0
  73. package/dist/templates/_executor/directories.go +40 -0
  74. package/dist/templates/_executor/dsm.go +319 -0
  75. package/dist/templates/_executor/dsm_test.go +196 -0
  76. package/dist/templates/_executor/executor.go +524 -0
  77. package/dist/templates/_executor/executor_test.go +284 -0
  78. package/dist/templates/_executor/go.mod +3 -0
  79. package/dist/templates/_executor/identity.go +48 -0
  80. package/dist/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  81. package/dist/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  82. package/dist/templates/_executor/internal/taskscript/boot.sh +31 -0
  83. package/dist/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  84. package/dist/templates/_executor/internal/taskscript/control.sh +26 -0
  85. package/dist/templates/_executor/internal/taskscript/tasks.go +42 -0
  86. package/dist/templates/_executor/json_review_test.go +40 -0
  87. package/dist/templates/_executor/lifecycle_test.go +86 -0
  88. package/dist/templates/_executor/main.go +518 -0
  89. package/dist/templates/_executor/managed.go +117 -0
  90. package/dist/templates/_executor/managed_test.go +137 -0
  91. package/dist/templates/_executor/path_test.go +17 -0
  92. package/dist/templates/_executor/platform_linux.go +336 -0
  93. package/dist/templates/_executor/platform_linux_test.go +247 -0
  94. package/dist/templates/_executor/platform_other.go +42 -0
  95. package/dist/templates/_executor/process.go +139 -0
  96. package/dist/templates/_executor/socket_linux_test.go +46 -0
  97. package/dist/templates/_executor/store.go +90 -0
  98. package/dist/templates/_executor/task_race_review_test.go +47 -0
  99. package/dist/templates/_executor/tasks.go +283 -0
  100. package/dist/templates/_executor/tasks_review_test.go +43 -0
  101. package/dist/templates/_executor/tasks_test.go +166 -0
  102. package/dist/templates/_executor/testdata/evidence/cleanup.json +24 -0
  103. package/dist/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  104. package/dist/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  105. package/dist/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  106. package/dist/templates/_executor/testdata/evidence/live.jsonl +23 -0
  107. package/dist/templates/_executor/testdata/evidence/storage.json +90 -0
  108. package/dist/templates/_executor/testdata/evidence/validation.json +55 -0
  109. package/dist/templates/_executor/testdata/live_probe.py +98 -0
  110. package/dist/templates/_executor/upgrade_watch_test.go +236 -0
  111. package/dist/templates/_executor/watch.go +156 -0
  112. package/dist/templates/_executor/watch_test.go +270 -0
  113. package/dist/templates/_executor/write_review_linux_test.go +95 -0
  114. package/dist/templates/_shared/AGENTS.md +17 -0
  115. package/dist/templates/_shared/CLAUDE.md +1 -0
  116. package/dist/templates/binary/LICENSES/GO-LICENSE +27 -0
  117. package/dist/templates/binary/LICENSES/GO-PATENTS +22 -0
  118. package/dist/templates/binary/dsm-package.yaml +19 -0
  119. package/dist/templates/binary/example/main.go +16 -0
  120. package/dist/templates/binary/gitignore +2 -0
  121. package/dist/templates/binary/ui/app.css +4 -0
  122. package/dist/templates/binary/ui/app.js +17 -0
  123. package/dist/templates/native-go/README.md +128 -139
  124. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  125. package/dist/templates/native-go/backend/cmd/app/main.go +33 -26
  126. package/dist/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  127. package/dist/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  128. package/dist/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  129. package/dist/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  130. package/dist/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  131. package/dist/templates/native-go/backend/internal/api/errors.go +14 -0
  132. package/dist/templates/native-go/backend/internal/api/permissions.go +161 -0
  133. package/dist/templates/native-go/backend/internal/api/permissions.json +5 -0
  134. package/dist/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  135. package/dist/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  136. package/dist/templates/native-go/backend/internal/api/registry.go +48 -32
  137. package/dist/templates/native-go/backend/internal/api/registry_test.go +16 -1
  138. package/dist/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  139. package/dist/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  140. package/dist/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  141. package/dist/templates/native-go/backend/internal/api/server.go +135 -8
  142. package/dist/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  143. package/dist/templates/native-go/backend/internal/app/background.go +23 -44
  144. package/dist/templates/native-go/backend/internal/app/background_owner.go +0 -21
  145. package/dist/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  146. package/dist/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  147. package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  148. package/dist/templates/native-go/backend/internal/app/background_test.go +15 -41
  149. package/dist/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  150. package/dist/templates/native-go/backend/internal/app/identity.go +20 -0
  151. package/dist/templates/native-go/backend/internal/app/identity_test.go +15 -0
  152. package/dist/templates/native-go/backend/internal/app/routes.go +12 -36
  153. package/dist/templates/native-go/backend/internal/app/routes_test.go +16 -40
  154. package/dist/templates/native-go/backend/internal/app/session_files.go +4 -10
  155. package/dist/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  156. package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  157. package/dist/templates/native-go/backend/internal/background/lock_test.go +131 -0
  158. package/dist/templates/native-go/backend/internal/background/owner_test.go +12 -20
  159. package/dist/templates/native-go/backend/internal/background/runner_test.go +1 -1
  160. package/dist/templates/native-go/backend/internal/background/schedule.go +53 -17
  161. package/dist/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  162. package/dist/templates/native-go/backend/internal/background/store.go +115 -99
  163. package/dist/templates/native-go/backend/internal/background/store_test.go +10 -52
  164. package/dist/templates/native-go/backend/internal/dsm/admin.go +70 -0
  165. package/dist/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  166. package/dist/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  167. package/dist/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  168. package/dist/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  169. package/dist/templates/native-go/backend/internal/dsm/auth.go +24 -48
  170. package/dist/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  171. package/dist/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  172. package/dist/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  173. package/dist/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  174. package/dist/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  175. package/dist/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  176. package/dist/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  177. package/dist/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  178. package/dist/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  179. package/dist/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  180. package/dist/templates/native-go/backend/internal/filestation/client.go +68 -18
  181. package/dist/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  182. package/dist/templates/native-go/backend/internal/filestation/doc.go +1 -1
  183. package/dist/templates/native-go/backend/internal/filestation/http.go +70 -0
  184. package/dist/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  185. package/dist/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  186. package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  187. package/dist/templates/native-go/backend/internal/filestation/service.go +117 -117
  188. package/dist/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  189. package/dist/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  190. package/dist/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  191. package/dist/templates/native-go/backend/internal/filestation/write.go +0 -40
  192. package/dist/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  193. package/dist/templates/native-go/backend/internal/identity/README.md +55 -0
  194. package/dist/templates/native-go/backend/internal/identity/dsm.go +96 -0
  195. package/dist/templates/native-go/backend/internal/identity/http.go +291 -0
  196. package/dist/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  197. package/dist/templates/native-go/backend/internal/identity/service.go +159 -0
  198. package/dist/templates/native-go/backend/internal/identity/store.go +109 -0
  199. package/dist/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  200. package/dist/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  201. package/dist/templates/native-go/dsm-package.yaml +8 -17
  202. package/dist/templates/native-go-delegate/DELEGATE.md +142 -0
  203. package/dist/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  204. package/dist/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  205. package/dist/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  206. package/dist/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  207. package/dist/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  208. package/dist/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  209. package/dist/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  210. package/dist/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  211. package/dist/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  212. package/dist/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  213. package/dist/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  214. package/dist/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  215. package/dist/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  216. package/dist/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  217. package/dist/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  218. package/dist/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  219. package/dist/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  220. package/dist/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  221. package/dist/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  222. package/dist/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  223. package/dist/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  224. package/dist/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  225. package/dist/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  226. package/dist/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  227. package/dist/templates/native-go-delegate/test-frontend.sh +12 -0
  228. package/dist/templates/native-go-delegate/test.sh +17 -0
  229. package/dist/templates/native-go-jobs/BACKGROUND.md +108 -0
  230. package/dist/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  231. package/dist/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  232. package/dist/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  233. package/dist/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  234. package/dist/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  235. package/dist/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  236. package/dist/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  237. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  238. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  239. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  240. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  241. package/dist/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  242. package/dist/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  243. package/dist/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  244. package/dist/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  245. package/dist/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  246. package/dist/templates/native-go-root-ops/root/whoami.sh +3 -0
  247. package/dist/templates/native-go-vue/README.md +36 -248
  248. package/dist/templates/native-go-vue/frontend/DESIGN.md +20 -49
  249. package/dist/templates/native-go-vue/frontend/package-lock.json +278 -159
  250. package/dist/templates/native-go-vue/frontend/package.json +2 -2
  251. package/dist/templates/native-go-vue/frontend/src/App.vue +55 -151
  252. package/dist/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  253. package/dist/templates/native-go-vue/frontend/src/context.ts +2 -14
  254. package/dist/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  255. package/dist/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  256. package/dist/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  257. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  258. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  259. package/dist/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  260. package/dist/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  261. package/dist/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  262. package/dist/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  263. package/dist/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  264. package/dist/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  265. package/dist/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  266. package/dist/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  267. package/dist/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  268. package/dist/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  269. package/dist/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  270. package/dist/templates/native-go-vue/frontend/src/main.ts +7 -4
  271. package/dist/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  272. package/dist/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  273. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  274. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  275. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  276. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  277. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  278. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  279. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  280. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  281. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  282. package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  283. package/dist/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  284. package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  285. package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  286. package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  287. package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  288. package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  289. package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  290. package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  291. package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  292. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  293. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  294. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  295. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  296. package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  297. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  298. package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  299. package/dist/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  300. package/dist/templates/native-go-vue/frontend/vite.config.ts +2 -2
  301. package/dist/types.d.ts +1 -1
  302. package/dist/validate.js +27 -36
  303. package/package.json +2 -5
  304. package/skills/SKILL.md +21 -3
  305. package/skills/reference/create.md +15 -6
  306. package/skills/reference/deploy.md +5 -3
  307. package/skills/reference/diagnose.md +1 -1
  308. package/skills/reference/files.md +8 -6
  309. package/skills/reference/identity.md +9 -3
  310. package/skills/reference/ui-json.md +78 -0
  311. package/skills/reference/ui-vue.md +71 -0
  312. package/skills/reference/wrap.md +3 -4
  313. package/templates/_executor/README.md +204 -0
  314. package/templates/_executor/apppriv_review_test.go +28 -0
  315. package/templates/_executor/auth_presence_review_test.go +38 -0
  316. package/templates/_executor/cmd/lifecycle/main.go +42 -0
  317. package/templates/_executor/cookie_review_test.go +27 -0
  318. package/templates/_executor/digest_review_test.go +120 -0
  319. package/templates/_executor/directories.go +40 -0
  320. package/templates/_executor/dsm.go +319 -0
  321. package/templates/_executor/dsm_test.go +196 -0
  322. package/templates/_executor/executor.go +524 -0
  323. package/templates/_executor/executor_test.go +284 -0
  324. package/templates/_executor/go.mod +3 -0
  325. package/templates/_executor/identity.go +48 -0
  326. package/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  327. package/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  328. package/templates/_executor/internal/taskscript/boot.sh +31 -0
  329. package/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  330. package/templates/_executor/internal/taskscript/control.sh +26 -0
  331. package/templates/_executor/internal/taskscript/tasks.go +42 -0
  332. package/templates/_executor/json_review_test.go +40 -0
  333. package/templates/_executor/lifecycle_test.go +86 -0
  334. package/templates/_executor/main.go +518 -0
  335. package/templates/_executor/managed.go +117 -0
  336. package/templates/_executor/managed_test.go +137 -0
  337. package/templates/_executor/path_test.go +17 -0
  338. package/templates/_executor/platform_linux.go +336 -0
  339. package/templates/_executor/platform_linux_test.go +247 -0
  340. package/templates/_executor/platform_other.go +42 -0
  341. package/templates/_executor/process.go +139 -0
  342. package/templates/_executor/socket_linux_test.go +46 -0
  343. package/templates/_executor/store.go +90 -0
  344. package/templates/_executor/task_race_review_test.go +47 -0
  345. package/templates/_executor/tasks.go +283 -0
  346. package/templates/_executor/tasks_review_test.go +43 -0
  347. package/templates/_executor/tasks_test.go +166 -0
  348. package/templates/_executor/testdata/evidence/cleanup.json +24 -0
  349. package/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  350. package/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  351. package/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  352. package/templates/_executor/testdata/evidence/live.jsonl +23 -0
  353. package/templates/_executor/testdata/evidence/storage.json +90 -0
  354. package/templates/_executor/testdata/evidence/validation.json +55 -0
  355. package/templates/_executor/testdata/live_probe.py +98 -0
  356. package/templates/_executor/upgrade_watch_test.go +236 -0
  357. package/templates/_executor/watch.go +156 -0
  358. package/templates/_executor/watch_test.go +270 -0
  359. package/templates/_executor/write_review_linux_test.go +95 -0
  360. package/templates/_shared/AGENTS.md +17 -0
  361. package/templates/_shared/CLAUDE.md +1 -0
  362. package/templates/binary/LICENSES/GO-LICENSE +27 -0
  363. package/templates/binary/LICENSES/GO-PATENTS +22 -0
  364. package/templates/binary/dsm-package.yaml +19 -0
  365. package/templates/binary/example/main.go +16 -0
  366. package/templates/binary/gitignore +2 -0
  367. package/templates/binary/ui/app.css +4 -0
  368. package/templates/binary/ui/app.js +17 -0
  369. package/templates/native-go/README.md +128 -139
  370. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  371. package/templates/native-go/backend/cmd/app/main.go +33 -26
  372. package/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  373. package/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  374. package/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  375. package/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  376. package/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  377. package/templates/native-go/backend/internal/api/errors.go +14 -0
  378. package/templates/native-go/backend/internal/api/permissions.go +161 -0
  379. package/templates/native-go/backend/internal/api/permissions.json +5 -0
  380. package/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  381. package/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  382. package/templates/native-go/backend/internal/api/registry.go +48 -32
  383. package/templates/native-go/backend/internal/api/registry_test.go +16 -1
  384. package/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  385. package/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  386. package/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  387. package/templates/native-go/backend/internal/api/server.go +135 -8
  388. package/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  389. package/templates/native-go/backend/internal/app/background.go +23 -44
  390. package/templates/native-go/backend/internal/app/background_owner.go +0 -21
  391. package/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  392. package/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  393. package/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  394. package/templates/native-go/backend/internal/app/background_test.go +15 -41
  395. package/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  396. package/templates/native-go/backend/internal/app/identity.go +20 -0
  397. package/templates/native-go/backend/internal/app/identity_test.go +15 -0
  398. package/templates/native-go/backend/internal/app/routes.go +12 -36
  399. package/templates/native-go/backend/internal/app/routes_test.go +16 -40
  400. package/templates/native-go/backend/internal/app/session_files.go +4 -10
  401. package/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  402. package/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  403. package/templates/native-go/backend/internal/background/lock_test.go +131 -0
  404. package/templates/native-go/backend/internal/background/owner_test.go +12 -20
  405. package/templates/native-go/backend/internal/background/runner_test.go +1 -1
  406. package/templates/native-go/backend/internal/background/schedule.go +53 -17
  407. package/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  408. package/templates/native-go/backend/internal/background/store.go +115 -99
  409. package/templates/native-go/backend/internal/background/store_test.go +10 -52
  410. package/templates/native-go/backend/internal/dsm/admin.go +70 -0
  411. package/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  412. package/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  413. package/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  414. package/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  415. package/templates/native-go/backend/internal/dsm/auth.go +24 -48
  416. package/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  417. package/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  418. package/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  419. package/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  420. package/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  421. package/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  422. package/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  423. package/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  424. package/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  425. package/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  426. package/templates/native-go/backend/internal/filestation/client.go +68 -18
  427. package/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  428. package/templates/native-go/backend/internal/filestation/doc.go +1 -1
  429. package/templates/native-go/backend/internal/filestation/http.go +70 -0
  430. package/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  431. package/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  432. package/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  433. package/templates/native-go/backend/internal/filestation/service.go +117 -117
  434. package/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  435. package/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  436. package/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  437. package/templates/native-go/backend/internal/filestation/write.go +0 -40
  438. package/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  439. package/templates/native-go/backend/internal/identity/README.md +55 -0
  440. package/templates/native-go/backend/internal/identity/dsm.go +96 -0
  441. package/templates/native-go/backend/internal/identity/http.go +291 -0
  442. package/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  443. package/templates/native-go/backend/internal/identity/service.go +159 -0
  444. package/templates/native-go/backend/internal/identity/store.go +109 -0
  445. package/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  446. package/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  447. package/templates/native-go/dsm-package.yaml +8 -17
  448. package/templates/native-go-delegate/DELEGATE.md +142 -0
  449. package/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  450. package/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  451. package/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  452. package/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  453. package/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  454. package/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  455. package/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  456. package/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  457. package/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  458. package/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  459. package/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  460. package/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  461. package/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  462. package/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  463. package/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  464. package/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  465. package/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  466. package/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  467. package/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  468. package/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  469. package/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  470. package/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  471. package/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  472. package/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  473. package/templates/native-go-delegate/test-frontend.sh +12 -0
  474. package/templates/native-go-delegate/test.sh +17 -0
  475. package/templates/native-go-jobs/BACKGROUND.md +108 -0
  476. package/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  477. package/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  478. package/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  479. package/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  480. package/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  481. package/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  482. package/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  483. package/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  484. package/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  485. package/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  486. package/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  487. package/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  488. package/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  489. package/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  490. package/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  491. package/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  492. package/templates/native-go-root-ops/root/whoami.sh +3 -0
  493. package/templates/native-go-vue/README.md +36 -248
  494. package/templates/native-go-vue/frontend/DESIGN.md +20 -49
  495. package/templates/native-go-vue/frontend/package-lock.json +278 -159
  496. package/templates/native-go-vue/frontend/package.json +2 -2
  497. package/templates/native-go-vue/frontend/src/App.vue +55 -151
  498. package/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  499. package/templates/native-go-vue/frontend/src/context.ts +2 -14
  500. package/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  501. package/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  502. package/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  503. package/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  504. package/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  505. package/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  506. package/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  507. package/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  508. package/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  509. package/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  510. package/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  511. package/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  512. package/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  513. package/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  514. package/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  515. package/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  516. package/templates/native-go-vue/frontend/src/main.ts +7 -4
  517. package/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  518. package/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  519. package/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  520. package/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  521. package/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  522. package/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  523. package/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  524. package/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  525. package/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  526. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  527. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  528. package/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  529. package/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  530. package/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  531. package/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  532. package/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  533. package/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  534. package/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  535. package/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  536. package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  537. package/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  538. package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  539. package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  540. package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  541. package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  542. package/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  543. package/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  544. package/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  545. package/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  546. package/templates/native-go-vue/frontend/vite.config.ts +2 -2
  547. package/dist/authorization-sdk.d.ts +0 -5
  548. package/dist/authorization-sdk.js +0 -5
  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/authorization-window.d.ts +0 -2
  558. package/dist/standalone/authorization-window.js +0 -28
  559. package/dist/standalone/authorization.d.ts +0 -48
  560. package/dist/standalone/authorization.js +0 -116
  561. package/dist/standalone/helper-inventory.d.ts +0 -31
  562. package/dist/standalone/helper-inventory.js +0 -11
  563. package/dist/standalone/helper.d.ts +0 -22
  564. package/dist/standalone/helper.js +0 -123
  565. package/dist/standalone/inspect-helper.d.ts +0 -6
  566. package/dist/standalone/inspect-helper.js +0 -103
  567. package/dist/standalone/job-diagnostics.d.ts +0 -1
  568. package/dist/standalone/job-diagnostics.js +0 -49
  569. package/dist/standalone/lifecycle-helper.d.ts +0 -2
  570. package/dist/standalone/lifecycle-helper.js +0 -12
  571. package/dist/standalone/native-layout.d.ts +0 -74
  572. package/dist/standalone/native-layout.js +0 -318
  573. package/dist/standalone/root-messages.d.ts +0 -7
  574. package/dist/standalone/root-messages.js +0 -259
  575. package/dist/standalone/worker-contract-json.d.ts +0 -8
  576. package/dist/standalone/worker-contract-json.js +0 -141
  577. package/dist/standalone/worker-contract.d.ts +0 -189
  578. package/dist/standalone/worker-contract.js +0 -175
  579. package/dist/standalone/worker-registry.d.ts +0 -40
  580. package/dist/standalone/worker-registry.js +0 -167
  581. package/dist/templates/_authorization/main.go +0 -104
  582. package/dist/templates/_authorization/main_test.go +0 -35
  583. package/dist/templates/_shared/notice-overrides/index.json +0 -14
  584. package/dist/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +0 -21
  585. package/dist/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +0 -21
  586. package/dist/templates/binary/native.yaml +0 -16
  587. package/dist/templates/binary/synology-app.yaml +0 -7
  588. package/dist/templates/compose-import/compose.yaml +0 -10
  589. package/dist/templates/compose-import/synology-app.yaml +0 -15
  590. package/dist/templates/native-go/backend/cmd/app/sdk_main.go +0 -62
  591. package/dist/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +0 -46
  592. package/dist/templates/native-go/backend/cmd/helper/main.go +0 -64
  593. package/dist/templates/native-go/backend/cmd/helper/sdk_registry.go +0 -19
  594. package/dist/templates/native-go/backend/internal/api/binary.go +0 -154
  595. package/dist/templates/native-go/backend/internal/api/binary_test.go +0 -165
  596. package/dist/templates/native-go/backend/internal/app/authorization_none.go +0 -5
  597. package/dist/templates/native-go/backend/internal/app/integration_state.go +0 -16
  598. package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +0 -129
  599. package/dist/templates/native-go/backend/internal/app/nas_refusal_test.go +0 -46
  600. package/dist/templates/native-go/backend/internal/app/sdk_jobs.go +0 -70
  601. package/dist/templates/native-go/backend/internal/app/sdk_jobs_test.go +0 -116
  602. package/dist/templates/native-go/backend/internal/app/sdk_routes.go +0 -177
  603. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux.go +0 -335
  604. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +0 -41
  605. package/dist/templates/native-go/backend/internal/dsmprobe/protocol.go +0 -179
  606. package/dist/templates/native-go/backend/internal/dsmprobe/protocol_test.go +0 -29
  607. package/dist/templates/native-go/backend/internal/filestation/repository.go +0 -207
  608. package/dist/templates/native-go/backend/internal/filestation/repository_test.go +0 -104
  609. package/dist/templates/native-go/backend/internal/filestation/sdk_session.go +0 -241
  610. package/dist/templates/native-go/backend/internal/filestation/sdk_session_test.go +0 -183
  611. package/dist/templates/native-go/backend/internal/filestation/session_semantics_test.go +0 -383
  612. package/dist/templates/native-go/backend/internal/helper/background_proof.go +0 -163
  613. package/dist/templates/native-go/backend/internal/helper/background_proof_contract.go +0 -46
  614. package/dist/templates/native-go/backend/internal/helper/background_proof_test.go +0 -161
  615. package/dist/templates/native-go/backend/internal/helper/cohort.go +0 -393
  616. package/dist/templates/native-go/backend/internal/helper/cohort_publication.go +0 -18
  617. package/dist/templates/native-go/backend/internal/helper/cohort_publication_test.go +0 -105
  618. package/dist/templates/native-go/backend/internal/helper/cohort_test.go +0 -372
  619. package/dist/templates/native-go/backend/internal/helper/control.go +0 -424
  620. package/dist/templates/native-go/backend/internal/helper/control_test.go +0 -250
  621. package/dist/templates/native-go/backend/internal/helper/data_contract.go +0 -245
  622. package/dist/templates/native-go/backend/internal/helper/data_contract_test.go +0 -51
  623. package/dist/templates/native-go/backend/internal/helper/data_decode.go +0 -184
  624. package/dist/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +0 -30
  625. package/dist/templates/native-go/backend/internal/helper/data_protocol.go +0 -419
  626. package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +0 -449
  627. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux.go +0 -139
  628. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +0 -121
  629. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +0 -95
  630. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +0 -56
  631. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +0 -144
  632. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +0 -89
  633. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux.go +0 -107
  634. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +0 -82
  635. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +0 -151
  636. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +0 -66
  637. package/dist/templates/native-go/backend/internal/helper/grant_authority.go +0 -519
  638. package/dist/templates/native-go/backend/internal/helper/grant_authority_contract.go +0 -88
  639. package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +0 -510
  640. package/dist/templates/native-go/backend/internal/helper/grant_cohort.go +0 -389
  641. package/dist/templates/native-go/backend/internal/helper/grant_cohort_test.go +0 -239
  642. package/dist/templates/native-go/backend/internal/helper/grant_delivery.go +0 -49
  643. package/dist/templates/native-go/backend/internal/helper/grant_delivery_methods.go +0 -273
  644. package/dist/templates/native-go/backend/internal/helper/grant_delivery_test.go +0 -322
  645. package/dist/templates/native-go/backend/internal/helper/grant_operation_contract.go +0 -47
  646. package/dist/templates/native-go/backend/internal/helper/grant_readonly_test.go +0 -180
  647. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +0 -416
  648. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +0 -469
  649. package/dist/templates/native-go/backend/internal/helper/grant_rpc.go +0 -147
  650. package/dist/templates/native-go/backend/internal/helper/grant_rpc_test.go +0 -51
  651. package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +0 -78
  652. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +0 -134
  653. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +0 -254
  654. package/dist/templates/native-go/backend/internal/helper/jobcontract/bindings.go +0 -48
  655. package/dist/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +0 -436
  656. package/dist/templates/native-go/backend/internal/helper/jobcontract/decode.go +0 -185
  657. package/dist/templates/native-go/backend/internal/helper/jobcontract/digest.go +0 -55
  658. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry.go +0 -85
  659. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +0 -73
  660. package/dist/templates/native-go/backend/internal/helper/jobcontract/result.go +0 -53
  661. package/dist/templates/native-go/backend/internal/helper/jobcontract/stub.go +0 -8
  662. package/dist/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +0 -127
  663. package/dist/templates/native-go/backend/internal/helper/jobcontract/types.go +0 -234
  664. package/dist/templates/native-go/backend/internal/helper/jobcontract/types_test.go +0 -29
  665. package/dist/templates/native-go/backend/internal/helper/jobcontract/validate.go +0 -462
  666. package/dist/templates/native-go/backend/internal/helper/lease.go +0 -112
  667. package/dist/templates/native-go/backend/internal/helper/lease_linux.go +0 -44
  668. package/dist/templates/native-go/backend/internal/helper/lease_other.go +0 -8
  669. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +0 -34
  670. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +0 -6
  671. package/dist/templates/native-go/backend/internal/helper/lifecycle.go +0 -234
  672. package/dist/templates/native-go/backend/internal/helper/lifecycle_test.go +0 -473
  673. package/dist/templates/native-go/backend/internal/helper/managed_pilot.go +0 -284
  674. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +0 -74
  675. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +0 -40
  676. package/dist/templates/native-go/backend/internal/helper/managed_pilot_test.go +0 -210
  677. package/dist/templates/native-go/backend/internal/helper/management.go +0 -86
  678. package/dist/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +0 -97
  679. package/dist/templates/native-go/backend/internal/helper/native_discovery.go +0 -79
  680. package/dist/templates/native-go/backend/internal/helper/native_identity.go +0 -89
  681. package/dist/templates/native-go/backend/internal/helper/native_provider.go +0 -159
  682. package/dist/templates/native-go/backend/internal/helper/native_provider_test.go +0 -421
  683. package/dist/templates/native-go/backend/internal/helper/observation.go +0 -244
  684. package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +0 -127
  685. package/dist/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +0 -117
  686. package/dist/templates/native-go/backend/internal/helper/observation_test.go +0 -196
  687. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +0 -155
  688. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +0 -76
  689. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +0 -130
  690. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +0 -98
  691. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +0 -40
  692. package/dist/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +0 -193
  693. package/dist/templates/native-go/backend/internal/helper/operation_credentials_linux.go +0 -56
  694. package/dist/templates/native-go/backend/internal/helper/operation_linux.go +0 -480
  695. package/dist/templates/native-go/backend/internal/helper/operation_linux_test.go +0 -528
  696. package/dist/templates/native-go/backend/internal/helper/peer_linux.go +0 -44
  697. package/dist/templates/native-go/backend/internal/helper/peer_other.go +0 -7
  698. package/dist/templates/native-go/backend/internal/helper/process_linux.go +0 -180
  699. package/dist/templates/native-go/backend/internal/helper/process_other.go +0 -5
  700. package/dist/templates/native-go/backend/internal/helper/publication_test.go +0 -178
  701. package/dist/templates/native-go/backend/internal/helper/purge.go +0 -115
  702. package/dist/templates/native-go/backend/internal/helper/purge_test.go +0 -59
  703. package/dist/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +0 -115
  704. package/dist/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +0 -254
  705. package/dist/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +0 -156
  706. package/dist/templates/native-go/backend/internal/helper/read_transfer.go +0 -40
  707. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux.go +0 -109
  708. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +0 -118
  709. package/dist/templates/native-go/backend/internal/helper/read_transfer_test.go +0 -177
  710. package/dist/templates/native-go/backend/internal/helper/readonly.go +0 -105
  711. package/dist/templates/native-go/backend/internal/helper/readonly_admission.go +0 -85
  712. package/dist/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +0 -253
  713. package/dist/templates/native-go/backend/internal/helper/readonly_linux_test.go +0 -378
  714. package/dist/templates/native-go/backend/internal/helper/readonly_mount_linux.go +0 -65
  715. package/dist/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +0 -113
  716. package/dist/templates/native-go/backend/internal/helper/readonly_operations_linux.go +0 -168
  717. package/dist/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +0 -241
  718. package/dist/templates/native-go/backend/internal/helper/readonly_test.go +0 -40
  719. package/dist/templates/native-go/backend/internal/helper/relaxed_identity.go +0 -252
  720. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +0 -105
  721. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_test.go +0 -406
  722. package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +0 -203
  723. package/dist/templates/native-go/backend/internal/helper/repair.go +0 -132
  724. package/dist/templates/native-go/backend/internal/helper/repair_test.go +0 -271
  725. package/dist/templates/native-go/backend/internal/helper/revoke.go +0 -109
  726. package/dist/templates/native-go/backend/internal/helper/revoke_test.go +0 -121
  727. package/dist/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +0 -303
  728. package/dist/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +0 -184
  729. package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +0 -250
  730. package/dist/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +0 -18
  731. package/dist/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +0 -51
  732. package/dist/templates/native-go/backend/internal/helper/sdk_attach.go +0 -83
  733. package/dist/templates/native-go/backend/internal/helper/sdk_attach_contract.go +0 -32
  734. package/dist/templates/native-go/backend/internal/helper/sdk_attach_test.go +0 -184
  735. package/dist/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +0 -6
  736. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority.go +0 -832
  737. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +0 -714
  738. package/dist/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +0 -218
  739. package/dist/templates/native-go/backend/internal/helper/sdk_background_lease.go +0 -218
  740. package/dist/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +0 -110
  741. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +0 -261
  742. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_test.go +0 -58
  743. package/dist/templates/native-go/backend/internal/helper/sdk_bindings.go +0 -60
  744. package/dist/templates/native-go/backend/internal/helper/sdk_data_contract.go +0 -251
  745. package/dist/templates/native-go/backend/internal/helper/sdk_data_protocol.go +0 -424
  746. package/dist/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +0 -51
  747. package/dist/templates/native-go/backend/internal/helper/sdk_display.go +0 -488
  748. package/dist/templates/native-go/backend/internal/helper/sdk_display_contract.go +0 -121
  749. package/dist/templates/native-go/backend/internal/helper/sdk_display_test.go +0 -459
  750. package/dist/templates/native-go/backend/internal/helper/sdk_grant_authority.go +0 -559
  751. package/dist/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +0 -417
  752. package/dist/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +0 -94
  753. package/dist/templates/native-go/backend/internal/helper/sdk_history.go +0 -80
  754. package/dist/templates/native-go/backend/internal/helper/sdk_history_test.go +0 -76
  755. package/dist/templates/native-go/backend/internal/helper/sdk_job.go +0 -697
  756. package/dist/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +0 -309
  757. package/dist/templates/native-go/backend/internal/helper/sdk_job_contract.go +0 -122
  758. package/dist/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +0 -159
  759. package/dist/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +0 -327
  760. package/dist/templates/native-go/backend/internal/helper/sdk_job_test.go +0 -501
  761. package/dist/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +0 -343
  762. package/dist/templates/native-go/backend/internal/helper/sdk_journal.go +0 -77
  763. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux.go +0 -244
  764. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +0 -295
  765. package/dist/templates/native-go/backend/internal/helper/sdk_journal_test.go +0 -71
  766. package/dist/templates/native-go/backend/internal/helper/sdk_picker_test.go +0 -50
  767. package/dist/templates/native-go/backend/internal/helper/sdk_process_linux.go +0 -184
  768. package/dist/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +0 -129
  769. package/dist/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +0 -242
  770. package/dist/templates/native-go/backend/internal/helper/sdk_rpc.go +0 -299
  771. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +0 -70
  772. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_test.go +0 -135
  773. package/dist/templates/native-go/backend/internal/helper/sdk_server_linux.go +0 -161
  774. package/dist/templates/native-go/backend/internal/helper/sdk_session.go +0 -677
  775. package/dist/templates/native-go/backend/internal/helper/sdk_session_contract.go +0 -72
  776. package/dist/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +0 -215
  777. package/dist/templates/native-go/backend/internal/helper/sdk_session_test.go +0 -475
  778. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +0 -78
  779. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +0 -414
  780. package/dist/templates/native-go/backend/internal/helper/sdk_transport.go +0 -79
  781. package/dist/templates/native-go/backend/internal/helper/sdk_transport_linux.go +0 -82
  782. package/dist/templates/native-go/backend/internal/helper/sdk_transport_test.go +0 -64
  783. package/dist/templates/native-go/backend/internal/helper/server_linux.go +0 -136
  784. package/dist/templates/native-go/backend/internal/helper/stale_management_linux_test.go +0 -126
  785. package/dist/templates/native-go/backend/internal/helper/stale_management_test.go +0 -122
  786. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic.go +0 -68
  787. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +0 -126
  788. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +0 -117
  789. package/dist/templates/native-go/backend/internal/helper/status.go +0 -343
  790. package/dist/templates/native-go/backend/internal/helper/status_test.go +0 -333
  791. package/dist/templates/native-go/backend/internal/helper/supervision.go +0 -107
  792. package/dist/templates/native-go/backend/internal/helper/supervision_test.go +0 -124
  793. package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +0 -79
  794. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +0 -69
  795. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_test.go +0 -107
  796. package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +0 -367
  797. package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +0 -913
  798. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +0 -74
  799. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_test.go +0 -45
  800. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +0 -23
  801. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +0 -67
  802. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +0 -52
  803. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +0 -20
  804. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +0 -20
  805. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +0 -20
  806. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +0 -22
  807. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +0 -22
  808. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +0 -22
  809. package/dist/templates/native-go/backend/internal/helper/unit_connection.go +0 -75
  810. package/dist/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +0 -135
  811. package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +0 -151
  812. package/dist/templates/native-go/backend/internal/helper/unit_frame_test.go +0 -32
  813. package/dist/templates/native-go/backend/internal/helper/unit_linux.go +0 -368
  814. package/dist/templates/native-go/backend/internal/helper/unit_linux_test.go +0 -46
  815. package/dist/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +0 -217
  816. package/dist/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +0 -178
  817. package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +0 -115
  818. package/dist/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +0 -372
  819. package/dist/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +0 -232
  820. package/dist/templates/native-go/backend/internal/helper/write.go +0 -77
  821. package/dist/templates/native-go/backend/internal/helper/write_admission.go +0 -260
  822. package/dist/templates/native-go/backend/internal/helper/write_admission_test.go +0 -135
  823. package/dist/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +0 -218
  824. package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +0 -205
  825. package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +0 -225
  826. package/dist/templates/native-go/backend/internal/helper/write_intent_linux.go +0 -116
  827. package/dist/templates/native-go/backend/internal/helper/write_intent_linux_test.go +0 -74
  828. package/dist/templates/native-go/backend/internal/helper/write_operation_linux.go +0 -245
  829. package/dist/templates/native-go/backend/internal/helper/write_test.go +0 -53
  830. package/dist/templates/native-go-authorization/backend/internal/app/authorization.go +0 -298
  831. package/dist/templates/native-go-authorization/backend/internal/app/authorization_test.go +0 -96
  832. package/dist/templates/native-go-authorization/frontend/src/authorization/AuthorizationGate.vue +0 -89
  833. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/de.json +0 -36
  834. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/en.json +0 -36
  835. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/es.json +0 -36
  836. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/fr.json +0 -36
  837. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/index.ts +0 -15
  838. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/it.json +0 -36
  839. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/ja.json +0 -36
  840. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/ko.json +0 -36
  841. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/zh-CN.json +0 -36
  842. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/zh-TW.json +0 -36
  843. package/dist/templates/native-go-authorization/frontend/test/authorization-preview.html +0 -14
  844. package/dist/templates/native-go-authorization/frontend/test/authorization.test.ts +0 -59
  845. package/dist/templates/native-go-background/BACKGROUND.md +0 -111
  846. package/dist/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  847. package/dist/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  848. package/dist/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  849. package/dist/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  850. package/dist/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  851. package/dist/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  852. package/dist/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  853. package/dist/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  854. package/dist/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  855. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  856. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  857. package/dist/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  858. package/dist/templates/native-go-background/frontend/test/background.test.ts +0 -179
  859. package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  860. package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  861. package/dist/templates/native-go-better-auth/node/app.mjs +0 -72
  862. package/dist/templates/native-go-better-auth/node/build.mjs +0 -4
  863. package/dist/templates/native-go-better-auth/node/package-lock.json +0 -862
  864. package/dist/templates/native-go-better-auth/node/package.json +0 -1
  865. package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  866. package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  867. package/dist/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  868. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  869. package/dist/templates/native-go-root/backend/internal/app/root.go +0 -107
  870. package/dist/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  871. package/dist/templates/native-go-root/root/whoami.sh +0 -6
  872. package/dist/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  873. package/dist/templates/native-go-vue/frontend/README-M2.md +0 -64
  874. package/dist/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  875. package/dist/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  876. package/dist/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  877. package/dist/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  878. package/dist/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  879. package/dist/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  880. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  881. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  882. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  883. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  884. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  885. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  886. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  887. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  888. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  889. package/dist/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  890. package/dist/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  891. package/dist/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  892. package/dist/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  893. package/dist/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  894. package/dist/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  895. package/dist/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  896. package/dist/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  897. package/dist/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  898. package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  899. package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  900. package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  901. package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  902. package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  903. package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  904. package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  905. package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  906. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  907. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  908. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  909. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  910. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  911. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  912. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  913. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  914. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  915. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  916. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  917. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  918. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  919. package/dist/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  920. package/dist/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  921. package/dist/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  922. package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  923. package/dist/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  924. package/dist/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  925. package/dist/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  926. package/dist/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  927. package/dist/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  928. package/dist/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  929. package/dist/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  930. package/dist/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  931. package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  932. package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  933. package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  934. package/dist/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  935. package/dist/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  936. package/dist/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  937. package/templates/_authorization/main.go +0 -104
  938. package/templates/_authorization/main_test.go +0 -35
  939. package/templates/_shared/notice-overrides/index.json +0 -14
  940. package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +0 -21
  941. package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +0 -21
  942. package/templates/binary/native.yaml +0 -16
  943. package/templates/binary/synology-app.yaml +0 -7
  944. package/templates/compose-import/compose.yaml +0 -10
  945. package/templates/compose-import/synology-app.yaml +0 -15
  946. package/templates/native-go/backend/cmd/app/sdk_main.go +0 -62
  947. package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +0 -46
  948. package/templates/native-go/backend/cmd/helper/main.go +0 -64
  949. package/templates/native-go/backend/cmd/helper/sdk_registry.go +0 -19
  950. package/templates/native-go/backend/internal/api/binary.go +0 -154
  951. package/templates/native-go/backend/internal/api/binary_test.go +0 -165
  952. package/templates/native-go/backend/internal/app/authorization_none.go +0 -5
  953. package/templates/native-go/backend/internal/app/integration_state.go +0 -16
  954. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +0 -129
  955. package/templates/native-go/backend/internal/app/nas_refusal_test.go +0 -46
  956. package/templates/native-go/backend/internal/app/sdk_jobs.go +0 -70
  957. package/templates/native-go/backend/internal/app/sdk_jobs_test.go +0 -116
  958. package/templates/native-go/backend/internal/app/sdk_routes.go +0 -177
  959. package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +0 -335
  960. package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +0 -41
  961. package/templates/native-go/backend/internal/dsmprobe/protocol.go +0 -179
  962. package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +0 -29
  963. package/templates/native-go/backend/internal/filestation/repository.go +0 -207
  964. package/templates/native-go/backend/internal/filestation/repository_test.go +0 -104
  965. package/templates/native-go/backend/internal/filestation/sdk_session.go +0 -241
  966. package/templates/native-go/backend/internal/filestation/sdk_session_test.go +0 -183
  967. package/templates/native-go/backend/internal/filestation/session_semantics_test.go +0 -383
  968. package/templates/native-go/backend/internal/helper/background_proof.go +0 -163
  969. package/templates/native-go/backend/internal/helper/background_proof_contract.go +0 -46
  970. package/templates/native-go/backend/internal/helper/background_proof_test.go +0 -161
  971. package/templates/native-go/backend/internal/helper/cohort.go +0 -393
  972. package/templates/native-go/backend/internal/helper/cohort_publication.go +0 -18
  973. package/templates/native-go/backend/internal/helper/cohort_publication_test.go +0 -105
  974. package/templates/native-go/backend/internal/helper/cohort_test.go +0 -372
  975. package/templates/native-go/backend/internal/helper/control.go +0 -424
  976. package/templates/native-go/backend/internal/helper/control_test.go +0 -250
  977. package/templates/native-go/backend/internal/helper/data_contract.go +0 -245
  978. package/templates/native-go/backend/internal/helper/data_contract_test.go +0 -51
  979. package/templates/native-go/backend/internal/helper/data_decode.go +0 -184
  980. package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +0 -30
  981. package/templates/native-go/backend/internal/helper/data_protocol.go +0 -419
  982. package/templates/native-go/backend/internal/helper/data_protocol_test.go +0 -449
  983. package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +0 -139
  984. package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +0 -121
  985. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +0 -95
  986. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +0 -56
  987. package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +0 -144
  988. package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +0 -89
  989. package/templates/native-go/backend/internal/helper/dsm_home_linux.go +0 -107
  990. package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +0 -82
  991. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +0 -151
  992. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +0 -66
  993. package/templates/native-go/backend/internal/helper/grant_authority.go +0 -519
  994. package/templates/native-go/backend/internal/helper/grant_authority_contract.go +0 -88
  995. package/templates/native-go/backend/internal/helper/grant_authority_test.go +0 -510
  996. package/templates/native-go/backend/internal/helper/grant_cohort.go +0 -389
  997. package/templates/native-go/backend/internal/helper/grant_cohort_test.go +0 -239
  998. package/templates/native-go/backend/internal/helper/grant_delivery.go +0 -49
  999. package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +0 -273
  1000. package/templates/native-go/backend/internal/helper/grant_delivery_test.go +0 -322
  1001. package/templates/native-go/backend/internal/helper/grant_operation_contract.go +0 -47
  1002. package/templates/native-go/backend/internal/helper/grant_readonly_test.go +0 -180
  1003. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +0 -416
  1004. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +0 -469
  1005. package/templates/native-go/backend/internal/helper/grant_rpc.go +0 -147
  1006. package/templates/native-go/backend/internal/helper/grant_rpc_test.go +0 -51
  1007. package/templates/native-go/backend/internal/helper/grant_snapshot.go +0 -78
  1008. package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +0 -134
  1009. package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +0 -254
  1010. package/templates/native-go/backend/internal/helper/jobcontract/bindings.go +0 -48
  1011. package/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +0 -436
  1012. package/templates/native-go/backend/internal/helper/jobcontract/decode.go +0 -185
  1013. package/templates/native-go/backend/internal/helper/jobcontract/digest.go +0 -55
  1014. package/templates/native-go/backend/internal/helper/jobcontract/registry.go +0 -85
  1015. package/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +0 -73
  1016. package/templates/native-go/backend/internal/helper/jobcontract/result.go +0 -53
  1017. package/templates/native-go/backend/internal/helper/jobcontract/stub.go +0 -8
  1018. package/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +0 -127
  1019. package/templates/native-go/backend/internal/helper/jobcontract/types.go +0 -234
  1020. package/templates/native-go/backend/internal/helper/jobcontract/types_test.go +0 -29
  1021. package/templates/native-go/backend/internal/helper/jobcontract/validate.go +0 -462
  1022. package/templates/native-go/backend/internal/helper/lease.go +0 -112
  1023. package/templates/native-go/backend/internal/helper/lease_linux.go +0 -44
  1024. package/templates/native-go/backend/internal/helper/lease_other.go +0 -8
  1025. package/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +0 -34
  1026. package/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +0 -6
  1027. package/templates/native-go/backend/internal/helper/lifecycle.go +0 -234
  1028. package/templates/native-go/backend/internal/helper/lifecycle_test.go +0 -473
  1029. package/templates/native-go/backend/internal/helper/managed_pilot.go +0 -284
  1030. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +0 -74
  1031. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +0 -40
  1032. package/templates/native-go/backend/internal/helper/managed_pilot_test.go +0 -210
  1033. package/templates/native-go/backend/internal/helper/management.go +0 -86
  1034. package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +0 -97
  1035. package/templates/native-go/backend/internal/helper/native_discovery.go +0 -79
  1036. package/templates/native-go/backend/internal/helper/native_identity.go +0 -89
  1037. package/templates/native-go/backend/internal/helper/native_provider.go +0 -159
  1038. package/templates/native-go/backend/internal/helper/native_provider_test.go +0 -421
  1039. package/templates/native-go/backend/internal/helper/observation.go +0 -244
  1040. package/templates/native-go/backend/internal/helper/observation_health_test.go +0 -127
  1041. package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +0 -117
  1042. package/templates/native-go/backend/internal/helper/observation_test.go +0 -196
  1043. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +0 -155
  1044. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +0 -76
  1045. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +0 -130
  1046. package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +0 -98
  1047. package/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +0 -40
  1048. package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +0 -193
  1049. package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +0 -56
  1050. package/templates/native-go/backend/internal/helper/operation_linux.go +0 -480
  1051. package/templates/native-go/backend/internal/helper/operation_linux_test.go +0 -528
  1052. package/templates/native-go/backend/internal/helper/peer_linux.go +0 -44
  1053. package/templates/native-go/backend/internal/helper/peer_other.go +0 -7
  1054. package/templates/native-go/backend/internal/helper/process_linux.go +0 -180
  1055. package/templates/native-go/backend/internal/helper/process_other.go +0 -5
  1056. package/templates/native-go/backend/internal/helper/publication_test.go +0 -178
  1057. package/templates/native-go/backend/internal/helper/purge.go +0 -115
  1058. package/templates/native-go/backend/internal/helper/purge_test.go +0 -59
  1059. package/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +0 -115
  1060. package/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +0 -254
  1061. package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +0 -156
  1062. package/templates/native-go/backend/internal/helper/read_transfer.go +0 -40
  1063. package/templates/native-go/backend/internal/helper/read_transfer_linux.go +0 -109
  1064. package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +0 -118
  1065. package/templates/native-go/backend/internal/helper/read_transfer_test.go +0 -177
  1066. package/templates/native-go/backend/internal/helper/readonly.go +0 -105
  1067. package/templates/native-go/backend/internal/helper/readonly_admission.go +0 -85
  1068. package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +0 -253
  1069. package/templates/native-go/backend/internal/helper/readonly_linux_test.go +0 -378
  1070. package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +0 -65
  1071. package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +0 -113
  1072. package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +0 -168
  1073. package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +0 -241
  1074. package/templates/native-go/backend/internal/helper/readonly_test.go +0 -40
  1075. package/templates/native-go/backend/internal/helper/relaxed_identity.go +0 -252
  1076. package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +0 -105
  1077. package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +0 -406
  1078. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +0 -203
  1079. package/templates/native-go/backend/internal/helper/repair.go +0 -132
  1080. package/templates/native-go/backend/internal/helper/repair_test.go +0 -271
  1081. package/templates/native-go/backend/internal/helper/revoke.go +0 -109
  1082. package/templates/native-go/backend/internal/helper/revoke_test.go +0 -121
  1083. package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +0 -303
  1084. package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +0 -184
  1085. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +0 -250
  1086. package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +0 -18
  1087. package/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +0 -51
  1088. package/templates/native-go/backend/internal/helper/sdk_attach.go +0 -83
  1089. package/templates/native-go/backend/internal/helper/sdk_attach_contract.go +0 -32
  1090. package/templates/native-go/backend/internal/helper/sdk_attach_test.go +0 -184
  1091. package/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +0 -6
  1092. package/templates/native-go/backend/internal/helper/sdk_background_authority.go +0 -832
  1093. package/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +0 -714
  1094. package/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +0 -218
  1095. package/templates/native-go/backend/internal/helper/sdk_background_lease.go +0 -218
  1096. package/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +0 -110
  1097. package/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +0 -261
  1098. package/templates/native-go/backend/internal/helper/sdk_background_store_test.go +0 -58
  1099. package/templates/native-go/backend/internal/helper/sdk_bindings.go +0 -60
  1100. package/templates/native-go/backend/internal/helper/sdk_data_contract.go +0 -251
  1101. package/templates/native-go/backend/internal/helper/sdk_data_protocol.go +0 -424
  1102. package/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +0 -51
  1103. package/templates/native-go/backend/internal/helper/sdk_display.go +0 -488
  1104. package/templates/native-go/backend/internal/helper/sdk_display_contract.go +0 -121
  1105. package/templates/native-go/backend/internal/helper/sdk_display_test.go +0 -459
  1106. package/templates/native-go/backend/internal/helper/sdk_grant_authority.go +0 -559
  1107. package/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +0 -417
  1108. package/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +0 -94
  1109. package/templates/native-go/backend/internal/helper/sdk_history.go +0 -80
  1110. package/templates/native-go/backend/internal/helper/sdk_history_test.go +0 -76
  1111. package/templates/native-go/backend/internal/helper/sdk_job.go +0 -697
  1112. package/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +0 -309
  1113. package/templates/native-go/backend/internal/helper/sdk_job_contract.go +0 -122
  1114. package/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +0 -159
  1115. package/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +0 -327
  1116. package/templates/native-go/backend/internal/helper/sdk_job_test.go +0 -501
  1117. package/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +0 -343
  1118. package/templates/native-go/backend/internal/helper/sdk_journal.go +0 -77
  1119. package/templates/native-go/backend/internal/helper/sdk_journal_linux.go +0 -244
  1120. package/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +0 -295
  1121. package/templates/native-go/backend/internal/helper/sdk_journal_test.go +0 -71
  1122. package/templates/native-go/backend/internal/helper/sdk_picker_test.go +0 -50
  1123. package/templates/native-go/backend/internal/helper/sdk_process_linux.go +0 -184
  1124. package/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +0 -129
  1125. package/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +0 -242
  1126. package/templates/native-go/backend/internal/helper/sdk_rpc.go +0 -299
  1127. package/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +0 -70
  1128. package/templates/native-go/backend/internal/helper/sdk_rpc_test.go +0 -135
  1129. package/templates/native-go/backend/internal/helper/sdk_server_linux.go +0 -161
  1130. package/templates/native-go/backend/internal/helper/sdk_session.go +0 -677
  1131. package/templates/native-go/backend/internal/helper/sdk_session_contract.go +0 -72
  1132. package/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +0 -215
  1133. package/templates/native-go/backend/internal/helper/sdk_session_test.go +0 -475
  1134. package/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +0 -78
  1135. package/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +0 -414
  1136. package/templates/native-go/backend/internal/helper/sdk_transport.go +0 -79
  1137. package/templates/native-go/backend/internal/helper/sdk_transport_linux.go +0 -82
  1138. package/templates/native-go/backend/internal/helper/sdk_transport_test.go +0 -64
  1139. package/templates/native-go/backend/internal/helper/server_linux.go +0 -136
  1140. package/templates/native-go/backend/internal/helper/stale_management_linux_test.go +0 -126
  1141. package/templates/native-go/backend/internal/helper/stale_management_test.go +0 -122
  1142. package/templates/native-go/backend/internal/helper/startup_diagnostic.go +0 -68
  1143. package/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +0 -126
  1144. package/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +0 -117
  1145. package/templates/native-go/backend/internal/helper/status.go +0 -343
  1146. package/templates/native-go/backend/internal/helper/status_test.go +0 -333
  1147. package/templates/native-go/backend/internal/helper/supervision.go +0 -107
  1148. package/templates/native-go/backend/internal/helper/supervision_test.go +0 -124
  1149. package/templates/native-go/backend/internal/helper/supervisor_frame.go +0 -79
  1150. package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +0 -69
  1151. package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +0 -107
  1152. package/templates/native-go/backend/internal/helper/supervisor_linux.go +0 -367
  1153. package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +0 -913
  1154. package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +0 -74
  1155. package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +0 -45
  1156. package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +0 -23
  1157. package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +0 -67
  1158. package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +0 -52
  1159. package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +0 -20
  1160. package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +0 -20
  1161. package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +0 -20
  1162. package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +0 -22
  1163. package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +0 -22
  1164. package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +0 -22
  1165. package/templates/native-go/backend/internal/helper/unit_connection.go +0 -75
  1166. package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +0 -135
  1167. package/templates/native-go/backend/internal/helper/unit_connection_test.go +0 -151
  1168. package/templates/native-go/backend/internal/helper/unit_frame_test.go +0 -32
  1169. package/templates/native-go/backend/internal/helper/unit_linux.go +0 -368
  1170. package/templates/native-go/backend/internal/helper/unit_linux_test.go +0 -46
  1171. package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +0 -217
  1172. package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +0 -178
  1173. package/templates/native-go/backend/internal/helper/unit_query_linux.go +0 -115
  1174. package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +0 -372
  1175. package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +0 -232
  1176. package/templates/native-go/backend/internal/helper/write.go +0 -77
  1177. package/templates/native-go/backend/internal/helper/write_admission.go +0 -260
  1178. package/templates/native-go/backend/internal/helper/write_admission_test.go +0 -135
  1179. package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +0 -218
  1180. package/templates/native-go/backend/internal/helper/write_files_linux.go +0 -205
  1181. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +0 -225
  1182. package/templates/native-go/backend/internal/helper/write_intent_linux.go +0 -116
  1183. package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +0 -74
  1184. package/templates/native-go/backend/internal/helper/write_operation_linux.go +0 -245
  1185. package/templates/native-go/backend/internal/helper/write_test.go +0 -53
  1186. package/templates/native-go-authorization/backend/internal/app/authorization.go +0 -298
  1187. package/templates/native-go-authorization/backend/internal/app/authorization_test.go +0 -96
  1188. package/templates/native-go-authorization/frontend/src/authorization/AuthorizationGate.vue +0 -89
  1189. package/templates/native-go-authorization/frontend/src/authorization/i18n/de.json +0 -36
  1190. package/templates/native-go-authorization/frontend/src/authorization/i18n/en.json +0 -36
  1191. package/templates/native-go-authorization/frontend/src/authorization/i18n/es.json +0 -36
  1192. package/templates/native-go-authorization/frontend/src/authorization/i18n/fr.json +0 -36
  1193. package/templates/native-go-authorization/frontend/src/authorization/i18n/index.ts +0 -15
  1194. package/templates/native-go-authorization/frontend/src/authorization/i18n/it.json +0 -36
  1195. package/templates/native-go-authorization/frontend/src/authorization/i18n/ja.json +0 -36
  1196. package/templates/native-go-authorization/frontend/src/authorization/i18n/ko.json +0 -36
  1197. package/templates/native-go-authorization/frontend/src/authorization/i18n/zh-CN.json +0 -36
  1198. package/templates/native-go-authorization/frontend/src/authorization/i18n/zh-TW.json +0 -36
  1199. package/templates/native-go-authorization/frontend/test/authorization-preview.html +0 -14
  1200. package/templates/native-go-authorization/frontend/test/authorization.test.ts +0 -59
  1201. package/templates/native-go-background/BACKGROUND.md +0 -111
  1202. package/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  1203. package/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  1204. package/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  1205. package/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  1206. package/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  1207. package/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  1208. package/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  1209. package/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  1210. package/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  1211. package/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  1212. package/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  1213. package/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  1214. package/templates/native-go-background/frontend/test/background.test.ts +0 -179
  1215. package/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  1216. package/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  1217. package/templates/native-go-better-auth/node/app.mjs +0 -72
  1218. package/templates/native-go-better-auth/node/build.mjs +0 -4
  1219. package/templates/native-go-better-auth/node/package-lock.json +0 -862
  1220. package/templates/native-go-better-auth/node/package.json +0 -1
  1221. package/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  1222. package/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  1223. package/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  1224. package/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  1225. package/templates/native-go-root/backend/internal/app/root.go +0 -107
  1226. package/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  1227. package/templates/native-go-root/root/whoami.sh +0 -6
  1228. package/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  1229. package/templates/native-go-vue/frontend/README-M2.md +0 -64
  1230. package/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  1231. package/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  1232. package/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  1233. package/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  1234. package/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  1235. package/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  1236. package/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  1237. package/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  1238. package/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  1239. package/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  1240. package/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  1241. package/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  1242. package/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  1243. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  1244. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  1245. package/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  1246. package/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  1247. package/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  1248. package/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  1249. package/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  1250. package/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  1251. package/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  1252. package/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  1253. package/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  1254. package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  1255. package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  1256. package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  1257. package/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  1258. package/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  1259. package/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  1260. package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  1261. package/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  1262. package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  1263. package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  1264. package/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  1265. package/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  1266. package/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  1267. package/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  1268. package/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  1269. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  1270. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  1271. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  1272. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  1273. package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  1274. package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  1275. package/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  1276. package/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  1277. package/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  1278. package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  1279. package/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  1280. package/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  1281. package/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  1282. package/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  1283. package/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  1284. package/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  1285. package/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  1286. package/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  1287. package/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  1288. package/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  1289. package/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  1290. package/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  1291. package/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  1292. package/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  1293. /package/dist/templates/{hello-files → compose}/compose.yaml +0 -0
  1294. /package/dist/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1295. /package/dist/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1296. /package/dist/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
  1297. /package/templates/{hello-files → compose}/compose.yaml +0 -0
  1298. /package/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1299. /package/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1300. /package/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
@@ -1,75 +0,0 @@
1
- # Interactive NAS picker → job (experimental)
2
-
3
- Use the existing `native-go --ui vue --integration go` project, then opt in to
4
- protocol 2, relaxed File Station session access and a fixed SDK read worker:
5
-
6
- ```yaml
7
- integration:
8
- protocol: 2
9
- dataAccess: relaxed
10
- workers: {}
11
- sdkWorkers:
12
- scan:
13
- kind: sdk-read-plan
14
- workerRevision: 1
15
- actions: [nas.files.list, nas.files.stat, nas.files.read]
16
- modes: [interactive]
17
- ```
18
-
19
- Install frontend dependencies and run `synopkgland build-spk` as usual. The
20
- builder sets `SYNOPKGLAND_SDK_WORKERS=1` from the manifest and chooses
21
- `src/sdk-main.ts`. Leave `SYNOPKGLAND_M2_SIMPLE` unset: that flag deliberately
22
- selects the separate session-only file-operation entry without job controls.
23
- For a standalone frontend check use `SYNOPKGLAND_SDK_WORKERS=1 npm run build`.
24
-
25
- An administrator uses the existing exact-payload approval and activation flow.
26
- The session SDK surface hides the native personal-note sample, whose routes
27
- are absent from this protocol-2 build.
28
- Each user opens the package in their own DSM session. The jobs panel enables
29
- the source picker only after a fresh `jobs.status` reports session availability.
30
- Choose a file or folder, confirm selection, select the worker and operation,
31
- set its bound where required, then submit once. Progress refreshes every 2.5 s
32
- while this page contains active jobs; errors stop polling and require Refresh.
33
- Cancel uses the existing owner/revision checks. Closing the window requests
34
- cancellation and stops renewal. Observer revalidation pauses submission;
35
- fenced jobs stay canceled and require an explicit fresh submission after
36
- recovery. Nothing resumes or retries automatically.
37
-
38
- `jobs.status.workers` projects only interactive workers with session-supported
39
- list/stat/read actions, exact registry revision and the smaller of the worker's
40
- bounded/total byte limits and 512 KiB. It contains no compiled bindings or
41
- credentials. This is display metadata: prepare still verifies the registry,
42
- selection, session and current permissions. Missing metadata in an older owner
43
- leaves the form disabled. The form submits one step; list is 1–100 entries,
44
- read is 1–the projected byte limit, and stat has no byte/entry argument.
45
- This read-only worker requires no destination and discards content, returning
46
- only counters. Background jobs remain unsupported even if the manifest lists
47
- background mode. Writes and custom executables are not part of this form.
48
-
49
- `M2PathPicker` extends the existing Dialog/TreeView/DataGrid composition with
50
- `select-files` and `read-only` props and a `source` event (`M2JobSource`). Folder
51
- picks return an empty segment list. File picks call the existing
52
- `nas.grants.confirm` for the containing folder with `writable:false`, then use
53
- one relative filename in `jobs.prepare.input`. The `folder` grant therefore
54
- records consent for that containing folder, not a file-only authority. Existing
55
- folder-only consumers and their `selected` event are unchanged. These selections
56
- remain path based; they do not pin inodes or confine symlink/rename races.
57
-
58
- The SDK mount provides both `M2ProviderKey` and `JobsProviderKey` per window.
59
- `JobsProvider.interactive` exposes `workers`, `prepareInteractive` and
60
- `submitInteractive`; applications can reuse this interface with their own form.
61
- Transport stays in the existing `ctx.call`, which carries the current DSM
62
- session and CSRF token. Never put credentials in form fields, persistent
63
- storage, logs or an administrator-session fallback.
64
-
65
- A missing submit reply freezes the form with its original intent. **Check
66
- original job** calls `jobs.lookup`; it never submits or acquires a replacement
67
- lease. If the job is found, status shows its actual outcome. Without the lost
68
- attach receipt it may expire after 6 s. Unmount or an account/package change
69
- clears selection and pending input, disconnects the provider, and discards late
70
- responses. Refreshing cannot certify remote rollback or completed cleanup.
71
- The attach contract remains 2 s renewal / 6 s TTL.
72
-
73
- Nine catalogs cover en, zh-TW, zh-CN, ja, ko, de, fr, es and it via `ctx.locale`.
74
- Unit and browser fixtures are synthetic; DSM compatibility must be established
75
- on the final generated SPK with each user's session and File Station permissions.
@@ -1,64 +0,0 @@
1
- # Interactive File Station UI (experimental)
2
-
3
- This optional entry uses the package CGI's `ctx.call` transport and the current
4
- user's DSM session. It does not borrow an administrator session, request root
5
- helper approval, cache DSM credentials or install a mock provider.
6
-
7
- The existing `main.ts` and SDK worker entry remain the default. To select this
8
- session-only UI in a generated `native-go --ui vue` project:
9
-
10
- 1. Enable `integration: {protocol: 2, workers: {}}` in `dsm-package.yaml`.
11
- 2. Set `SYNOPKGLAND_M2_SIMPLE=1` in `frontend/.env.production.local`.
12
- 3. Run the existing `synopkgland build-spk` workflow and inspect the final SPK.
13
-
14
- You can also build the frontend with `SYNOPKGLAND_M2_SIMPLE=1 npm run build`.
15
- The flag selects `src/m2-main.ts` before the existing SDK-workers entry; it
16
- selects a session-only surface, without background job or root-maintenance UI.
17
- It does not change backend permissions. Protocol 1 / no integration lacks the
18
- required routes and the UI shows that the adapter is unavailable. Without this
19
- flag, generated artifacts retain their previous bytes.
20
-
21
- ## SDK display contract
22
-
23
- `src/nas/m2-contract.ts` exports `M2Provider`, `M2Selection`, `M2Entry`,
24
- `M2Page`, `M2Session`, safe codes and the 512 KiB / 100-entry bounds.
25
- `createM2Provider(ctx)` implements status, discovery, confirmation, saved
26
- selection listing/revocation, relative list/stat/read, mkdir and upload.
27
- Pass an AbortSignal per operation and call `dispose()` on unmount. Each mount
28
- owns its provider and clears its UI after account/package change or pagehide.
29
-
30
- `M2Selection.writable` records consent to attempt writes; it is not a File
31
- Station permission probe. The backend validates the actual session and current
32
- File Station permissions on every operation. A selection is an opaque handle
33
- with a display path, not the native helper's prepare/digest/revision grant.
34
- User/UID fields in backend records are stripped from the frontend projection.
35
- Selections use relaxed username/UID identity: recreating both may preserve a
36
- selection. Paths do not pin inodes or provide symlink/rename confinement.
37
-
38
- Discovery supports files in returned pages but shows only folders in the
39
- picker. Pagination advances by the full server page, not the filtered count;
40
- rendering is bounded to the latest 200 entries. Writes require explicit
41
- writable consent. Upload creates a new file and does not overwrite. Read and
42
- upload are limited to 512 KiB; read bytes become a local binary download, never
43
- HTML or an inline preview.
44
-
45
- Requests are observed for at most 22 seconds (backend handler: 20 seconds).
46
- The existing `ctx.call` does not expose transport abort: closing or canceling
47
- suppresses late display updates but does not establish server rollback or Q.
48
- No operation is retried automatically. A lost mutation response reports
49
- `commit-uncertain`; inspect saved selections or the destination before
50
- resubmitting. Session expiry requires signing into DSM again and refreshing.
51
- Background/offline work, streaming and atomic publish remain unsupported.
52
-
53
- ## Local checks
54
-
55
- Copy `../../_shared/third-party-notices.mjs` into this folder before `npm ci`,
56
- `npm test`, `npx vue-tsc --noEmit` and `npm run build`. Also build with the M2
57
- flag. Remove the copied notice tool, `node_modules` and `dist` before root
58
- repository tests or generating fixtures: the generator copies template files.
59
-
60
- `test/m2-preview.html` serves synthetic `ctx.call` responses for local browser
61
- QA. It does not access a NAS and is not the production provider's backend.
62
- Local unit/jsdom/Chromium tests do not establish DSM compatibility. Actual DSM
63
- session, File Station ACL, multipart upload and download validation belongs to
64
- the backend/device-validation thread. No public support claim is made here.
@@ -1,57 +0,0 @@
1
- <script setup lang="ts">
2
- import {computed,inject,onMounted,onUnmounted,ref} from 'vue'
3
- import {AppRoot,ConfigProvider,Button,Callout,SettingsSection} from '@synopackageland/ui'
4
- import type {AppStatus,Context} from './context'
5
- import {M2ProviderKey} from './nas/m2-contract'
6
- import {m2Copy,m2ErrorCopy,uiLocale} from './nas/m2-i18n'
7
- import {useM2Request} from './nas/use-m2-request'
8
- import M2Settings from './nas/M2Settings.vue'
9
- import AppShell from './shell/AppShell.vue'
10
- import {shellPages,type ShellPage} from './shell/pages'
11
- const props=defineProps<{ctx:Context}>(),copy=computed(()=>m2Copy(props.ctx.locale)),provider=inject(M2ProviderKey)!
12
- const request=useM2Request(),{busy,error}=request
13
- const app=ref<AppStatus>(),invalid=ref(false),view=ref(0),nestedBusy=ref(false)
14
- const page=ref<ShellPage>('status')
15
- // The simple session build only has the File Station folder screen.
16
- const pages=computed(()=>shellPages({folders:true}))
17
- const subtitle=computed(()=>app.value?`${app.value.package} · ${app.value.version} · ${app.value.user}`:undefined)
18
- let bound:{user:string;package:string}|undefined
19
- let removeReopen:()=>void=()=>{}
20
- async function refresh(){
21
- if(invalid.value)return
22
- const value=await request.run(()=>props.ctx.call<AppStatus>('app.status'))
23
- if(value){
24
- if(typeof value.user!=='string'||!value.user||typeof value.package!=='string'||!value.package){error.value={code:'unavailable'};return}
25
- if(bound&&(bound.user!==value.user||bound.package!==value.package)){invalidate();return}
26
- bound??={user:value.user,package:value.package};app.value=value;view.value++
27
- }else{app.value=undefined}
28
- }
29
- function invalidate(){invalid.value=true;app.value=undefined;request.cancel();provider.dispose()}
30
- onMounted(()=>{removeReopen=props.ctx.reopen(()=>void refresh());window.addEventListener('pagehide',invalidate);void refresh()})
31
- onUnmounted(()=>{removeReopen?.();window.removeEventListener('pagehide',invalidate);app.value=undefined})
32
- </script>
33
- <template>
34
- <AppRoot theme="dsm7" modal-scope="app" style="height: 100%">
35
- <ConfigProvider :locale="uiLocale(ctx.locale)">
36
- <AppShell v-model="page" :locale="ctx.locale" :pages="pages" :description="subtitle">
37
- <template #actions>
38
- <Button v-if="!invalid" variant="secondary" :disabled="busy||nestedBusy" @click="refresh">{{ copy.refresh }}</Button>
39
- </template>
40
- <div class="integration-app m2-app" :aria-busy="busy||nestedBusy">
41
- <Callout v-if="invalid" tone="warning" role="alert">{{ copy.accountChanged }}</Callout>
42
- <Callout v-else-if="error" tone="danger" role="alert">{{ m2ErrorCopy(error,copy) }}</Callout>
43
- <p v-if="busy" role="status">{{ copy.loading }}</p>
44
- <div data-page="status" v-show="page==='status'">
45
- <SettingsSection title="Package" :collapsible="false">
46
- <p v-if="app" role="status">{{ app.package }} · {{ app.version }} · {{ app.user }}</p>
47
- <p v-else role="status">{{ copy.loading }}</p>
48
- </SettingsSection>
49
- </div>
50
- <div data-page="folders" v-show="page==='folders'">
51
- <M2Settings v-if="app&&!invalid" :key="view" :locale="ctx.locale" @busy="value=>nestedBusy=value" />
52
- </div>
53
- </div>
54
- </AppShell>
55
- </ConfigProvider>
56
- </AppRoot>
57
- </template>
@@ -1,203 +0,0 @@
1
- <script setup lang="ts">
2
- import {computed, inject, onMounted, onUnmounted, ref, watch} from 'vue'
3
- import {AppRoot, ConfigProvider, Button, Callout, Dialog, Form, FormActions, FormItem, SettingsSection, Textarea} from '@synopackageland/ui'
4
- import {uiLocale} from './nas/m2-i18n'
5
- import {stateCopy, type AppStatus, type Context, type Status} from './context'
6
- import {NasProviderKey} from './nas/provider'
7
- import {errorCopy, nasCopy} from './nas/i18n'
8
- import NasGrantSettings from './nas/NasGrantSettings.vue'
9
- import NasUnavailable from './nas/NasUnavailable.vue'
10
- import JobsPanel from './jobs/JobsPanel.vue'
11
- import {JobsProviderKey} from './jobs/provider'
12
- const jobsProvider=inject(JobsProviderKey,null)
13
- import JobsAdminPanel from './jobs/JobsAdminPanel.vue'
14
- import AppShell from './shell/AppShell.vue'
15
- import {activePage,shellPages,type ShellPage} from './shell/pages'
16
- const nasProvider = inject(NasProviderKey, null)
17
- // A mount owns one provider binding. A native subject/package switch must
18
- // discard its UI and pending work; the host supplies a new provider on remount.
19
- const nasInvalidated = ref(false)
20
- const props = defineProps<{ctx: Context}>()
21
- const app = ref<AppStatus>()
22
- const status = ref<Status>()
23
- const busy = ref(false)
24
- const error = ref('')
25
- const notice = ref('')
26
- const disableOpen = ref(false)
27
- const id = ref('')
28
- const text = ref('')
29
- const identity = ref('')
30
- let disposed = false
31
- const refreshing = ref(false)
32
- const hasIdentity = ref(false)
33
- let appCookie = ''
34
- const page = ref<ShellPage>('status')
35
- const pages = computed(() => shellPages({
36
- // The session-SDK build submits interactive work instead of sample notes.
37
- sample: status.value?.state === 'ready' && !jobsProvider?.interactive,
38
- // Connected workers carry their own consent per job; the grant screen only
39
- // exists while no interactive worker is advertised.
40
- nas: !!nasProvider || !jobsProvider?.interactive?.workers.length,
41
- interactive: !!jobsProvider?.interactive,
42
- background: jobsProvider?.readiness?.background !== 'unavailable',
43
- admin: !!app.value?.admin,
44
- identity: hasIdentity.value,
45
- }))
46
- watch(pages,list => {page.value = activePage(page.value,list)})
47
- const subtitle = computed(() => app.value ? `${app.value.package} · ${app.value.user} · ${app.value.version}` : undefined)
48
- const configured = computed(() => status.value?.reason !== "not-requested")
49
- const details = computed(() => {
50
- if(status.value?.state === 'pending') {
51
- const copy = nasCopy(props.ctx.locale)
52
- return {label:copy.healthPending,description:copy.healthPendingHelp}
53
- }
54
- return status.value ? stateCopy[status.value.state] : undefined
55
- })
56
- function message(e: unknown) {
57
- const code = (e as {code?: string})?.code || 'request_failed'
58
- if(['denied','unknown_method','unavailable','unsupported','session_required','auth_unavailable'].includes(code)) return errorCopy(e,nasCopy(props.ctx.locale))
59
- return ({session_required:'Your DSM session expired. Sign in again.',access_denied:'This sample belongs to another account.',integration_unavailable:'Integration is unavailable. Ask an administrator to activate or recover it.',personal_unavailable:'Sample storage is unavailable. Ask an administrator to check package data.',root_conflict:'A conflicting scheduler task exists. Ask an administrator to review it.',root_verify_failed:'Scheduler verification failed. Refresh and review the task.',root_run_failed:'The approved operation failed. Review integration status and cleanup.'} as Record<string,string>)[code] || `Request failed (${code}). Refresh and try again.`
60
- }
61
- async function refresh() {
62
- if(disposed || refreshing.value) return
63
- refreshing.value = true; error.value = ''
64
- try {
65
- const [a,s] = await Promise.all([props.ctx.call<AppStatus>('app.status'),props.ctx.call<Status>('integration.status')])
66
- if(disposed) return
67
- if(app.value && (app.value.user!==a.user || app.value.package!==a.package)) nasInvalidated.value=true
68
- app.value = a; status.value = s
69
- if(s.state !== 'ready') {id.value='';text.value='';return}
70
- // The session SDK build exposes File Station jobs, not native sample notes.
71
- if(jobsProvider?.interactive) {id.value='';text.value='';return}
72
- // Plain --ui vue has no personal routes; not-enabled status hides this.
73
- const list = await props.ctx.call<{items:Array<{id:string;name:string}>}>('personal.list')
74
- if(disposed) return
75
- id.value = list.items[0]?.id || ''
76
- if(id.value) {
77
- const note = await props.ctx.call<{text:string}>('personal.read',{id:id.value})
78
- if(!disposed) text.value = note.text
79
- }
80
- } catch(e) {if(!disposed) {error.value = message(e);status.value=undefined;id.value='';text.value=''}} finally {refreshing.value=false}
81
- }
82
- async function action(op: string) {
83
- if(busy.value || refreshing.value || disposed) return
84
- busy.value=true;error.value='';notice.value=''
85
- try {
86
- if(!props.ctx.root) throw {code:'unsupported'}
87
- const approved = await props.ctx.root.authorize(op)
88
- if(disposed) return
89
- if(approved !== 'ready') {notice.value='Approval cancelled. No operation was run.';return}
90
- await props.ctx.root.run(op)
91
- if(disposed) return
92
- notice.value=op==='helper_repair' ? 'Cleanup repaired. Use Recover or Approve and activate when ready.' : 'Operation completed. Integration status was checked again.'
93
- await refresh()
94
- } catch(e) {if(!disposed) {
95
- await refresh()
96
- if(!disposed) {
97
- const code=(e as {code?:string})?.code
98
- if(code==='root_cancelled') notice.value='Repair confirmation cancelled. No operation was run.'
99
- else error.value=op==='helper_repair' && (code==='root_run_failed' || code==='root_task_failed') ? 'Repair could not verify safe cleanup. Review the package recovery instructions before trying again.' : message(e)
100
- }
101
- }}
102
- finally {if(!disposed) busy.value=false}
103
- }
104
- async function save() {
105
- if(busy.value || refreshing.value || !id.value || disposed) return
106
- busy.value=true;error.value='';notice.value=''
107
- try {await props.ctx.call('personal.write',{id:id.value,text:text.value});if(!disposed) notice.value='Your sample note was saved.'}
108
- catch(e) {if(!disposed) error.value=message(e)} finally {if(!disposed) busy.value=false}
109
- }
110
- async function login() {
111
- if(busy.value || refreshing.value || disposed) return
112
- busy.value=true;error.value=''
113
- try {
114
- const result=await props.ctx.call<{cookie:string;user:string}>('identity.login')
115
- if(!disposed){appCookie=result.cookie;identity.value=`App session for ${result.user}`}
116
- } catch(e) {if(!disposed) error.value=message(e)} finally {if(!disposed) busy.value=false}
117
- }
118
- async function checkIdentity() {
119
- if(busy.value || refreshing.value || disposed) return
120
- busy.value=true;error.value=''
121
- try {const result=await props.ctx.call<{user:string}>('identity.current',{cookie:appCookie});if(!disposed) identity.value=`App session for ${result.user}`}
122
- catch(e) {if(!disposed) {appCookie='';identity.value='';error.value=message(e)}} finally {if(!disposed) busy.value=false}
123
- }
124
- onMounted(async()=>{
125
- props.ctx.reopen(()=>{if(!disposed) void refresh()})
126
- await refresh()
127
- if(disposed || !app.value) return
128
- try {const result = await props.ctx.call<{mode:string}>('identity.status');if(!disposed) hasIdentity.value = result.mode==='better-auth'} catch { /* Optional route absent in Go-only. */ }
129
- })
130
- onUnmounted(()=>{disposed=true;appCookie='';text.value='';id.value=''})
131
- </script>
132
-
133
- <template>
134
- <AppRoot modal-scope="app" style="height: 100%">
135
- <ConfigProvider :locale="uiLocale(ctx.locale)">
136
- <AppShell v-model="page" :locale="ctx.locale" :pages="pages" :description="subtitle">
137
- <template #actions>
138
- <Button variant="secondary" :disabled="busy || refreshing" @click="error=''; refresh()">Refresh</Button>
139
- </template>
140
- <div class="integration-app" :aria-busy="busy || refreshing" aria-label="Package settings">
141
- <p v-if="refreshing" role="status">Refreshing status…</p>
142
- <p v-else-if="busy" role="status">Completing operation…</p>
143
- <Callout v-if="error" tone="danger" title="Action required"><span role="alert">{{ error }}</span></Callout>
144
- <p v-if="notice" class="integration-notice" role="status">{{ notice }}</p>
145
- <div data-page="status" v-show="page==='status'">
146
- <SettingsSection title="DSM integration" :collapsible="false">
147
- <div v-if="status && details" :data-integration-state="status.state" class="integration-status" role="status">
148
- <h2>{{ details.label }}</h2><p>{{ details.description }}</p>
149
- <p v-if="status.cleanup === 'required'">Cleanup is required. Ask an administrator to run teardown or disable. If the helper supervisor was lost, use Repair cleanup and follow the package recovery instructions.</p>
150
- <dl><dt>Package running</dt><dd>{{ status.packageRunning }}</dd><dt>Scheduler</dt><dd>{{ status.scheduler }}</dd></dl>
151
- </div>
152
- <p v-else-if="error" role="status">Status could not be loaded. Refresh to try again.</p>
153
- <p v-else role="status">Loading integration status…</p>
154
- <div v-if="app?.admin && ctx.root && configured" class="integration-actions">
155
- <Button variant="primary" :disabled="busy || refreshing" @click="action('helper_enable')">Approve and activate</Button>
156
- <Button variant="secondary" :disabled="busy || refreshing" @click="action('helper_recover')">Recover</Button>
157
- <Button variant="secondary" :disabled="busy || refreshing" @click="action('helper_teardown')">Teardown</Button>
158
- <Button variant="secondary" :disabled="busy || refreshing" @click="disableOpen=true">Disable</Button>
159
- <Button variant="secondary" :disabled="busy || refreshing" @click="action('helper_repair')">Repair cleanup</Button>
160
- </div>
161
- <p v-if="app?.admin && ctx.root && configured" class="integration-help">Repair cleanup clears verified leftover helper state. It does not restart integration.</p>
162
- <Callout v-if="app && !app.admin && status?.state !== 'ready' && status?.state !== 'pending'" title="Administrator action needed">Ask a DSM administrator to open this package's settings. Your login cannot approve root operations.</Callout>
163
- </SettingsSection>
164
- </div>
165
- <div data-page="sample" v-show="page==='sample'">
166
- <SettingsSection v-if="status?.state === 'ready' && !jobsProvider?.interactive" title="My sample data" :collapsible="false">
167
- <p class="integration-help">This synthetic note belongs to your DSM account and is stored in package data.</p>
168
- <p v-if="refreshing" role="status">Loading your sample data…</p>
169
- <Callout v-else-if="!id" title="No sample data">Refresh to request your sample data again.</Callout>
170
- <Form v-if="id" @submit.prevent><FormItem label="My sample note"><Textarea v-model="text" :disabled="busy || refreshing" /></FormItem>
171
- <FormActions><Button variant="primary" :disabled="busy || refreshing" @click="save">Save my note</Button></FormActions>
172
- </Form>
173
- </SettingsSection>
174
- </div>
175
- <div data-page="nas" v-show="page==='nas'">
176
- <NasGrantSettings v-if="nasProvider && app && status && !nasInvalidated" :locale="ctx.locale" />
177
- <NasUnavailable v-else-if="!jobsProvider?.interactive?.workers.length" :locale="ctx.locale" />
178
- </div>
179
- <div data-page="interactive" v-show="page==='interactive'">
180
- <JobsPanel v-if="app && !nasInvalidated" section="interactive" :locale="ctx.locale" />
181
- </div>
182
- <div data-page="background" v-show="page==='background'">
183
- <JobsPanel v-if="app && !nasInvalidated" section="background" :locale="ctx.locale" />
184
- </div>
185
- <div data-page="admin" v-show="page==='admin'">
186
- <JobsAdminPanel v-if="app?.admin && !nasInvalidated" :locale="ctx.locale" />
187
- </div>
188
- <div data-page="identity" v-show="page==='identity'">
189
- <SettingsSection v-if="hasIdentity" title="Optional app identity" :collapsible="false">
190
- <p class="integration-help">Your DSM login is checked again for every app session request.</p>
191
- <div class="integration-actions"><Button variant="primary" :disabled="busy || refreshing" @click="login">Create app session</Button><Button variant="secondary" :disabled="busy || refreshing || !identity" @click="checkIdentity">Check app session</Button></div>
192
- <p v-if="identity" role="status">{{ identity }}</p>
193
- </SettingsSection>
194
- </div>
195
- </div>
196
- <Dialog v-model:open="disableOpen" title="Disable integration?" description="New integration requests will be refused before helper cleanup begins.">
197
- <p>Your sample data and historical root output are retained. A failed cleanup remains visible.</p>
198
- <template #footer><Button variant="secondary" @click="disableOpen=false">Cancel</Button><Button variant="danger" :disabled="busy || refreshing" @click="disableOpen=false; action('helper_disable')">Confirm disable</Button></template>
199
- </Dialog>
200
- </AppShell>
201
- </ConfigProvider>
202
- </AppRoot>
203
- </template>
@@ -1,70 +0,0 @@
1
- <script setup lang="ts">
2
- import {computed,ref,watch} from 'vue'
3
- import {Button,Callout,Form,FormActions,FormItem,Input,Select} from '@synopackageland/ui'
4
- import type {JobsProvider,PreparedInteractive} from './provider'
5
- import type {M2JobSource} from '../nas/m2-contract'
6
- import M2PathPicker from '../nas/M2PathPicker.vue'
7
- import {m2Copy,m2ErrorCopy} from '../nas/m2-i18n'
8
- import {jobCopy} from './i18n'
9
- import {useNasRequest} from '../nas/use-request'
10
- const props=defineProps<{locale:string;provider:JobsProvider}>(),emit=defineEmits<{submitted:[]}>()
11
- const copy=computed(()=>jobCopy(props.locale)),request=useNasRequest(),{busy,error}=request
12
- const open=ref(false),pickerBusy=ref(false),source=ref<M2JobSource>(),workerId=ref(''),action=ref('nas.files.stat'),bound=ref(100),uncertain=ref<PreparedInteractive>(),notice=ref(false),invalid=ref(false)
13
- const worker=computed(()=>props.provider.interactive?.workers.find(w=>w.id===workerId.value))
14
- const actions=computed(()=>worker.value?.actions.filter(a=>source.value?.entry.isDir?a!=='nas.files.read':a!=='nas.files.list')??[])
15
- const workerOptions=computed(()=>props.provider.interactive?.workers.map(w=>({value:w.id,label:`${w.id} · ${w.revision}`}))??[])
16
- const operationLabel=(a:string)=>a==='nas.files.list'?copy.value.listOperation:a==='nas.files.read'?copy.value.readOperation:copy.value.statOperation
17
- const actionOptions=computed(()=>actions.value.map(a=>({value:a,label:operationLabel(a)})))
18
- const ready=computed(()=>props.provider.readiness?.interactive==='ready'&&!invalid.value)
19
- const locked=computed(()=>busy.value||pickerBusy.value||!!uncertain.value||!ready.value)
20
- watch(()=>props.provider.interactive?.workers,workers=>{if(!workers?.some(w=>w.id===workerId.value))workerId.value=workers?.[0]?.id??''},{immediate:true})
21
- watch(actions,values=>{if(!values.includes(action.value as never))action.value=values[0]??''})
22
- watch(action,value=>{bound.value=value==='nas.files.read'?worker.value?.maxBytes??1:100})
23
- watch(error,e=>{if(['session_required','auth_unavailable','denied'].includes((e as {code?:string})?.code??'')){invalid.value=true;source.value=undefined;open.value=false}})
24
- function select(value:M2JobSource){source.value=value;notice.value=false}
25
- async function submit(){
26
- if(locked.value||!source.value||!worker.value)return
27
- const chosen=source.value,w=worker.value,a=action.value
28
- if(!actions.value.includes(a as never)||((a==='nas.files.list'||a==='nas.files.read')&&(!Number.isSafeInteger(bound.value)||bound.value<1||bound.value>(a==='nas.files.list'?100:w.maxBytes)))){error.value={code:'invalid-request'};return}
29
- await request.run(async signal=>{
30
- const prepared=await props.provider.interactive!.prepareInteractive(signal,{id:w.id,revision:w.revision},{id:chosen.selection.grantId,revision:1},{steps:[{action:a,segments:[...chosen.segments],...(a==='nas.files.list'?{limit:bound.value}:a==='nas.files.read'?{maxBytes:bound.value}:{})}]})
31
- if(Date.now()>=prepared.expiresAt)throw {code:'expired'}
32
- // Preserve the original intent before the single submit attempt. A missing
33
- // reply cannot establish rollback; lookup never creates or attaches a job.
34
- uncertain.value=prepared
35
- await props.provider.interactive!.submitInteractive(prepared,signal)
36
- uncertain.value=undefined;source.value=undefined;notice.value=true;emit('submitted')
37
- })
38
- }
39
- async function lookup(){
40
- const original=uncertain.value;if(!original||busy.value)return
41
- const found=await request.run(signal=>props.provider.lookup(original.intentId,signal))
42
- if(found?.jobId===original.jobId){uncertain.value=undefined;source.value=undefined;notice.value=true;emit('submitted')}
43
- }
44
- const errorText=computed(()=>{
45
- const code=(error.value as {code?:string})?.code
46
- if(code==='revalidating')return copy.value.revalidating
47
- if(code==='session_required'||code==='auth_unavailable')return copy.value.accessLost
48
- if(['denied','invalid-request','limit-exceeded'].includes(code??''))return m2ErrorCopy(error.value,m2Copy(props.locale))
49
- return copy.value.error
50
- })
51
- </script>
52
- <template>
53
- <Form class="jobs-input" :aria-label="copy.newInteractive" :aria-busy="busy||pickerBusy" @submit.prevent="submit">
54
- <h3>{{ copy.newInteractive }}</h3>
55
- <p>{{ copy.sourceHelp }}</p>
56
- <Callout v-if="error" tone="danger" role="alert">{{ errorText }}</Callout>
57
- <p v-if="notice" role="status">{{ copy.interactiveSubmitted }}</p>
58
- <Button variant="secondary" :disabled="locked" @click="open=true">{{ copy.chooseSource }}</Button>
59
- <p v-if="source" role="status">{{ source.entry.path }}</p>
60
- <FormItem :label="copy.worker"><Select v-model="workerId" :options="workerOptions" :disabled="locked" /></FormItem>
61
- <FormItem :label="copy.operation"><Select v-model="action" data-job-action :options="actionOptions" :disabled="locked||!source" /></FormItem>
62
- <FormItem v-if="action==='nas.files.list'||action==='nas.files.read'" :label="action==='nas.files.list'?copy.entryLimit:copy.byteLimit"><Input v-model.number="bound" data-job-bound type="number" min="1" :max="action==='nas.files.list'?100:worker?.maxBytes" step="1" :disabled="locked" /></FormItem>
63
- <FormActions><Button type="submit" variant="primary" :disabled="locked||!source||!worker||!actions.length">{{ copy.submitInteractive }}</Button></FormActions>
64
- <template v-if="uncertain"><p role="status">{{ copy.uncertain }}</p><Button variant="secondary" :disabled="busy||invalid" @click="lookup">{{ copy.lookup }}</Button></template>
65
- <M2PathPicker v-model:open="open" :locale="locale" :title="copy.chooseSource" select-files read-only @source="select" @busy="value=>pickerBusy=value" />
66
- </Form>
67
- </template>
68
- <style scoped>
69
- .jobs-input { margin-block: var(--ui-space-4, 16px); }
70
- </style>
@@ -1,33 +0,0 @@
1
- <script setup lang="ts">
2
- import {computed,inject,onMounted,ref,watch} from 'vue'
3
- import {Button,Callout,SettingsSection} from '@synopackageland/ui'
4
- import {JobsAdminProviderKey,type AdminJobView} from './provider'
5
- import {jobCopy} from './i18n'
6
- import {adminPage} from './validate'
7
- import {useNasRequest} from '../nas/use-request'
8
- const props=defineProps<{locale:string}>(),copy=computed(()=>jobCopy(props.locale))
9
- const provider=inject(JobsAdminProviderKey,null),request=useNasRequest(),{busy,error}=request,items=ref<readonly AdminJobView[]>([]),nextCursor=ref<string>()
10
- const invalidated=ref(false),loaded=ref(false)
11
- watch(error,e=>{if(['denied','session_required','auth_unavailable'].includes((e as {code?:string})?.code??'')){invalidated.value=true;items.value=[]}})
12
- async function load(cursor?:string){if(!provider||invalidated.value)return;const result=await request.run(async signal=>adminPage(await provider.list(signal,cursor)));if(result){loaded.value=true;items.value=result.items;nextCursor.value=result.nextCursor}else if(error.value){items.value=[];nextCursor.value=undefined}}
13
- async function refresh(){await load()}
14
- async function cancel(item:AdminJobView){if(!provider)return;await request.run(signal=>provider.cancel(item.jobId,item.revision,signal));await refresh()}
15
- function state(item:AdminJobView){return ({pending:copy.value.pending,running:copy.value.running,'cancel-requested':copy.value.stopping,draining:copy.value.stopping,succeeded:copy.value.succeeded,failed:copy.value.failed,canceled:copy.value.canceled,interrupted:copy.value.interrupted,'cleanup-required':copy.value.cleanup})[item.state]}
16
- onMounted(()=>{if(provider?.mode==='mock')void refresh()})
17
- </script>
18
- <template>
19
- <SettingsSection :title="copy.adminTitle" :collapsible="false" :aria-busy="busy">
20
- <Callout v-if="!provider||provider.mode==='unavailable'" tone="info" :title="copy.unavailable" />
21
- <Callout v-else-if="invalidated" tone="danger" :title="copy.accessLost" role="alert" />
22
- <template v-else>
23
- <p v-if="provider.mode==='mock'">{{ copy.mock }}</p><p v-else-if="!loaded&&!error">{{ copy.loadManagement }}</p><Callout v-if="error" tone="danger" :title="copy.error" role="alert" />
24
- <Button :disabled="busy" variant="secondary" @click="refresh">{{ copy.refresh }}</Button>
25
- <p v-if="loaded&&!items.length&&!error">{{ copy.empty }}</p>
26
- <ul class="nas-grants"><li v-for="item in items" :key="item.jobId">
27
- <p role="status">{{ state(item) }}</p><p v-if="item.drained">{{ copy.drained }}</p><p v-if="item.effectsUnknown">{{ copy.effects }}</p>
28
- <Button v-if="['pending','running','cancel-requested','draining'].includes(item.state)" :disabled="busy" variant="secondary" @click="cancel(item)">{{ copy.cancel }}</Button>
29
- </li></ul>
30
- <Button v-if="nextCursor" :disabled="busy" variant="secondary" @click="load(nextCursor)">{{ copy.next }}</Button>
31
- </template>
32
- </SettingsSection>
33
- </template>