@synopackageland/cli 0.5.3 → 0.6.1

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 (1302) hide show
  1. package/README.md +80 -38
  2. package/dist/add.d.ts +4 -0
  3. package/dist/add.js +124 -0
  4. package/dist/authorization-sdk.d.ts +6 -4
  5. package/dist/authorization-sdk.js +7 -5
  6. package/dist/build-spk/delete-app-data.d.ts +2 -2
  7. package/dist/build-spk/generator.js +3 -90
  8. package/dist/build-spk/native-lifecycle.d.ts +3 -49
  9. package/dist/build-spk/native-lifecycle.js +8 -187
  10. package/dist/build-spk/notices.d.ts +1 -1
  11. package/dist/build-spk/notices.js +8 -12
  12. package/dist/build-spk/uninstall-wizard.d.ts +3 -10
  13. package/dist/build-spk/uninstall-wizard.js +5 -3
  14. package/dist/build-spk/wizard-messages.d.ts +28 -6
  15. package/dist/build-spk/wizard-messages.js +33 -11
  16. package/dist/capabilities.d.ts +4 -0
  17. package/dist/capabilities.js +12 -0
  18. package/dist/cli.js +331 -465
  19. package/dist/compose/analyze.js +2 -2
  20. package/dist/contract/unsupported-types.js +1 -1
  21. package/dist/deploy/deploy.d.ts +1 -1
  22. package/dist/deploy/deploy.js +1 -3
  23. package/dist/deploy/plan.d.ts +1 -1
  24. package/dist/deploy/plan.js +55 -24
  25. package/dist/discovery.d.ts +1 -2
  26. package/dist/discovery.js +3 -3
  27. package/dist/error-registry.js +73 -296
  28. package/dist/host/dsm-client.js +79 -7
  29. package/dist/host/types.d.ts +13 -0
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.js +1 -0
  32. package/dist/info.d.ts +20 -2
  33. package/dist/info.js +140 -0
  34. package/dist/init.d.ts +2 -14
  35. package/dist/init.js +89 -90
  36. package/dist/inspect.js +1 -1
  37. package/dist/log.d.ts +5 -0
  38. package/dist/log.js +18 -0
  39. package/dist/runtime/executor-build.d.ts +22 -0
  40. package/dist/runtime/executor-build.js +36 -0
  41. package/dist/runtime/executor-inspect.d.ts +15 -0
  42. package/dist/runtime/executor-inspect.js +32 -0
  43. package/dist/runtime/executor-policy.d.ts +25 -0
  44. package/dist/runtime/executor-policy.js +24 -0
  45. package/dist/runtime/executor-tasks.d.ts +16 -0
  46. package/dist/runtime/executor-tasks.js +28 -0
  47. package/dist/runtime/uninstall-cleanup.d.ts +7 -0
  48. package/dist/runtime/uninstall-cleanup.js +10 -0
  49. package/dist/skill.js +3 -1
  50. package/dist/standalone/api-permissions.d.ts +18 -0
  51. package/dist/standalone/api-permissions.js +63 -0
  52. package/dist/standalone/build.d.ts +1 -1
  53. package/dist/standalone/build.js +26 -40
  54. package/dist/standalone/dsm-window.js +42 -23
  55. package/dist/standalone/inspect-spk.d.ts +8 -2
  56. package/dist/standalone/inspect-spk.js +68 -58
  57. package/dist/standalone/lifecycle.d.ts +1 -1
  58. package/dist/standalone/lifecycle.js +31 -27
  59. package/dist/standalone/manifest.d.ts +17 -14
  60. package/dist/standalone/manifest.js +77 -53
  61. package/dist/standalone/native-layout.d.ts +5 -0
  62. package/dist/standalone/native-layout.js +35 -8
  63. package/dist/standalone/native-root-window.d.ts +26 -0
  64. package/dist/standalone/native-root-window.js +282 -0
  65. package/dist/standalone/resource.d.ts +2 -2
  66. package/dist/standalone/resource.js +1 -1
  67. package/dist/standalone/root-ops.d.ts +1 -30
  68. package/dist/standalone/root-ops.js +1 -68
  69. package/dist/standalone/root-window.d.ts +5 -38
  70. package/dist/standalone/root-window.js +116 -399
  71. package/dist/standalone/spk.d.ts +3 -5
  72. package/dist/standalone/spk.js +24 -49
  73. package/dist/templates/_executor/README.md +204 -0
  74. package/dist/templates/_executor/apppriv_review_test.go +28 -0
  75. package/dist/templates/_executor/auth_presence_review_test.go +38 -0
  76. package/dist/templates/_executor/cmd/lifecycle/main.go +42 -0
  77. package/dist/templates/_executor/cookie_review_test.go +27 -0
  78. package/dist/templates/_executor/digest_review_test.go +120 -0
  79. package/dist/templates/_executor/directories.go +40 -0
  80. package/dist/templates/_executor/dsm.go +319 -0
  81. package/dist/templates/_executor/dsm_test.go +196 -0
  82. package/dist/templates/_executor/executor.go +524 -0
  83. package/dist/templates/_executor/executor_test.go +284 -0
  84. package/dist/templates/_executor/go.mod +3 -0
  85. package/dist/templates/_executor/identity.go +48 -0
  86. package/dist/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  87. package/dist/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  88. package/dist/templates/_executor/internal/taskscript/boot.sh +31 -0
  89. package/dist/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  90. package/dist/templates/_executor/internal/taskscript/control.sh +26 -0
  91. package/dist/templates/_executor/internal/taskscript/tasks.go +42 -0
  92. package/dist/templates/_executor/json_review_test.go +40 -0
  93. package/dist/templates/_executor/lifecycle_test.go +86 -0
  94. package/dist/templates/_executor/main.go +518 -0
  95. package/dist/templates/_executor/managed.go +117 -0
  96. package/dist/templates/_executor/managed_test.go +137 -0
  97. package/dist/templates/_executor/path_test.go +17 -0
  98. package/dist/templates/_executor/platform_linux.go +336 -0
  99. package/dist/templates/_executor/platform_linux_test.go +247 -0
  100. package/dist/templates/_executor/platform_other.go +42 -0
  101. package/dist/templates/_executor/process.go +139 -0
  102. package/dist/templates/_executor/socket_linux_test.go +46 -0
  103. package/dist/templates/_executor/store.go +90 -0
  104. package/dist/templates/_executor/task_race_review_test.go +47 -0
  105. package/dist/templates/_executor/tasks.go +283 -0
  106. package/dist/templates/_executor/tasks_review_test.go +43 -0
  107. package/dist/templates/_executor/tasks_test.go +166 -0
  108. package/dist/templates/_executor/testdata/evidence/cleanup.json +24 -0
  109. package/dist/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  110. package/dist/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  111. package/dist/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  112. package/dist/templates/_executor/testdata/evidence/live.jsonl +23 -0
  113. package/dist/templates/_executor/testdata/evidence/storage.json +90 -0
  114. package/dist/templates/_executor/testdata/evidence/validation.json +55 -0
  115. package/dist/templates/_executor/testdata/live_probe.py +98 -0
  116. package/dist/templates/_executor/upgrade_watch_test.go +236 -0
  117. package/dist/templates/_executor/watch.go +156 -0
  118. package/dist/templates/_executor/watch_test.go +270 -0
  119. package/dist/templates/_executor/write_review_linux_test.go +95 -0
  120. package/dist/templates/_shared/AGENTS.md +17 -0
  121. package/dist/templates/_shared/CLAUDE.md +1 -0
  122. package/dist/templates/binary/LICENSES/GO-LICENSE +27 -0
  123. package/dist/templates/binary/LICENSES/GO-PATENTS +22 -0
  124. package/dist/templates/binary/dsm-package.yaml +19 -0
  125. package/dist/templates/binary/example/main.go +16 -0
  126. package/dist/templates/binary/gitignore +2 -0
  127. package/dist/templates/binary/ui/app.css +4 -0
  128. package/dist/templates/binary/ui/app.js +17 -0
  129. package/dist/templates/native-go/README.md +128 -139
  130. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  131. package/dist/templates/native-go/backend/cmd/app/main.go +33 -26
  132. package/dist/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  133. package/dist/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  134. package/dist/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  135. package/dist/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  136. package/dist/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  137. package/dist/templates/native-go/backend/internal/api/errors.go +14 -0
  138. package/dist/templates/native-go/backend/internal/api/permissions.go +161 -0
  139. package/dist/templates/native-go/backend/internal/api/permissions.json +5 -0
  140. package/dist/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  141. package/dist/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  142. package/dist/templates/native-go/backend/internal/api/registry.go +48 -32
  143. package/dist/templates/native-go/backend/internal/api/registry_test.go +16 -1
  144. package/dist/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  145. package/dist/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  146. package/dist/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  147. package/dist/templates/native-go/backend/internal/api/server.go +135 -8
  148. package/dist/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  149. package/dist/templates/native-go/backend/internal/app/background.go +23 -44
  150. package/dist/templates/native-go/backend/internal/app/background_owner.go +0 -21
  151. package/dist/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  152. package/dist/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  153. package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  154. package/dist/templates/native-go/backend/internal/app/background_test.go +15 -41
  155. package/dist/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  156. package/dist/templates/native-go/backend/internal/app/identity.go +20 -0
  157. package/dist/templates/native-go/backend/internal/app/identity_test.go +15 -0
  158. package/dist/templates/native-go/backend/internal/app/routes.go +12 -36
  159. package/dist/templates/native-go/backend/internal/app/routes_test.go +16 -40
  160. package/dist/templates/native-go/backend/internal/app/session_files.go +4 -10
  161. package/dist/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  162. package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  163. package/dist/templates/native-go/backend/internal/background/lock_test.go +131 -0
  164. package/dist/templates/native-go/backend/internal/background/owner_test.go +12 -20
  165. package/dist/templates/native-go/backend/internal/background/runner_test.go +1 -1
  166. package/dist/templates/native-go/backend/internal/background/schedule.go +53 -17
  167. package/dist/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  168. package/dist/templates/native-go/backend/internal/background/store.go +115 -99
  169. package/dist/templates/native-go/backend/internal/background/store_test.go +10 -52
  170. package/dist/templates/native-go/backend/internal/dsm/admin.go +70 -0
  171. package/dist/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  172. package/dist/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  173. package/dist/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  174. package/dist/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  175. package/dist/templates/native-go/backend/internal/dsm/auth.go +24 -48
  176. package/dist/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  177. package/dist/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  178. package/dist/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  179. package/dist/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  180. package/dist/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  181. package/dist/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  182. package/dist/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  183. package/dist/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  184. package/dist/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  185. package/dist/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  186. package/dist/templates/native-go/backend/internal/filestation/client.go +68 -18
  187. package/dist/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  188. package/dist/templates/native-go/backend/internal/filestation/doc.go +1 -1
  189. package/dist/templates/native-go/backend/internal/filestation/http.go +70 -0
  190. package/dist/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  191. package/dist/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  192. package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  193. package/dist/templates/native-go/backend/internal/filestation/service.go +117 -117
  194. package/dist/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  195. package/dist/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  196. package/dist/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  197. package/dist/templates/native-go/backend/internal/filestation/write.go +0 -40
  198. package/dist/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  199. package/dist/templates/native-go/backend/internal/identity/README.md +55 -0
  200. package/dist/templates/native-go/backend/internal/identity/dsm.go +96 -0
  201. package/dist/templates/native-go/backend/internal/identity/http.go +291 -0
  202. package/dist/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  203. package/dist/templates/native-go/backend/internal/identity/service.go +159 -0
  204. package/dist/templates/native-go/backend/internal/identity/store.go +109 -0
  205. package/dist/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  206. package/dist/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  207. package/dist/templates/native-go/dsm-package.yaml +8 -17
  208. package/dist/templates/native-go-delegate/DELEGATE.md +142 -0
  209. package/dist/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  210. package/dist/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  211. package/dist/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  212. package/dist/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  213. package/dist/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  214. package/dist/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  215. package/dist/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  216. package/dist/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  217. package/dist/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  218. package/dist/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  219. package/dist/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  220. package/dist/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  221. package/dist/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  222. package/dist/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  223. package/dist/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  224. package/dist/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  225. package/dist/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  226. package/dist/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  227. package/dist/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  228. package/dist/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  229. package/dist/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  230. package/dist/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  231. package/dist/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  232. package/dist/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  233. package/dist/templates/native-go-delegate/test-frontend.sh +12 -0
  234. package/dist/templates/native-go-delegate/test.sh +17 -0
  235. package/dist/templates/native-go-jobs/BACKGROUND.md +108 -0
  236. package/dist/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  237. package/dist/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  238. package/dist/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  239. package/dist/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  240. package/dist/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  241. package/dist/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  242. package/dist/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  243. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  244. package/dist/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  245. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  246. package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  247. package/dist/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  248. package/dist/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  249. package/dist/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  250. package/dist/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  251. package/dist/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  252. package/dist/templates/native-go-root-ops/root/whoami.sh +3 -0
  253. package/dist/templates/native-go-vue/README.md +36 -248
  254. package/dist/templates/native-go-vue/frontend/DESIGN.md +20 -49
  255. package/dist/templates/native-go-vue/frontend/package-lock.json +278 -159
  256. package/dist/templates/native-go-vue/frontend/package.json +2 -2
  257. package/dist/templates/native-go-vue/frontend/src/App.vue +55 -151
  258. package/dist/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  259. package/dist/templates/native-go-vue/frontend/src/context.ts +2 -14
  260. package/dist/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  261. package/dist/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  262. package/dist/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  263. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  264. package/dist/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  265. package/dist/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  266. package/dist/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  267. package/dist/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  268. package/dist/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  269. package/dist/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  270. package/dist/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  271. package/dist/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  272. package/dist/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  273. package/dist/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  274. package/dist/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  275. package/dist/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  276. package/dist/templates/native-go-vue/frontend/src/main.ts +7 -4
  277. package/dist/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  278. package/dist/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  279. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  280. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  281. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  282. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  283. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  284. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  285. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  286. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  287. package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  288. package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  289. package/dist/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  290. package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  291. package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  292. package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  293. package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  294. package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  295. package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  296. package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  297. package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  298. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  299. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  300. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  301. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  302. package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  303. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  304. package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  305. package/dist/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  306. package/dist/templates/native-go-vue/frontend/vite.config.ts +2 -2
  307. package/dist/types.d.ts +1 -1
  308. package/dist/validate.js +28 -36
  309. package/package.json +5 -2
  310. package/skills/SKILL.md +25 -3
  311. package/skills/reference/create.md +15 -6
  312. package/skills/reference/deploy.md +5 -3
  313. package/skills/reference/diagnose.md +1 -1
  314. package/skills/reference/files.md +8 -6
  315. package/skills/reference/identity.md +9 -3
  316. package/skills/reference/ui-json.md +78 -0
  317. package/skills/reference/ui-vue.md +71 -0
  318. package/skills/reference/wrap.md +3 -4
  319. package/templates/_executor/README.md +204 -0
  320. package/templates/_executor/apppriv_review_test.go +28 -0
  321. package/templates/_executor/auth_presence_review_test.go +38 -0
  322. package/templates/_executor/cmd/lifecycle/main.go +42 -0
  323. package/templates/_executor/cookie_review_test.go +27 -0
  324. package/templates/_executor/digest_review_test.go +120 -0
  325. package/templates/_executor/directories.go +40 -0
  326. package/templates/_executor/dsm.go +319 -0
  327. package/templates/_executor/dsm_test.go +196 -0
  328. package/templates/_executor/executor.go +524 -0
  329. package/templates/_executor/executor_test.go +284 -0
  330. package/templates/_executor/go.mod +3 -0
  331. package/templates/_executor/identity.go +48 -0
  332. package/templates/_executor/internal/lifecycle/lifecycle.go +90 -0
  333. package/templates/_executor/internal/lifecycle/lifecycle_test.go +174 -0
  334. package/templates/_executor/internal/taskscript/boot.sh +31 -0
  335. package/templates/_executor/internal/taskscript/cmd/main.go +19 -0
  336. package/templates/_executor/internal/taskscript/control.sh +26 -0
  337. package/templates/_executor/internal/taskscript/tasks.go +42 -0
  338. package/templates/_executor/json_review_test.go +40 -0
  339. package/templates/_executor/lifecycle_test.go +86 -0
  340. package/templates/_executor/main.go +518 -0
  341. package/templates/_executor/managed.go +117 -0
  342. package/templates/_executor/managed_test.go +137 -0
  343. package/templates/_executor/path_test.go +17 -0
  344. package/templates/_executor/platform_linux.go +336 -0
  345. package/templates/_executor/platform_linux_test.go +247 -0
  346. package/templates/_executor/platform_other.go +42 -0
  347. package/templates/_executor/process.go +139 -0
  348. package/templates/_executor/socket_linux_test.go +46 -0
  349. package/templates/_executor/store.go +90 -0
  350. package/templates/_executor/task_race_review_test.go +47 -0
  351. package/templates/_executor/tasks.go +283 -0
  352. package/templates/_executor/tasks_review_test.go +43 -0
  353. package/templates/_executor/tasks_test.go +166 -0
  354. package/templates/_executor/testdata/evidence/cleanup.json +24 -0
  355. package/templates/_executor/testdata/evidence/final-smoke.jsonl +9 -0
  356. package/templates/_executor/testdata/evidence/kernel-acl.json +6 -0
  357. package/templates/_executor/testdata/evidence/linux-tests.log +123 -0
  358. package/templates/_executor/testdata/evidence/live.jsonl +23 -0
  359. package/templates/_executor/testdata/evidence/storage.json +90 -0
  360. package/templates/_executor/testdata/evidence/validation.json +55 -0
  361. package/templates/_executor/testdata/live_probe.py +98 -0
  362. package/templates/_executor/upgrade_watch_test.go +236 -0
  363. package/templates/_executor/watch.go +156 -0
  364. package/templates/_executor/watch_test.go +270 -0
  365. package/templates/_executor/write_review_linux_test.go +95 -0
  366. package/templates/_shared/AGENTS.md +17 -0
  367. package/templates/_shared/CLAUDE.md +1 -0
  368. package/templates/binary/LICENSES/GO-LICENSE +27 -0
  369. package/templates/binary/LICENSES/GO-PATENTS +22 -0
  370. package/templates/binary/dsm-package.yaml +19 -0
  371. package/templates/binary/example/main.go +16 -0
  372. package/templates/binary/gitignore +2 -0
  373. package/templates/binary/ui/app.css +4 -0
  374. package/templates/binary/ui/app.js +17 -0
  375. package/templates/native-go/README.md +128 -139
  376. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
  377. package/templates/native-go/backend/cmd/app/main.go +33 -26
  378. package/templates/native-go/backend/internal/api/cgi_framing_test.go +32 -0
  379. package/templates/native-go/backend/internal/api/cookie_review_test.go +28 -0
  380. package/templates/native-go/backend/internal/api/deadline_test.go +114 -0
  381. package/templates/native-go/backend/internal/api/dsm-session.go +54 -0
  382. package/templates/native-go/backend/internal/api/dsm-session_test.go +51 -0
  383. package/templates/native-go/backend/internal/api/errors.go +14 -0
  384. package/templates/native-go/backend/internal/api/permissions.go +161 -0
  385. package/templates/native-go/backend/internal/api/permissions.json +5 -0
  386. package/templates/native-go/backend/internal/api/permissions_test.go +113 -0
  387. package/templates/native-go/backend/internal/api/policy_fixture_test.go +8 -0
  388. package/templates/native-go/backend/internal/api/registry.go +48 -32
  389. package/templates/native-go/backend/internal/api/registry_test.go +16 -1
  390. package/templates/native-go/backend/internal/api/resource_limits_test.go +87 -0
  391. package/templates/native-go/backend/internal/api/sdk-permissions.json +46 -0
  392. package/templates/native-go/backend/internal/api/sdk_policy_test.go +31 -0
  393. package/templates/native-go/backend/internal/api/server.go +135 -8
  394. package/templates/native-go/backend/internal/api/testdata/permissions-cases.json +172 -0
  395. package/templates/native-go/backend/internal/app/background.go +23 -44
  396. package/templates/native-go/backend/internal/app/background_owner.go +0 -21
  397. package/templates/native-go/backend/internal/app/background_owner_test.go +40 -22
  398. package/templates/native-go/backend/internal/app/background_schedule.go +0 -5
  399. package/templates/native-go/backend/internal/app/background_schedule_test.go +1 -1
  400. package/templates/native-go/backend/internal/app/background_test.go +15 -41
  401. package/templates/native-go/backend/internal/app/delegate_none.go +5 -0
  402. package/templates/native-go/backend/internal/app/identity.go +20 -0
  403. package/templates/native-go/backend/internal/app/identity_test.go +15 -0
  404. package/templates/native-go/backend/internal/app/routes.go +12 -36
  405. package/templates/native-go/backend/internal/app/routes_test.go +16 -40
  406. package/templates/native-go/backend/internal/app/session_files.go +4 -10
  407. package/templates/native-go/backend/internal/app/session_files_test.go +8 -20
  408. package/templates/native-go/backend/internal/app/shared_folder_test.go +4 -4
  409. package/templates/native-go/backend/internal/background/lock_test.go +131 -0
  410. package/templates/native-go/backend/internal/background/owner_test.go +12 -20
  411. package/templates/native-go/backend/internal/background/runner_test.go +1 -1
  412. package/templates/native-go/backend/internal/background/schedule.go +53 -17
  413. package/templates/native-go/backend/internal/background/schedule_test.go +42 -9
  414. package/templates/native-go/backend/internal/background/store.go +115 -99
  415. package/templates/native-go/backend/internal/background/store_test.go +10 -52
  416. package/templates/native-go/backend/internal/dsm/admin.go +70 -0
  417. package/templates/native-go/backend/internal/dsm/admin_linux.go +80 -0
  418. package/templates/native-go/backend/internal/dsm/admin_linux_test.go +49 -0
  419. package/templates/native-go/backend/internal/dsm/admin_other.go +12 -0
  420. package/templates/native-go/backend/internal/dsm/admin_test.go +67 -0
  421. package/templates/native-go/backend/internal/dsm/auth.go +24 -48
  422. package/templates/native-go/backend/internal/dsm/auth_test.go +43 -23
  423. package/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
  424. package/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
  425. package/templates/native-go/backend/internal/dsm/native/admin_check.c +28 -0
  426. package/templates/native-go/backend/internal/dsm/native/build.sh +9 -0
  427. package/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +400 -0
  428. package/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +501 -0
  429. package/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +5 -0
  430. package/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +21 -0
  431. package/templates/native-go/backend/internal/dsm/native/provenance.json +12 -0
  432. package/templates/native-go/backend/internal/filestation/client.go +68 -18
  433. package/templates/native-go/backend/internal/filestation/client_test.go +7 -7
  434. package/templates/native-go/backend/internal/filestation/doc.go +1 -1
  435. package/templates/native-go/backend/internal/filestation/http.go +70 -0
  436. package/templates/native-go/backend/internal/filestation/http_test.go +188 -0
  437. package/templates/native-go/backend/internal/filestation/operations_test.go +206 -0
  438. package/templates/native-go/backend/internal/filestation/read_file_test.go +2 -3
  439. package/templates/native-go/backend/internal/filestation/service.go +117 -117
  440. package/templates/native-go/backend/internal/filestation/service_test.go +30 -50
  441. package/templates/native-go/backend/internal/filestation/upload_stream.go +76 -0
  442. package/templates/native-go/backend/internal/filestation/upload_stream_test.go +77 -0
  443. package/templates/native-go/backend/internal/filestation/write.go +0 -40
  444. package/templates/native-go/backend/internal/filestation/write_test.go +6 -5
  445. package/templates/native-go/backend/internal/identity/README.md +55 -0
  446. package/templates/native-go/backend/internal/identity/dsm.go +96 -0
  447. package/templates/native-go/backend/internal/identity/http.go +291 -0
  448. package/templates/native-go/backend/internal/identity/identity_test.go +483 -0
  449. package/templates/native-go/backend/internal/identity/service.go +159 -0
  450. package/templates/native-go/backend/internal/identity/store.go +109 -0
  451. package/templates/native-go/backend/internal/jsonlimits/limits.go +48 -0
  452. package/templates/native-go/backend/internal/jsonlimits/limits_test.go +52 -0
  453. package/templates/native-go/dsm-package.yaml +8 -17
  454. package/templates/native-go-delegate/DELEGATE.md +142 -0
  455. package/templates/native-go-delegate/backend/cmd/background-worker/main.go +41 -0
  456. package/templates/native-go-delegate/backend/internal/app/delegate.go +15 -0
  457. package/templates/native-go-delegate/backend/internal/app/delegate_on.go +5 -0
  458. package/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +17 -0
  459. package/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +174 -0
  460. package/templates/native-go-delegate/backend/internal/background/delegated.go +277 -0
  461. package/templates/native-go-delegate/backend/internal/background/delegated_test.go +34 -0
  462. package/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +15 -0
  463. package/templates/native-go-delegate/backend/internal/delegate/client.go +143 -0
  464. package/templates/native-go-delegate/backend/internal/delegate/client_test.go +214 -0
  465. package/templates/native-go-delegate/backend/internal/delegate/files.go +132 -0
  466. package/templates/native-go-delegate/backend/internal/delegate/retry.go +106 -0
  467. package/templates/native-go-delegate/backend/internal/delegate/retry_test.go +143 -0
  468. package/templates/native-go-delegate/backend/internal/delegate/service.go +323 -0
  469. package/templates/native-go-delegate/backend/internal/delegate/service_test.go +318 -0
  470. package/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +101 -0
  471. package/templates/native-go-delegate/backend/internal/delegate/worker.go +225 -0
  472. package/templates/native-go-delegate/backend/internal/filestation/files.go +73 -0
  473. package/templates/native-go-delegate/backend/internal/filestation/files_test.go +59 -0
  474. package/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +10 -0
  475. package/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +70 -0
  476. package/templates/native-go-delegate/frontend/src/delegate/copy.ts +9 -0
  477. package/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +11 -0
  478. package/templates/native-go-delegate/frontend/test/delegate.test.ts +130 -0
  479. package/templates/native-go-delegate/test-frontend.sh +12 -0
  480. package/templates/native-go-delegate/test.sh +17 -0
  481. package/templates/native-go-jobs/BACKGROUND.md +108 -0
  482. package/templates/native-go-jobs/backend/internal/app/background_routes_test.go +90 -0
  483. package/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +170 -0
  484. package/templates/native-go-jobs/frontend/src/background/i18n/de.json +75 -0
  485. package/templates/native-go-jobs/frontend/src/background/i18n/en.json +75 -0
  486. package/templates/native-go-jobs/frontend/src/background/i18n/es.json +75 -0
  487. package/templates/native-go-jobs/frontend/src/background/i18n/fr.json +75 -0
  488. package/templates/native-go-jobs/frontend/src/background/i18n/it.json +75 -0
  489. package/templates/native-go-jobs/frontend/src/background/i18n/ja.json +75 -0
  490. package/templates/native-go-jobs/frontend/src/background/i18n/ko.json +75 -0
  491. package/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +75 -0
  492. package/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +75 -0
  493. package/templates/native-go-jobs/frontend/src/background/picker-provider.ts +12 -0
  494. package/templates/native-go-jobs/frontend/src/background/request-key.ts +5 -0
  495. package/templates/native-go-jobs/frontend/test/background.test.ts +208 -0
  496. package/templates/native-go-root-ops/backend/internal/app/executor.go +112 -0
  497. package/templates/native-go-root-ops/backend/internal/app/executor_test.go +53 -0
  498. package/templates/native-go-root-ops/root/whoami.sh +3 -0
  499. package/templates/native-go-vue/README.md +36 -248
  500. package/templates/native-go-vue/frontend/DESIGN.md +20 -49
  501. package/templates/native-go-vue/frontend/package-lock.json +278 -159
  502. package/templates/native-go-vue/frontend/package.json +2 -2
  503. package/templates/native-go-vue/frontend/src/App.vue +55 -151
  504. package/templates/native-go-vue/frontend/src/CapabilityPanels.vue +6 -0
  505. package/templates/native-go-vue/frontend/src/context.ts +2 -14
  506. package/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +25 -0
  507. package/templates/native-go-vue/frontend/src/delegate/copy.ts +4 -0
  508. package/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +18 -0
  509. package/templates/native-go-vue/frontend/src/delegate/i18n/en.json +36 -0
  510. package/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +36 -0
  511. package/templates/native-go-vue/frontend/src/files/FileBrowser.vue +131 -0
  512. package/templates/native-go-vue/frontend/src/files/FilesPage.vue +35 -0
  513. package/templates/native-go-vue/frontend/src/files/files.test.ts +93 -0
  514. package/templates/native-go-vue/frontend/src/files/provider.test.ts +48 -0
  515. package/templates/native-go-vue/frontend/src/files/transfers.test.ts +27 -0
  516. package/templates/native-go-vue/frontend/src/files/transfers.ts +25 -0
  517. package/templates/native-go-vue/frontend/src/identity/DESIGN.md +46 -0
  518. package/templates/native-go-vue/frontend/src/identity/LoginPage.vue +76 -0
  519. package/templates/native-go-vue/frontend/src/identity/login.test.ts +32 -0
  520. package/templates/native-go-vue/frontend/src/identity/session.test.ts +29 -0
  521. package/templates/native-go-vue/frontend/src/identity/session.ts +73 -0
  522. package/templates/native-go-vue/frontend/src/main.ts +7 -4
  523. package/templates/native-go-vue/frontend/src/nas/NasPicker.vue +23 -0
  524. package/templates/native-go-vue/frontend/src/nas/contract.ts +12 -0
  525. package/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +41 -0
  526. package/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +41 -0
  527. package/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +41 -0
  528. package/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +41 -0
  529. package/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +41 -0
  530. package/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +41 -0
  531. package/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +41 -0
  532. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +41 -0
  533. package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +41 -0
  534. package/templates/native-go-vue/frontend/src/nas/i18n.ts +2 -38
  535. package/templates/native-go-vue/frontend/src/nas/locale.ts +24 -0
  536. package/templates/native-go-vue/frontend/src/nas/provider.ts +46 -55
  537. package/templates/native-go-vue/frontend/src/nas/use-request.ts +13 -22
  538. package/templates/native-go-vue/frontend/src/shell/AppShell.vue +3 -3
  539. package/templates/native-go-vue/frontend/src/shell/i18n/de.json +1 -7
  540. package/templates/native-go-vue/frontend/src/shell/i18n/en.json +1 -7
  541. package/templates/native-go-vue/frontend/src/shell/i18n/es.json +1 -7
  542. package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +1 -7
  543. package/templates/native-go-vue/frontend/src/shell/i18n/it.json +1 -7
  544. package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +1 -7
  545. package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +1 -7
  546. package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +1 -7
  547. package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +1 -7
  548. package/templates/native-go-vue/frontend/src/shell/pages.ts +3 -22
  549. package/templates/native-go-vue/frontend/test/apps.test.ts +33 -201
  550. package/templates/native-go-vue/frontend/test/shell-ui.test.ts +15 -109
  551. package/templates/native-go-vue/frontend/test/shell.test.ts +4 -19
  552. package/templates/native-go-vue/frontend/vite.config.ts +2 -2
  553. package/dist/build-spk/native-payload.d.ts +0 -37
  554. package/dist/build-spk/native-payload.js +0 -679
  555. package/dist/native/load.d.ts +0 -8
  556. package/dist/native/load.js +0 -11
  557. package/dist/native/types.d.ts +0 -28
  558. package/dist/native/types.js +0 -3
  559. package/dist/native/validate.d.ts +0 -6
  560. package/dist/native/validate.js +0 -143
  561. package/dist/standalone/authorization.d.ts +0 -48
  562. package/dist/standalone/authorization.js +0 -116
  563. package/dist/standalone/helper-inventory.d.ts +0 -31
  564. package/dist/standalone/helper-inventory.js +0 -11
  565. package/dist/standalone/helper.d.ts +0 -22
  566. package/dist/standalone/helper.js +0 -123
  567. package/dist/standalone/inspect-helper.d.ts +0 -6
  568. package/dist/standalone/inspect-helper.js +0 -103
  569. package/dist/standalone/job-diagnostics.d.ts +0 -1
  570. package/dist/standalone/job-diagnostics.js +0 -49
  571. package/dist/standalone/lifecycle-helper.d.ts +0 -2
  572. package/dist/standalone/lifecycle-helper.js +0 -12
  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/test/authorization-preview.html +0 -14
  833. package/dist/templates/native-go-authorization/frontend/test/authorization.test.ts +0 -59
  834. package/dist/templates/native-go-background/BACKGROUND.md +0 -111
  835. package/dist/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  836. package/dist/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  837. package/dist/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  838. package/dist/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  839. package/dist/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  840. package/dist/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  841. package/dist/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  842. package/dist/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  843. package/dist/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  844. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  845. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  846. package/dist/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  847. package/dist/templates/native-go-background/frontend/test/background.test.ts +0 -179
  848. package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  849. package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  850. package/dist/templates/native-go-better-auth/node/app.mjs +0 -72
  851. package/dist/templates/native-go-better-auth/node/build.mjs +0 -4
  852. package/dist/templates/native-go-better-auth/node/package-lock.json +0 -862
  853. package/dist/templates/native-go-better-auth/node/package.json +0 -1
  854. package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  855. package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  856. package/dist/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  857. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  858. package/dist/templates/native-go-root/backend/internal/app/root.go +0 -107
  859. package/dist/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  860. package/dist/templates/native-go-root/root/whoami.sh +0 -6
  861. package/dist/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  862. package/dist/templates/native-go-vue/frontend/README-M2.md +0 -64
  863. package/dist/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  864. package/dist/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  865. package/dist/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  866. package/dist/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  867. package/dist/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  868. package/dist/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  869. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  870. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  871. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  872. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  873. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  874. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  875. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  876. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  877. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  878. package/dist/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  879. package/dist/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  880. package/dist/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  881. package/dist/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  882. package/dist/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  883. package/dist/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  884. package/dist/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  885. package/dist/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  886. package/dist/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  887. package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  888. package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  889. package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  890. package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  891. package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  892. package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  893. package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  894. package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  895. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  896. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  897. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  898. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  899. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  900. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  901. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  902. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  903. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  904. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  905. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  906. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  907. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  908. package/dist/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  909. package/dist/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  910. package/dist/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  911. package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  912. package/dist/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  913. package/dist/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  914. package/dist/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  915. package/dist/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  916. package/dist/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  917. package/dist/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  918. package/dist/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  919. package/dist/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  920. package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  921. package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  922. package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  923. package/dist/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  924. package/dist/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  925. package/dist/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  926. package/templates/_authorization/main.go +0 -104
  927. package/templates/_authorization/main_test.go +0 -35
  928. package/templates/_shared/notice-overrides/index.json +0 -14
  929. package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +0 -21
  930. package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +0 -21
  931. package/templates/binary/native.yaml +0 -16
  932. package/templates/binary/synology-app.yaml +0 -7
  933. package/templates/compose-import/compose.yaml +0 -10
  934. package/templates/compose-import/synology-app.yaml +0 -15
  935. package/templates/native-go/backend/cmd/app/sdk_main.go +0 -62
  936. package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +0 -46
  937. package/templates/native-go/backend/cmd/helper/main.go +0 -64
  938. package/templates/native-go/backend/cmd/helper/sdk_registry.go +0 -19
  939. package/templates/native-go/backend/internal/api/binary.go +0 -154
  940. package/templates/native-go/backend/internal/api/binary_test.go +0 -165
  941. package/templates/native-go/backend/internal/app/authorization_none.go +0 -5
  942. package/templates/native-go/backend/internal/app/integration_state.go +0 -16
  943. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +0 -129
  944. package/templates/native-go/backend/internal/app/nas_refusal_test.go +0 -46
  945. package/templates/native-go/backend/internal/app/sdk_jobs.go +0 -70
  946. package/templates/native-go/backend/internal/app/sdk_jobs_test.go +0 -116
  947. package/templates/native-go/backend/internal/app/sdk_routes.go +0 -177
  948. package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +0 -335
  949. package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +0 -41
  950. package/templates/native-go/backend/internal/dsmprobe/protocol.go +0 -179
  951. package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +0 -29
  952. package/templates/native-go/backend/internal/filestation/repository.go +0 -207
  953. package/templates/native-go/backend/internal/filestation/repository_test.go +0 -104
  954. package/templates/native-go/backend/internal/filestation/sdk_session.go +0 -241
  955. package/templates/native-go/backend/internal/filestation/sdk_session_test.go +0 -183
  956. package/templates/native-go/backend/internal/filestation/session_semantics_test.go +0 -383
  957. package/templates/native-go/backend/internal/helper/background_proof.go +0 -163
  958. package/templates/native-go/backend/internal/helper/background_proof_contract.go +0 -46
  959. package/templates/native-go/backend/internal/helper/background_proof_test.go +0 -161
  960. package/templates/native-go/backend/internal/helper/cohort.go +0 -393
  961. package/templates/native-go/backend/internal/helper/cohort_publication.go +0 -18
  962. package/templates/native-go/backend/internal/helper/cohort_publication_test.go +0 -105
  963. package/templates/native-go/backend/internal/helper/cohort_test.go +0 -372
  964. package/templates/native-go/backend/internal/helper/control.go +0 -424
  965. package/templates/native-go/backend/internal/helper/control_test.go +0 -250
  966. package/templates/native-go/backend/internal/helper/data_contract.go +0 -245
  967. package/templates/native-go/backend/internal/helper/data_contract_test.go +0 -51
  968. package/templates/native-go/backend/internal/helper/data_decode.go +0 -184
  969. package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +0 -30
  970. package/templates/native-go/backend/internal/helper/data_protocol.go +0 -419
  971. package/templates/native-go/backend/internal/helper/data_protocol_test.go +0 -449
  972. package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +0 -139
  973. package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +0 -121
  974. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +0 -95
  975. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +0 -56
  976. package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +0 -144
  977. package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +0 -89
  978. package/templates/native-go/backend/internal/helper/dsm_home_linux.go +0 -107
  979. package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +0 -82
  980. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +0 -151
  981. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +0 -66
  982. package/templates/native-go/backend/internal/helper/grant_authority.go +0 -519
  983. package/templates/native-go/backend/internal/helper/grant_authority_contract.go +0 -88
  984. package/templates/native-go/backend/internal/helper/grant_authority_test.go +0 -510
  985. package/templates/native-go/backend/internal/helper/grant_cohort.go +0 -389
  986. package/templates/native-go/backend/internal/helper/grant_cohort_test.go +0 -239
  987. package/templates/native-go/backend/internal/helper/grant_delivery.go +0 -49
  988. package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +0 -273
  989. package/templates/native-go/backend/internal/helper/grant_delivery_test.go +0 -322
  990. package/templates/native-go/backend/internal/helper/grant_operation_contract.go +0 -47
  991. package/templates/native-go/backend/internal/helper/grant_readonly_test.go +0 -180
  992. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +0 -416
  993. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +0 -469
  994. package/templates/native-go/backend/internal/helper/grant_rpc.go +0 -147
  995. package/templates/native-go/backend/internal/helper/grant_rpc_test.go +0 -51
  996. package/templates/native-go/backend/internal/helper/grant_snapshot.go +0 -78
  997. package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +0 -134
  998. package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +0 -254
  999. package/templates/native-go/backend/internal/helper/jobcontract/bindings.go +0 -48
  1000. package/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +0 -436
  1001. package/templates/native-go/backend/internal/helper/jobcontract/decode.go +0 -185
  1002. package/templates/native-go/backend/internal/helper/jobcontract/digest.go +0 -55
  1003. package/templates/native-go/backend/internal/helper/jobcontract/registry.go +0 -85
  1004. package/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +0 -73
  1005. package/templates/native-go/backend/internal/helper/jobcontract/result.go +0 -53
  1006. package/templates/native-go/backend/internal/helper/jobcontract/stub.go +0 -8
  1007. package/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +0 -127
  1008. package/templates/native-go/backend/internal/helper/jobcontract/types.go +0 -234
  1009. package/templates/native-go/backend/internal/helper/jobcontract/types_test.go +0 -29
  1010. package/templates/native-go/backend/internal/helper/jobcontract/validate.go +0 -462
  1011. package/templates/native-go/backend/internal/helper/lease.go +0 -112
  1012. package/templates/native-go/backend/internal/helper/lease_linux.go +0 -44
  1013. package/templates/native-go/backend/internal/helper/lease_other.go +0 -8
  1014. package/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +0 -34
  1015. package/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +0 -6
  1016. package/templates/native-go/backend/internal/helper/lifecycle.go +0 -234
  1017. package/templates/native-go/backend/internal/helper/lifecycle_test.go +0 -473
  1018. package/templates/native-go/backend/internal/helper/managed_pilot.go +0 -284
  1019. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +0 -74
  1020. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +0 -40
  1021. package/templates/native-go/backend/internal/helper/managed_pilot_test.go +0 -210
  1022. package/templates/native-go/backend/internal/helper/management.go +0 -86
  1023. package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +0 -97
  1024. package/templates/native-go/backend/internal/helper/native_discovery.go +0 -79
  1025. package/templates/native-go/backend/internal/helper/native_identity.go +0 -89
  1026. package/templates/native-go/backend/internal/helper/native_provider.go +0 -159
  1027. package/templates/native-go/backend/internal/helper/native_provider_test.go +0 -421
  1028. package/templates/native-go/backend/internal/helper/observation.go +0 -244
  1029. package/templates/native-go/backend/internal/helper/observation_health_test.go +0 -127
  1030. package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +0 -117
  1031. package/templates/native-go/backend/internal/helper/observation_test.go +0 -196
  1032. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +0 -155
  1033. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +0 -76
  1034. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +0 -130
  1035. package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +0 -98
  1036. package/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +0 -40
  1037. package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +0 -193
  1038. package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +0 -56
  1039. package/templates/native-go/backend/internal/helper/operation_linux.go +0 -480
  1040. package/templates/native-go/backend/internal/helper/operation_linux_test.go +0 -528
  1041. package/templates/native-go/backend/internal/helper/peer_linux.go +0 -44
  1042. package/templates/native-go/backend/internal/helper/peer_other.go +0 -7
  1043. package/templates/native-go/backend/internal/helper/process_linux.go +0 -180
  1044. package/templates/native-go/backend/internal/helper/process_other.go +0 -5
  1045. package/templates/native-go/backend/internal/helper/publication_test.go +0 -178
  1046. package/templates/native-go/backend/internal/helper/purge.go +0 -115
  1047. package/templates/native-go/backend/internal/helper/purge_test.go +0 -59
  1048. package/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +0 -115
  1049. package/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +0 -254
  1050. package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +0 -156
  1051. package/templates/native-go/backend/internal/helper/read_transfer.go +0 -40
  1052. package/templates/native-go/backend/internal/helper/read_transfer_linux.go +0 -109
  1053. package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +0 -118
  1054. package/templates/native-go/backend/internal/helper/read_transfer_test.go +0 -177
  1055. package/templates/native-go/backend/internal/helper/readonly.go +0 -105
  1056. package/templates/native-go/backend/internal/helper/readonly_admission.go +0 -85
  1057. package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +0 -253
  1058. package/templates/native-go/backend/internal/helper/readonly_linux_test.go +0 -378
  1059. package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +0 -65
  1060. package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +0 -113
  1061. package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +0 -168
  1062. package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +0 -241
  1063. package/templates/native-go/backend/internal/helper/readonly_test.go +0 -40
  1064. package/templates/native-go/backend/internal/helper/relaxed_identity.go +0 -252
  1065. package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +0 -105
  1066. package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +0 -406
  1067. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +0 -203
  1068. package/templates/native-go/backend/internal/helper/repair.go +0 -132
  1069. package/templates/native-go/backend/internal/helper/repair_test.go +0 -271
  1070. package/templates/native-go/backend/internal/helper/revoke.go +0 -109
  1071. package/templates/native-go/backend/internal/helper/revoke_test.go +0 -121
  1072. package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +0 -303
  1073. package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +0 -184
  1074. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +0 -250
  1075. package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +0 -18
  1076. package/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +0 -51
  1077. package/templates/native-go/backend/internal/helper/sdk_attach.go +0 -83
  1078. package/templates/native-go/backend/internal/helper/sdk_attach_contract.go +0 -32
  1079. package/templates/native-go/backend/internal/helper/sdk_attach_test.go +0 -184
  1080. package/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +0 -6
  1081. package/templates/native-go/backend/internal/helper/sdk_background_authority.go +0 -832
  1082. package/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +0 -714
  1083. package/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +0 -218
  1084. package/templates/native-go/backend/internal/helper/sdk_background_lease.go +0 -218
  1085. package/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +0 -110
  1086. package/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +0 -261
  1087. package/templates/native-go/backend/internal/helper/sdk_background_store_test.go +0 -58
  1088. package/templates/native-go/backend/internal/helper/sdk_bindings.go +0 -60
  1089. package/templates/native-go/backend/internal/helper/sdk_data_contract.go +0 -251
  1090. package/templates/native-go/backend/internal/helper/sdk_data_protocol.go +0 -424
  1091. package/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +0 -51
  1092. package/templates/native-go/backend/internal/helper/sdk_display.go +0 -488
  1093. package/templates/native-go/backend/internal/helper/sdk_display_contract.go +0 -121
  1094. package/templates/native-go/backend/internal/helper/sdk_display_test.go +0 -459
  1095. package/templates/native-go/backend/internal/helper/sdk_grant_authority.go +0 -559
  1096. package/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +0 -417
  1097. package/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +0 -94
  1098. package/templates/native-go/backend/internal/helper/sdk_history.go +0 -80
  1099. package/templates/native-go/backend/internal/helper/sdk_history_test.go +0 -76
  1100. package/templates/native-go/backend/internal/helper/sdk_job.go +0 -697
  1101. package/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +0 -309
  1102. package/templates/native-go/backend/internal/helper/sdk_job_contract.go +0 -122
  1103. package/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +0 -159
  1104. package/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +0 -327
  1105. package/templates/native-go/backend/internal/helper/sdk_job_test.go +0 -501
  1106. package/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +0 -343
  1107. package/templates/native-go/backend/internal/helper/sdk_journal.go +0 -77
  1108. package/templates/native-go/backend/internal/helper/sdk_journal_linux.go +0 -244
  1109. package/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +0 -295
  1110. package/templates/native-go/backend/internal/helper/sdk_journal_test.go +0 -71
  1111. package/templates/native-go/backend/internal/helper/sdk_picker_test.go +0 -50
  1112. package/templates/native-go/backend/internal/helper/sdk_process_linux.go +0 -184
  1113. package/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +0 -129
  1114. package/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +0 -242
  1115. package/templates/native-go/backend/internal/helper/sdk_rpc.go +0 -299
  1116. package/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +0 -70
  1117. package/templates/native-go/backend/internal/helper/sdk_rpc_test.go +0 -135
  1118. package/templates/native-go/backend/internal/helper/sdk_server_linux.go +0 -161
  1119. package/templates/native-go/backend/internal/helper/sdk_session.go +0 -677
  1120. package/templates/native-go/backend/internal/helper/sdk_session_contract.go +0 -72
  1121. package/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +0 -215
  1122. package/templates/native-go/backend/internal/helper/sdk_session_test.go +0 -475
  1123. package/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +0 -78
  1124. package/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +0 -414
  1125. package/templates/native-go/backend/internal/helper/sdk_transport.go +0 -79
  1126. package/templates/native-go/backend/internal/helper/sdk_transport_linux.go +0 -82
  1127. package/templates/native-go/backend/internal/helper/sdk_transport_test.go +0 -64
  1128. package/templates/native-go/backend/internal/helper/server_linux.go +0 -136
  1129. package/templates/native-go/backend/internal/helper/stale_management_linux_test.go +0 -126
  1130. package/templates/native-go/backend/internal/helper/stale_management_test.go +0 -122
  1131. package/templates/native-go/backend/internal/helper/startup_diagnostic.go +0 -68
  1132. package/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +0 -126
  1133. package/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +0 -117
  1134. package/templates/native-go/backend/internal/helper/status.go +0 -343
  1135. package/templates/native-go/backend/internal/helper/status_test.go +0 -333
  1136. package/templates/native-go/backend/internal/helper/supervision.go +0 -107
  1137. package/templates/native-go/backend/internal/helper/supervision_test.go +0 -124
  1138. package/templates/native-go/backend/internal/helper/supervisor_frame.go +0 -79
  1139. package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +0 -69
  1140. package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +0 -107
  1141. package/templates/native-go/backend/internal/helper/supervisor_linux.go +0 -367
  1142. package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +0 -913
  1143. package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +0 -74
  1144. package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +0 -45
  1145. package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +0 -23
  1146. package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +0 -67
  1147. package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +0 -52
  1148. package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +0 -20
  1149. package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +0 -20
  1150. package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +0 -20
  1151. package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +0 -22
  1152. package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +0 -22
  1153. package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +0 -22
  1154. package/templates/native-go/backend/internal/helper/unit_connection.go +0 -75
  1155. package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +0 -135
  1156. package/templates/native-go/backend/internal/helper/unit_connection_test.go +0 -151
  1157. package/templates/native-go/backend/internal/helper/unit_frame_test.go +0 -32
  1158. package/templates/native-go/backend/internal/helper/unit_linux.go +0 -368
  1159. package/templates/native-go/backend/internal/helper/unit_linux_test.go +0 -46
  1160. package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +0 -217
  1161. package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +0 -178
  1162. package/templates/native-go/backend/internal/helper/unit_query_linux.go +0 -115
  1163. package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +0 -372
  1164. package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +0 -232
  1165. package/templates/native-go/backend/internal/helper/write.go +0 -77
  1166. package/templates/native-go/backend/internal/helper/write_admission.go +0 -260
  1167. package/templates/native-go/backend/internal/helper/write_admission_test.go +0 -135
  1168. package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +0 -218
  1169. package/templates/native-go/backend/internal/helper/write_files_linux.go +0 -205
  1170. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +0 -225
  1171. package/templates/native-go/backend/internal/helper/write_intent_linux.go +0 -116
  1172. package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +0 -74
  1173. package/templates/native-go/backend/internal/helper/write_operation_linux.go +0 -245
  1174. package/templates/native-go/backend/internal/helper/write_test.go +0 -53
  1175. package/templates/native-go-authorization/backend/internal/app/authorization.go +0 -298
  1176. package/templates/native-go-authorization/backend/internal/app/authorization_test.go +0 -96
  1177. package/templates/native-go-authorization/frontend/test/authorization-preview.html +0 -14
  1178. package/templates/native-go-authorization/frontend/test/authorization.test.ts +0 -59
  1179. package/templates/native-go-background/BACKGROUND.md +0 -111
  1180. package/templates/native-go-background/backend/internal/app/background_routes_test.go +0 -32
  1181. package/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +0 -178
  1182. package/templates/native-go-background/frontend/src/background/i18n/de.json +0 -83
  1183. package/templates/native-go-background/frontend/src/background/i18n/en.json +0 -83
  1184. package/templates/native-go-background/frontend/src/background/i18n/es.json +0 -83
  1185. package/templates/native-go-background/frontend/src/background/i18n/fr.json +0 -83
  1186. package/templates/native-go-background/frontend/src/background/i18n/it.json +0 -83
  1187. package/templates/native-go-background/frontend/src/background/i18n/ja.json +0 -83
  1188. package/templates/native-go-background/frontend/src/background/i18n/ko.json +0 -83
  1189. package/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +0 -83
  1190. package/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +0 -83
  1191. package/templates/native-go-background/frontend/src/background/picker-provider.ts +0 -13
  1192. package/templates/native-go-background/frontend/test/background.test.ts +0 -179
  1193. package/templates/native-go-better-auth/backend/internal/app/identity.go +0 -208
  1194. package/templates/native-go-better-auth/backend/internal/app/identity_test.go +0 -113
  1195. package/templates/native-go-better-auth/node/app.mjs +0 -72
  1196. package/templates/native-go-better-auth/node/build.mjs +0 -4
  1197. package/templates/native-go-better-auth/node/package-lock.json +0 -862
  1198. package/templates/native-go-better-auth/node/package.json +0 -1
  1199. package/templates/native-go-better-auth/node/test/auth.test.mjs +0 -31
  1200. package/templates/native-go-integration/backend/internal/app/identity_none.go +0 -6
  1201. package/templates/native-go-integration/backend/internal/app/personal.go +0 -203
  1202. package/templates/native-go-integration/backend/internal/app/personal_test.go +0 -156
  1203. package/templates/native-go-root/backend/internal/app/root.go +0 -107
  1204. package/templates/native-go-root/backend/internal/app/root_test.go +0 -124
  1205. package/templates/native-go-root/root/whoami.sh +0 -6
  1206. package/templates/native-go-vue/frontend/README-JOBS.md +0 -75
  1207. package/templates/native-go-vue/frontend/README-M2.md +0 -64
  1208. package/templates/native-go-vue/frontend/src/M2App.vue +0 -57
  1209. package/templates/native-go-vue/frontend/src/SDKApp.vue +0 -203
  1210. package/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +0 -70
  1211. package/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +0 -33
  1212. package/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +0 -135
  1213. package/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +0 -179
  1214. package/templates/native-go-vue/frontend/src/jobs/i18n/de.json +0 -62
  1215. package/templates/native-go-vue/frontend/src/jobs/i18n/en.json +0 -62
  1216. package/templates/native-go-vue/frontend/src/jobs/i18n/es.json +0 -62
  1217. package/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +0 -62
  1218. package/templates/native-go-vue/frontend/src/jobs/i18n/it.json +0 -62
  1219. package/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +0 -62
  1220. package/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +0 -62
  1221. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +0 -62
  1222. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +0 -62
  1223. package/templates/native-go-vue/frontend/src/jobs/i18n.ts +0 -15
  1224. package/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +0 -67
  1225. package/templates/native-go-vue/frontend/src/jobs/provider.ts +0 -60
  1226. package/templates/native-go-vue/frontend/src/jobs/validate.ts +0 -44
  1227. package/templates/native-go-vue/frontend/src/m2-main.ts +0 -21
  1228. package/templates/native-go-vue/frontend/src/m2-style.css +0 -7
  1229. package/templates/native-go-vue/frontend/src/nas/M2Files.vue +0 -94
  1230. package/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +0 -70
  1231. package/templates/native-go-vue/frontend/src/nas/M2Settings.vue +0 -69
  1232. package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +0 -74
  1233. package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +0 -106
  1234. package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +0 -20
  1235. package/templates/native-go-vue/frontend/src/nas/i18n/de.json +0 -74
  1236. package/templates/native-go-vue/frontend/src/nas/i18n/en.json +0 -74
  1237. package/templates/native-go-vue/frontend/src/nas/i18n/es.json +0 -74
  1238. package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +0 -74
  1239. package/templates/native-go-vue/frontend/src/nas/i18n/it.json +0 -74
  1240. package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +0 -74
  1241. package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +0 -74
  1242. package/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +0 -56
  1243. package/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +0 -56
  1244. package/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +0 -56
  1245. package/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +0 -56
  1246. package/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +0 -56
  1247. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +0 -56
  1248. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +0 -56
  1249. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +0 -56
  1250. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +0 -56
  1251. package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +0 -74
  1252. package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +0 -74
  1253. package/templates/native-go-vue/frontend/src/nas/m2-contract.ts +0 -33
  1254. package/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +0 -24
  1255. package/templates/native-go-vue/frontend/src/nas/m2-provider.ts +0 -104
  1256. package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +0 -119
  1257. package/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +0 -18
  1258. package/templates/native-go-vue/frontend/src/sdk-main.ts +0 -39
  1259. package/templates/native-go-vue/frontend/test/jobs-connected.test.ts +0 -163
  1260. package/templates/native-go-vue/frontend/test/jobs-preview.html +0 -22
  1261. package/templates/native-go-vue/frontend/test/jobs.test.ts +0 -176
  1262. package/templates/native-go-vue/frontend/test/m2-preview.html +0 -27
  1263. package/templates/native-go-vue/frontend/test/m2-provider.test.ts +0 -87
  1264. package/templates/native-go-vue/frontend/test/m2-ui.test.ts +0 -209
  1265. package/templates/native-go-vue/frontend/test/nas-provider.test.ts +0 -81
  1266. package/templates/native-go-vue/frontend/test/nas-request.test.ts +0 -21
  1267. package/templates/native-go-vue/frontend/test/nas-ui.test.ts +0 -261
  1268. package/templates/native-go-vue/frontend/test/picker-wire.test.ts +0 -110
  1269. package/templates/native-go-vue/frontend/test/shell-preview.html +0 -19
  1270. package/templates/native-go-vue/frontend/test/shell-sdk.test.ts +0 -73
  1271. /package/dist/standalone/{authorization-window.d.ts → native-authorization-window.d.ts} +0 -0
  1272. /package/dist/standalone/{authorization-window.js → native-authorization-window.js} +0 -0
  1273. /package/dist/templates/{hello-files → compose}/compose.yaml +0 -0
  1274. /package/dist/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1275. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/AuthorizationGate.vue +0 -0
  1276. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/de.json +0 -0
  1277. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/en.json +0 -0
  1278. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/es.json +0 -0
  1279. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/fr.json +0 -0
  1280. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/index.ts +0 -0
  1281. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/it.json +0 -0
  1282. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/ja.json +0 -0
  1283. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/ko.json +0 -0
  1284. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/zh-CN.json +0 -0
  1285. /package/dist/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/zh-TW.json +0 -0
  1286. /package/dist/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1287. /package/dist/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
  1288. /package/templates/{hello-files → compose}/compose.yaml +0 -0
  1289. /package/templates/{hello-files → compose}/synology-app.yaml +0 -0
  1290. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/AuthorizationGate.vue +0 -0
  1291. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/de.json +0 -0
  1292. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/en.json +0 -0
  1293. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/es.json +0 -0
  1294. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/fr.json +0 -0
  1295. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/index.ts +0 -0
  1296. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/it.json +0 -0
  1297. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/ja.json +0 -0
  1298. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/ko.json +0 -0
  1299. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/zh-CN.json +0 -0
  1300. /package/templates/{native-go-authorization/frontend/src/authorization → native-authorization}/i18n/zh-TW.json +0 -0
  1301. /package/templates/{native-go-background → native-go-jobs}/backend/internal/app/background_on.go +0 -0
  1302. /package/templates/{native-go-background → native-go-jobs}/frontend/src/background/i18n.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export { testProject } from "./test-command.js";
8
8
  export { buildSpk } from "./build-spk/generator.js";
9
9
  export { RecordingComposeRunner } from "./compose/runner.js";
10
10
  export type { ValidationError, ValidationResult } from "./types.js";
11
+ export { addCapabilities } from "./add.js";
package/dist/index.js CHANGED
@@ -6,3 +6,4 @@ export { runDev } from "./dev.js";
6
6
  export { testProject } from "./test-command.js";
7
7
  export { buildSpk } from "./build-spk/generator.js";
8
8
  export { RecordingComposeRunner } from "./compose/runner.js";
9
+ export { addCapabilities } from "./add.js";
package/dist/info.d.ts CHANGED
@@ -1,16 +1,34 @@
1
1
  import type { ProjectRoot } from "./discovery.js";
2
- import type { NasHost } from "./host/types.js";
2
+ import type { NasHost, RootTaskInventory } from "./host/types.js";
3
+ import type { ExecutorInspection } from "./runtime/executor-inspect.js";
4
+ import type { RootTask } from "./standalone/root-window.js";
5
+ import { type UninstallCleanupItem } from "./runtime/uninstall-cleanup.js";
3
6
  export interface ProjectInfoOptions {
4
7
  project: ProjectRoot;
5
8
  host: NasHost;
6
9
  dev?: boolean;
7
10
  }
8
- export declare function projectInfo(options: ProjectInfoOptions): Promise<ProjectInfoResult>;
11
+ export interface CapabilityStatus {
12
+ name: string;
13
+ state: "ready" | "needs-admin-approval" | "unsupported" | "blocked";
14
+ reason: string;
15
+ }
9
16
  export interface ProjectInfoResult {
10
17
  packageIdentity: string;
11
18
  developmentInstance: boolean;
12
19
  openUrl?: string;
13
20
  readiness?: string;
14
21
  installed: boolean;
22
+ executor?: ExecutorInspection;
23
+ capabilities: CapabilityStatus[];
24
+ uninstallCleanup?: UninstallCleanupItem[];
15
25
  }
26
+ export declare function projectInfo(options: ProjectInfoOptions): Promise<ProjectInfoResult>;
27
+ /** Same task identity and exact script comparison used by the DSM root window. */
28
+ export declare function classifyRootTasks(expected: RootTask[], inventory?: RootTaskInventory): CapabilityStatus;
29
+ export declare function standaloneInfo(options: {
30
+ root: string;
31
+ host: NasHost;
32
+ dev?: boolean;
33
+ }): Promise<ProjectInfoResult>;
16
34
  export declare function formatProjectInfo(info: ProjectInfoResult): string;
package/dist/info.js CHANGED
@@ -1,6 +1,12 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
1
3
  import { loadContract } from "./contract/load.js";
2
4
  import { appOriginFromContract } from "./host/open-url.js";
3
5
  import { resolveDeployIdentity } from "./deploy/identity.js";
6
+ import { loadStandaloneManifest, } from "./standalone/manifest.js";
7
+ import { inspectSpk } from "./standalone/inspect-spk.js";
8
+ import { executorPolicy } from "./runtime/executor-policy.js";
9
+ import { uninstallCleanup } from "./runtime/uninstall-cleanup.js";
4
10
  export async function projectInfo(options) {
5
11
  const identity = resolveDeployIdentity(options.project, { dev: options.dev });
6
12
  const remote = await options.host.getInstalledPackageState?.(identity.packageId);
@@ -12,6 +18,138 @@ export async function projectInfo(options) {
12
18
  openUrl: appOriginFromContract(options.host.dsmOrigin, contract),
13
19
  readiness: remote?.status ?? (installed ? "UNKNOWN" : "NOT_INSTALLED"),
14
20
  installed,
21
+ capabilities: [],
22
+ };
23
+ }
24
+ /** Same task identity and exact script comparison used by the DSM root window. */
25
+ export function classifyRootTasks(expected, inventory) {
26
+ const result = (state, reason) => ({ name: "rootOps", state, reason });
27
+ if (inventory?.unsupported)
28
+ return result("unsupported", inventory.error ?? "DSM scheduler APIs are unavailable.");
29
+ if (!inventory || inventory.error ||
30
+ !Array.isArray(inventory.tasks) ||
31
+ !Number.isInteger(inventory.total) ||
32
+ inventory.total !== inventory.tasks.length ||
33
+ !expected.length)
34
+ return result("blocked", inventory?.error ?? "Complete scheduler readback is unavailable; open the DSM package UI to verify approval.");
35
+ let approval = false;
36
+ for (const task of expected) {
37
+ const named = inventory.tasks.filter((record) => record && record.name === task.name);
38
+ if (!named.length) {
39
+ approval = true;
40
+ continue;
41
+ }
42
+ if (named.length !== 1)
43
+ return result("blocked", `Conflicting root tasks: ${task.name}.`);
44
+ const actual = named[0];
45
+ const extra = actual.extra;
46
+ const boot = task.kind === "boot";
47
+ const script = boot ? actual.operation : extra?.script;
48
+ const rootOwner = actual.owner === "root" || (boot && actual.owner?.["0"] === "root");
49
+ if ((!boot && (!["string", "number"].includes(typeof actual.id) || !/^\d+$/.test(String(actual.id)))) ||
50
+ !rootOwner ||
51
+ (!boot && (actual.real_owner !== "root" || actual.enable !== false || actual.type !== "script")) ||
52
+ (boot && (actual.enable !== true || (actual.event ?? actual.trigger_event) !== "bootup" || actual.operation_type !== "script")) ||
53
+ typeof script !== "string")
54
+ return result("blocked", `Root task ownership or definition cannot be verified: ${task.name}.`);
55
+ if (script === task.script)
56
+ continue;
57
+ if (script.startsWith(task.header))
58
+ approval = true;
59
+ else
60
+ return result("blocked", `Root task conflicts with the pinned definition: ${task.name}.`);
61
+ }
62
+ return approval
63
+ ? result("needs-admin-approval", "Approve missing or outdated root tasks in the DSM package UI.")
64
+ : result("ready", "Boot and control tasks match the executor and policy digests. Executor health must be checked in the App window.");
65
+ }
66
+ async function rootCapability(m, host, version) {
67
+ const blocked = (reason) => ({
68
+ name: "rootOps",
69
+ state: "blocked",
70
+ reason,
71
+ });
72
+ if (!version)
73
+ return blocked("Installed package version cannot be matched to the local executor artifact.");
74
+ let arch;
75
+ try {
76
+ arch = await host.getArchFamily?.();
77
+ }
78
+ catch {
79
+ return blocked("NAS architecture readback failed; root readiness cannot be verified.");
80
+ }
81
+ if (!arch || !m.arches.includes(arch))
82
+ return blocked("NAS architecture cannot be matched to the local executor SPK artifact.");
83
+ const spk = join(m.root, "dist", `${m.package}-${version}-${arch}.spk`);
84
+ if (!existsSync(spk))
85
+ return blocked("Built executor SPK artifact is unavailable; build this installed version first.");
86
+ try {
87
+ const inspected = await inspectSpk(spk);
88
+ if (inspected.findings.length ||
89
+ inspected.package !== m.package ||
90
+ inspected.version !== version)
91
+ return blocked("Executor SPK artifact failed inspection or identity checks.");
92
+ if (!inspected.executor || JSON.stringify(inspected.executor.policy) !== JSON.stringify(executorPolicy(m)))
93
+ return blocked("Executor policy differs from source; rebuild and deploy before approval.");
94
+ const inventory = await host.getRootTaskInventory?.(m.package);
95
+ const classified = classifyRootTasks(inspected.executor.tasks, inventory);
96
+ const executor = { ...inspected.executor, tasks: inspected.executor.tasks.map(task => {
97
+ const one = classifyRootTasks([task], inventory);
98
+ return { ...task, state: one.state === "unsupported" ? "blocked" : one.state };
99
+ }) };
100
+ if (classified.state === "ready") {
101
+ const observed = await host.getExecutorStatus?.(m.package);
102
+ if (!observed || observed.ready !== true || observed.executor_digest !== executor.executorDigest || observed.policy_digest !== executor.policyDigest)
103
+ return { ...classified, executor, state: "blocked", reason: "Executor health or digest readback could not be verified." };
104
+ }
105
+ return { ...classified, executor };
106
+ }
107
+ catch {
108
+ return blocked("Executor SPK artifact or DSM root task readback could not be verified.");
109
+ }
110
+ }
111
+ export async function standaloneInfo(options) {
112
+ if (options.dev)
113
+ throw Object.assign(new Error("--dev is not supported for native-go/binary; choose a distinct package name at init"), { code: "DEVELOPMENT_INSTANCE_UNSUPPORTED" });
114
+ const loaded = loadStandaloneManifest(options.root);
115
+ if (!loaded.ok)
116
+ throw Object.assign(new Error(loaded.errors.map((e) => e.message).join("\n")), { code: loaded.errors[0].code });
117
+ const m = loaded.manifest;
118
+ const remote = await options.host.getInstalledPackageState?.(m.package);
119
+ const installed = await options.host.isPackageInstalled(m.package);
120
+ const capabilities = [];
121
+ let executor;
122
+ for (const name of ["files", "jobs", "identity", "rootOps", "delegate"]) {
123
+ if (!m.capabilities[name])
124
+ continue;
125
+ if (!installed)
126
+ capabilities.push({
127
+ name,
128
+ state: "blocked",
129
+ reason: "Package is not installed; deploy first.",
130
+ });
131
+ else if (name === "rootOps" || name === "delegate") {
132
+ const result = await rootCapability(m, options.host, remote?.version ?? (await options.host.getInstalledPackageVersion?.(m.package)));
133
+ executor = result.executor;
134
+ const { executor: ignored, ...capability } = result;
135
+ capabilities.push({ ...capability, name });
136
+ }
137
+ else
138
+ capabilities.push({
139
+ name,
140
+ state: "ready",
141
+ reason: "Installed package supports this capability without administrator approval.",
142
+ });
143
+ }
144
+ return {
145
+ packageIdentity: m.package,
146
+ developmentInstance: false,
147
+ installed,
148
+ readiness: remote?.status ?? (installed ? "UNKNOWN" : "NOT_INSTALLED"),
149
+ openUrl: `${options.host.dsmOrigin.replace(/\/$/, "")}/?launchApp=SYNO.SDS.${m.package}.Instance`,
150
+ capabilities,
151
+ ...(executor ? { executor } : {}),
152
+ uninstallCleanup: uninstallCleanup(m.package, Boolean(m.capabilities.rootOps || m.capabilities.delegate)),
15
153
  };
16
154
  }
17
155
  export function formatProjectInfo(info) {
@@ -21,6 +159,8 @@ export function formatProjectInfo(info) {
21
159
  `已安裝:${info.installed ? "是" : "否"}`,
22
160
  info.openUrl ? `Open URL:${info.openUrl}` : "Open URL:(未設定)",
23
161
  info.readiness ? `Readiness:${info.readiness}` : "",
162
+ ...info.capabilities.map((cap) => `能力 ${cap.name}:${cap.state} — ${cap.reason}`),
163
+ ...(info.uninstallCleanup ?? []).map(item => `Uninstall cleanup (if needed):${item.target} — ${item.condition} ${item.action}`),
24
164
  ]
25
165
  .filter(Boolean)
26
166
  .join("\n");
package/dist/init.d.ts CHANGED
@@ -10,17 +10,9 @@ export interface InitOptions {
10
10
  packageId?: string;
11
11
  /** Standalone templates: display name (default: from the directory name). */
12
12
  displayName?: string;
13
- /**
14
- * native-go: "root" adds administrator-approved root operations (default
15
- * "none"). With --integration, "root" is also what adds the privileged helper.
16
- */
17
- privilege?: "none" | "root";
18
13
  ui?: "plain" | "vue";
19
- integration?: "go" | "better-auth";
20
- /** native-go --ui vue: package-user background jobs (systemd user unit + sha256-v1 worker). */
21
- background?: boolean;
22
- /** native-go: interactive File Station routes through each caller's own DSM session, run by the package account. */
23
- fileStation?: boolean;
14
+ with?: string[];
15
+ from?: string;
24
16
  /** native-go: `install.sharedFolder` (select from the NAS, or create one). key defaults to "shared", permission to "rw". */
25
17
  sharedFolder?: {
26
18
  mode: "select" | "create";
@@ -28,10 +20,6 @@ export interface InitOptions {
28
20
  key?: string;
29
21
  permission?: "ro" | "rw";
30
22
  };
31
- /** Helper inventory protocol (needs privilege root); protocol 2 still refuses NAS data. */
32
- integrationProtocol?: 1 | 2;
33
- /** Protocol 2 policy (needs privilege root); unavailable adapters still refuse data. */
34
- dataAccess?: "unavailable" | "relaxed";
35
23
  }
36
24
  /**
37
25
  * Copy one template tree into a project. A template directory may carry a local
package/dist/init.js CHANGED
@@ -1,18 +1,19 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { parse, stringify } from "yaml";
3
+ import { capabilityNames, capabilitySettings } from "./capabilities.js";
1
4
  import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
2
5
  import { basename, join, relative } from "node:path";
3
6
  import { templatesRoot } from "./template-paths.js";
4
7
  import { resolveMinDsm, assertContainerMinDsm, DEFAULT_MIN_DSM, isDsmAtLeast } from "./build-spk/dsm-version.js";
5
8
  import { readSharedFolder } from "./standalone/shared-folder.js";
6
9
  const TEMPLATE_NAMES = [
7
- "hello-files",
8
- "compose-import",
10
+ "compose",
9
11
  "binary",
10
12
  "native-go",
11
13
  ];
12
14
  /** Templates whose App runs through the DSM docker-project resource worker. */
13
15
  const CONTAINER_TEMPLATES = [
14
- "hello-files",
15
- "compose-import",
16
+ "compose",
16
17
  ];
17
18
  /** The container templates need DSM 7.2.1 or later; native-go and binary need 7.1. */
18
19
  export function isContainerTemplate(template) {
@@ -25,18 +26,18 @@ export function listTemplates() {
25
26
  return [...TEMPLATE_NAMES];
26
27
  }
27
28
  /**
28
- * native-go --privilege root: files laid over the native-go template, and the
29
- * files they replace. An integration's helper brings its own root tasks, so
30
- * the whoami example is not added to it.
29
+ * native-go --with root-ops: files laid over the native-go template, and the
30
+ * files they replace.
31
31
  */
32
- const ROOT_OVERLAY = "native-go-root";
32
+ const ROOT_OVERLAY = "native-go-root-ops";
33
33
  const ROOT_REPLACED = ["backend/internal/app/root_none.go"];
34
- /** native-go --background: overlay with the routes, the UI panel and the docs. */
35
- const BACKGROUND_OVERLAY = "native-go-background";
34
+ /** native-go --with jobs: overlay with the routes, the UI panel and the docs. */
35
+ const BACKGROUND_OVERLAY = "native-go-jobs";
36
36
  const BACKGROUND_REPLACED = ["backend/internal/app/background_none.go"];
37
37
  /** Templates whose identity is filled in at init (placeholders in these files). */
38
38
  const SUBSTITUTED = {
39
39
  "native-go": ["dsm-package.yaml", "README.md"],
40
+ "binary": ["dsm-package.yaml", "ui/app.js"],
40
41
  };
41
42
  const PACKAGE_ID = /^[A-Za-z][A-Za-z0-9]{1,63}$/;
42
43
  /** npm never publishes files named .gitignore, so templates ship them as `gitignore`. */
@@ -55,6 +56,8 @@ function defaultDisplayName(dir) {
55
56
  function templateFiles(root, dir = root) {
56
57
  return readdirSync(dir).flatMap((name) => {
57
58
  const path = join(dir, name);
59
+ if (isTemplateBuildArtifact(path))
60
+ return [];
58
61
  if (statSync(path).isDirectory()) {
59
62
  return isTemplateBuildArtifact(path) ? [] : templateFiles(root, path);
60
63
  }
@@ -78,9 +81,20 @@ export function copyTemplateTree(source, target) {
78
81
  }
79
82
  function isTemplateBuildArtifact(path) {
80
83
  const name = basename(path);
81
- return name === "node_modules" || name === "dist";
84
+ return name === "node_modules" || name === "dist" || name === ".go-results.json";
82
85
  }
83
86
  export function initFromTemplate(template, targetDir, options = {}) {
87
+ if (!isTemplateName(template))
88
+ throw new Error(`[INIT_TEMPLATE_INVALID] 未知模板:${template}`);
89
+ const caps = capabilityNames(options.with ?? []);
90
+ if (caps.includes("login") && resolvedUi(template, options) === "plain")
91
+ throw new Error("[CAPABILITY_COMBINATION_INVALID] login 需要獨立登入頁;plain UI 不支援,請改用 --ui vue。");
92
+ if (options.from && template !== "compose")
93
+ throw new Error("[INIT_OPTIONS_UNSUPPORTED] --from 只適用於 compose。");
94
+ if (caps.length && template !== "native-go")
95
+ throw new Error("[CAPABILITY_UNSUPPORTED] binary/compose 不支援 --with 能力。");
96
+ const background = caps.includes("jobs") || caps.includes("delegate");
97
+ const executor = caps.includes("root-ops") || caps.includes("delegate");
84
98
  const source = join(templatesRoot(), template);
85
99
  if (!existsSync(source)) {
86
100
  throw new Error(`找不到模板:${template}`);
@@ -91,25 +105,24 @@ export function initFromTemplate(template, targetDir, options = {}) {
91
105
  }
92
106
  const substitutions = substitutionsFor(template, targetDir, options);
93
107
  const ui = resolvedUi(template, options);
94
- const privilege = options.privilege ?? "none";
95
- if (privilege === "root" && minDsm !== undefined && !isDsmAtLeast(minDsm, DEFAULT_MIN_DSM)) {
108
+ const rootExample = caps.includes("root-ops");
109
+ if (rootExample && minDsm !== undefined && !isDsmAtLeast(minDsm, DEFAULT_MIN_DSM)) {
96
110
  throw new Error(`[MIN_DSM_INVALID] root templates require DSM ${DEFAULT_MIN_DSM} or later.`);
97
111
  }
98
- const rootExample = privilege === "root" && !options.integration;
99
112
  const overlays = [
100
113
  ...(rootExample ? [ROOT_OVERLAY] : []),
101
114
  ...(ui === "vue" ? ["native-go-vue"] : []),
102
- ...(privilege === "root" ? ["native-go-authorization"] : []),
103
- ...(options.background ? [BACKGROUND_OVERLAY] : []),
104
- ...(options.integration ? ["native-go-integration"] : []),
105
- ...(options.integration === "better-auth" ? ["native-go-better-auth"] : []),
115
+ ...(background ? [BACKGROUND_OVERLAY] : []),
116
+ ...(caps.includes("login") && existsSync(join(templatesRoot(), "native-go-identity")) ? ["native-go-identity"] : []),
117
+ ...(caps.includes("files") && existsSync(join(templatesRoot(), "native-go-files")) ? ["native-go-files"] : []),
118
+ ...(caps.includes("delegate") ? ["native-go-delegate"] : []),
106
119
  ].map(name => join(templatesRoot(), name));
107
120
  // Shared legal resources also live in the CLI package; only the template
108
121
  // terms are an unconditional part of a generated project.
109
122
  const shared = join(templatesRoot(), "_shared");
110
- const files = [...templateFiles(source), "LICENSES/TEMPLATE.txt", ...overlays.flatMap(root => templateFiles(root)),
111
- ...(ui === "vue" ? ["frontend/third-party-notices.mjs"] : []),
112
- ...(options.integration === "better-auth" ? ["node/third-party-notices.mjs", ...templateFiles(join(shared, 'notice-overrides')).map(file => `node/notice-overrides/${file}`)] : [])];
123
+ const sharedFiles = ["LICENSES/TEMPLATE.txt", "AGENTS.md", "CLAUDE.md"];
124
+ const files = [...templateFiles(source), ...sharedFiles, ...overlays.flatMap(root => templateFiles(root)),
125
+ ...(ui === "vue" ? ["frontend/third-party-notices.mjs"] : [])];
113
126
  const collisions = files.map(targetName).filter((file) => existsSync(join(targetDir, file)));
114
127
  if (collisions.length > 0) {
115
128
  throw new Error(`[INIT_TARGET_NOT_EMPTY] ${targetDir} 已有 ${collisions.join(", ")};init 不會覆蓋既有檔案。請改用空目錄。`);
@@ -117,19 +130,28 @@ export function initFromTemplate(template, targetDir, options = {}) {
117
130
  mkdirSync(targetDir, { recursive: true });
118
131
  copyTemplateTree(source, targetDir);
119
132
  mkdirSync(join(targetDir, "LICENSES"), { recursive: true });
120
- cpSync(join(shared, "LICENSES/TEMPLATE.txt"), join(targetDir, "LICENSES/TEMPLATE.txt"));
133
+ for (const file of sharedFiles)
134
+ cpSync(join(shared, file), join(targetDir, file));
121
135
  for (const overlay of overlays)
122
136
  copyTemplateTree(overlay, targetDir);
123
- for (const dir of [...(ui === "vue" ? ["frontend"] : []), ...(options.integration === "better-auth" ? ["node"] : [])]) {
137
+ for (const dir of (ui === "vue" ? ["frontend"] : [])) {
124
138
  cpSync(join(shared, "third-party-notices.mjs"), join(targetDir, dir, "third-party-notices.mjs"));
125
139
  }
126
- if (options.integration === "better-auth")
127
- cpSync(join(shared, 'notice-overrides'), join(targetDir, 'node/notice-overrides'), { recursive: true });
128
- if (privilege === "root")
129
- rmSync(join(targetDir, "backend/internal/app/authorization_none.go"));
130
140
  if (rootExample)
131
141
  ROOT_REPLACED.forEach(file => rmSync(join(targetDir, file)));
132
- if (options.background)
142
+ if (caps.includes("delegate") && !rootExample) {
143
+ cpSync(join(templatesRoot(), ROOT_OVERLAY, "backend/internal/app/executor.go"), join(targetDir, "backend/internal/app/executor.go"));
144
+ cpSync(join(templatesRoot(), ROOT_OVERLAY, "backend/internal/app/executor_test.go"), join(targetDir, "backend/internal/app/executor_test.go"));
145
+ ROOT_REPLACED.forEach(file => rmSync(join(targetDir, file), { force: true }));
146
+ }
147
+ if (caps.includes("delegate")) {
148
+ rmSync(join(targetDir, "backend/internal/app/delegate_none.go"));
149
+ const path = join(targetDir, "backend/internal/api/permissions.json");
150
+ const policy = JSON.parse(readFileSync(path, "utf8"));
151
+ policy.methods["app.status"] = "authenticated";
152
+ writeFileSync(path, JSON.stringify(policy, null, 2) + "\n");
153
+ }
154
+ if (background)
133
155
  BACKGROUND_REPLACED.forEach(file => rmSync(join(targetDir, file)));
134
156
  for (const [from, to] of Object.entries(RENAMED)) {
135
157
  if (files.includes(from)) {
@@ -145,7 +167,7 @@ export function initFromTemplate(template, targetDir, options = {}) {
145
167
  writeFileSync(path, text);
146
168
  }
147
169
  if (minDsm) {
148
- const manifest = join(targetDir, template === "native-go" ? "dsm-package.yaml" : "synology-app.yaml");
170
+ const manifest = join(targetDir, template !== "compose" ? "dsm-package.yaml" : "synology-app.yaml");
149
171
  writeFileSync(manifest, readFileSync(manifest, "utf8").replace(/^os_min_ver:.*$/m, `os_min_ver: "${minDsm}"`));
150
172
  }
151
173
  if (ui === "vue") {
@@ -153,54 +175,51 @@ export function initFromTemplate(template, targetDir, options = {}) {
153
175
  writeFileSync(manifest, readFileSync(manifest, "utf8").replace(" dir: ui", " dir: frontend/dist\n build: {cwd: frontend, command: [npm, run, build]}"));
154
176
  rmSync(join(targetDir, "ui"), { recursive: true });
155
177
  }
156
- if (privilege === "root" && ui === "vue") {
157
- for (const entry of ["App.vue", "SDKApp.vue"]) {
158
- const app = join(targetDir, "frontend/src", entry);
159
- writeFileSync(app, readFileSync(app, "utf8")
160
- .replace("import AppShell from './shell/AppShell.vue'", "import AuthorizationGate from './authorization/AuthorizationGate.vue'\nimport AppShell from './shell/AppShell.vue'")
161
- .replace('<AppShell v-model="page"', '<AuthorizationGate :ctx="ctx" @ready="authorizationReady"><AppShell v-model="page"')
162
- .replace('onMounted(async()=>{\n props.ctx.reopen(()=>{if(!disposed) void refresh()})\n await refresh()', 'async function authorizationReady(){\n await refresh()')
163
- .replace('})\nonUnmounted', '}\nonMounted(()=>{if(!props.ctx.authorization){props.ctx.reopen(()=>{if(!disposed) void refresh()});void authorizationReady()}})\nonUnmounted')
164
- .replace('</AppShell>', '</AppShell></AuthorizationGate>'));
165
- }
166
- for (const entry of ["main.ts", "sdk-main.ts"]) {
167
- const main = join(targetDir, "frontend/src", entry);
168
- writeFileSync(main, readFileSync(main, "utf8").replace('{mount: typeof mount}', '{mount: typeof mount; authorizationUI?: boolean}').replace('{mount}', '{mount, authorizationUI: true}'));
169
- }
170
- for (const file of ["apps.test.ts", "nas-ui.test.ts", "shell-ui.test.ts", "shell-sdk.test.ts", "picker-wire.test.ts"]) {
171
- const test = join(targetDir, "frontend/test", file);
172
- const source = readFileSync(test, "utf8");
173
- writeFileSync(test, source + "\n// Test the application surface independently; authorization has its own contract suite.\nvi.mock('../src/authorization/AuthorizationGate.vue',()=>({default:{template:'<slot />'}}))\n");
174
- }
175
- }
176
178
  if (ui !== "vue")
177
179
  rmSync(join(targetDir, "frontend"), { recursive: true, force: true });
178
- if (options.background) {
179
- const manifest = join(targetDir, "dsm-package.yaml");
180
- writeFileSync(manifest, readFileSync(manifest, "utf8") + "\nbackground:\n worker: sha256-v1\n");
180
+ if (background) {
181
+ const routeTest = join(targetDir, "backend/internal/app/routes_test.go");
182
+ writeFileSync(routeTest, readFileSync(routeTest, "utf8").replace('want := ""', 'want := sampleOutcome[r.Method()]'));
183
+ }
184
+ if (executor) {
185
+ const path = join(targetDir, "backend/internal/app/routes_test.go");
186
+ writeFileSync(path, readFileSync(path, "utf8").replace('if strings.HasPrefix(r.Method(), "jobs.") {', 'if r.Method() == "executor.status" { want = "internal" }\n\t\tif r.Method() == "root.run" { want = "session_required" }\n\t\tif strings.HasPrefix(r.Method(), "jobs.") {'));
187
+ }
188
+ if (background && ui === "vue") {
181
189
  const app = join(targetDir, "frontend/src/App.vue");
182
190
  writeFileSync(app, readFileSync(app, "utf8")
183
- .replace("import NasUnavailable from './nas/NasUnavailable.vue'\n", "import NasUnavailable from './nas/NasUnavailable.vue'\nimport BackgroundPanel from './background/BackgroundPanel.vue'\n")
191
+ .replace("import AppShell from './shell/AppShell.vue'\n", "import AppShell from './shell/AppShell.vue'\nimport BackgroundPanel from './background/BackgroundPanel.vue'\n")
184
192
  .replace(" <!-- BACKGROUND_PANEL -->", " <BackgroundPanel v-if=\"app\" :key=\"app.user\" :ctx=\"ctx\" />"));
185
193
  }
186
- if (options.fileStation) {
187
- const manifest = join(targetDir, "dsm-package.yaml");
188
- writeFileSync(manifest, readFileSync(manifest, "utf8") + "\nfileStation: session\n");
194
+ if (template !== "compose") {
195
+ const path = join(targetDir, "dsm-package.yaml");
196
+ const raw = parse(readFileSync(path, "utf8"));
197
+ raw.capabilities = capabilitySettings(caps);
198
+ writeFileSync(path, stringify(raw));
199
+ }
200
+ if (template === "compose" && options.from) {
201
+ const imported = readFileSync(options.from, "utf8");
202
+ const compose = parse(imported);
203
+ if (!compose || typeof compose !== "object" || !compose.services)
204
+ throw new Error("[INIT_COMPOSE_INVALID] --from 需要包含 services 的 Compose YAML。");
205
+ writeFileSync(join(targetDir, "compose.yaml"), imported);
206
+ const path = join(targetDir, "synology-app.yaml");
207
+ const raw = parse(readFileSync(path, "utf8"));
208
+ delete raw.install;
209
+ writeFileSync(path, stringify(raw));
210
+ }
211
+ if (template === "binary") {
212
+ mkdirSync(join(targetDir, "prebuilt"), { recursive: true });
213
+ for (const [arch, goarch] of [["x86_64", "amd64"], ["aarch64", "arm64"]]) {
214
+ const result = spawnSync("go", ["build", "-trimpath", "-buildvcs=false", "-ldflags", "-s -w -buildid=", "-o", join(targetDir, "prebuilt", `api-${arch}`), "main.go"], { cwd: join(targetDir, "example"), env: { ...process.env, CGO_ENABLED: "0", GOOS: "linux", GOARCH: goarch }, encoding: "utf8" });
215
+ if (result.error || result.status !== 0)
216
+ throw new Error(`[INIT_BINARY_BUILD_FAILED] 安裝 Go 並重新 init,或提供自己的靜態 CGI binary。${result.stderr ?? result.error}`);
217
+ }
189
218
  }
190
219
  if (options.sharedFolder) {
191
220
  const manifest = join(targetDir, "dsm-package.yaml");
192
221
  writeFileSync(manifest, readFileSync(manifest, "utf8") + sharedFolderYaml(options.sharedFolder));
193
222
  }
194
- if (options.integration === "better-auth")
195
- rmSync(join(targetDir, "backend/internal/app/identity_none.go"));
196
- if (options.integration) {
197
- const mod = join(targetDir, "backend/go.mod");
198
- writeFileSync(mod, readFileSync(mod, "utf8").replace("go 1.24", "go 1.25"));
199
- const manifest = join(targetDir, "dsm-package.yaml");
200
- writeFileSync(manifest, readFileSync(manifest, "utf8") + `\nintegration:\n protocol: ${options.integrationProtocol ?? 1}\n workers: {}\n` + (options.integration === "better-auth" ? " identity: better-auth\n" : "") + (options.dataAccess ? ` dataAccess: ${options.dataAccess}\n` : ""));
201
- const routes = join(targetDir, "backend/internal/app/routes.go");
202
- writeFileSync(routes, readFileSync(routes, "utf8").replace("return append(routes, cfg.rootRoutes()...)", "routes = append(routes, cfg.integrationRoutes()...)\n\treturn append(routes, cfg.rootRoutes()...)"));
203
- }
204
223
  }
205
224
  /** The `install.sharedFolder` block, validated by the same reader build-spk uses. */
206
225
  function sharedFolderYaml(options) {
@@ -213,15 +232,9 @@ function sharedFolderYaml(options) {
213
232
  }
214
233
  function substitutionsFor(template, targetDir, options) {
215
234
  const ui = resolvedUi(template, options);
216
- if (options.privilege !== undefined && template !== "native-go") {
217
- throw new Error("[INIT_PRIVILEGE_UNSUPPORTED] --privilege 只適用於 -t native-go。");
218
- }
219
- if ((options.ui !== undefined || options.integration !== undefined) && template !== "native-go")
220
- throw new Error("[INIT_OPTIONS_UNSUPPORTED] --ui/--integration 只適用於 native-go。");
221
- if (options.background && (template !== "native-go" || ui !== "vue" || options.privilege === "root" || options.integration === "better-auth"))
222
- throw new Error("[INIT_BACKGROUND_OPTIONS] --background 只適用於 -t native-go 的 Vue UI(--ui vue,預設;--ui plain 不適用),且不能與 --privilege root 或 --integration better-auth 併用(背景 worker 只以套件帳號執行);可與 --integration go、--file-station 併用。");
223
- if (options.fileStation && (template !== "native-go" || (options.integration !== undefined && options.privilege === "root")))
224
- throw new Error("[INIT_FILESTATION_OPTIONS] --file-station 只適用於 -t native-go,且不能與 --privilege root 的 --integration 並用(helper 有自己的 File Station gate)。");
235
+ const caps = capabilityNames(options.with ?? []);
236
+ if (options.ui !== undefined && template !== "native-go")
237
+ throw new Error("[INIT_OPTIONS_UNSUPPORTED] --ui 只適用於 native-go。");
225
238
  if (options.sharedFolder) {
226
239
  if (template !== "native-go")
227
240
  throw new Error("[INIT_SHARED_FOLDER_INVALID] --shared-folder 只適用於 -t native-go。");
@@ -229,20 +242,6 @@ function substitutionsFor(template, targetDir, options) {
229
242
  }
230
243
  if (options.ui !== undefined && !["plain", "vue"].includes(options.ui))
231
244
  throw new Error("[INIT_UI_INVALID] --ui 只接受 plain 或 vue。");
232
- if (options.integration !== undefined && !["go", "better-auth"].includes(options.integration))
233
- throw new Error("[INIT_INTEGRATION_INVALID] --integration 只接受 go 或 better-auth。");
234
- if (options.dataAccess !== undefined && (!options.integration || options.integrationProtocol !== 2 || !["unavailable", "relaxed"].includes(options.dataAccess)))
235
- throw new Error("[INIT_DATA_ACCESS_INVALID] --data-access 只接受 unavailable 或 relaxed,且需要 --integration 與 --integration-protocol 2;缺少已認證 adapter 仍拒絕 NAS 操作。");
236
- if (options.integrationProtocol !== undefined && (!options.integration || ![1, 2].includes(options.integrationProtocol)))
237
- throw new Error("[INIT_INTEGRATION_PROTOCOL_INVALID] --integration-protocol 只接受 1 或 2,且需要 --integration;protocol 2 不啟用 NAS data path。");
238
- if (options.integration && ui !== "vue")
239
- throw new Error("[INIT_INTEGRATION_OPTIONS] integration 需要 Vue UI(--ui vue,預設);--ui plain 不適用。");
240
- if (options.integration && options.privilege !== "root" && (options.integrationProtocol !== undefined || options.dataAccess !== undefined))
241
- throw new Error("[INIT_INTEGRATION_HELPER_OPTIONS] --integration-protocol 與 --data-access 屬於 root helper,需要 --privilege root;沒有它時 integration 只以套件帳號執行,不含 helper。");
242
- const privilege = options.privilege ?? "none";
243
- if (privilege !== "none" && privilege !== "root") {
244
- throw new Error(`[INIT_PRIVILEGE_INVALID] --privilege 只接受 none 或 root,收到「${String(privilege)}」。`);
245
- }
246
245
  if (!SUBSTITUTED[template]) {
247
246
  return {};
248
247
  }
@@ -254,5 +253,5 @@ function substitutionsFor(template, targetDir, options) {
254
253
  if (displayName.trim() === "" || /[\r\n"\\]/.test(displayName)) {
255
254
  throw new Error("[INIT_DISPLAY_NAME_INVALID] 顯示名稱必須是單行,且不含 \" 或 \\。");
256
255
  }
257
- return { __PACKAGE__: packageId, __DISPLAY_NAME__: displayName, __PRIVILEGE__: privilege, __BACKGROUND_ENABLED__: options.background ? "true" : "false" };
256
+ return { __PACKAGE__: packageId, __DISPLAY_NAME__: displayName, __BACKGROUND_ENABLED__: caps.includes("jobs") || caps.includes("delegate") ? "true" : "false" };
258
257
  }
package/dist/inspect.js CHANGED
@@ -54,7 +54,7 @@ function collectRisks(compose, out) {
54
54
  return;
55
55
  }
56
56
  for (const { service, image } of collectUnpinnedImages(compose)) {
57
- out.push(`${service}: image ${image} is not pinned by digest (run \`synopkgland images pin\`; build-spk sets force_pull: true, so installs re-resolve the tag)`);
57
+ out.push(`${service}: image ${image} is not pinned by digest (run \`synopkgland images pin\`; build sets force_pull: true, so installs re-resolve the tag)`);
58
58
  }
59
59
  for (const [serviceName, service] of Object.entries(compose.services)) {
60
60
  if (service.privileged) {
package/dist/log.d.ts CHANGED
@@ -11,3 +11,8 @@ export interface FollowProjectLogsResult {
11
11
  diagnostics?: Record<string, unknown>;
12
12
  }
13
13
  export declare function followProjectLogs(options: FollowProjectLogsOptions): Promise<FollowProjectLogsResult>;
14
+ export declare function followStandaloneLogs(options: {
15
+ root: string;
16
+ host: NasHost;
17
+ dev?: boolean;
18
+ }): Promise<FollowProjectLogsResult>;
package/dist/log.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { loadStandaloneManifest } from "./standalone/manifest.js";
1
2
  import { resolveDeployIdentity } from "./deploy/identity.js";
2
3
  export async function followProjectLogs(options) {
3
4
  const identity = resolveDeployIdentity(options.project, { dev: options.dev });
@@ -17,3 +18,20 @@ export async function followProjectLogs(options) {
17
18
  },
18
19
  };
19
20
  }
21
+ export async function followStandaloneLogs(options) {
22
+ if (options.dev)
23
+ throw new Error("--dev is not supported for native-go/binary; choose a distinct package name at init");
24
+ const loaded = loadStandaloneManifest(options.root);
25
+ if (!loaded.ok)
26
+ throw Object.assign(new Error(loaded.errors.map((error) => error.message).join("\n")), { code: loaded.errors[0].code });
27
+ const packageIdentity = loaded.manifest.package;
28
+ if (!(await options.host.isPackageInstalled(packageIdentity)))
29
+ return { ok: false, lines: [], diagnostics: { code: "NOT_INSTALLED" } };
30
+ const lines = await options.host.fetchContainerLogs(packageIdentity);
31
+ const info = await options.host.getInstalledPackageState?.(packageIdentity);
32
+ return {
33
+ ok: true,
34
+ lines,
35
+ diagnostics: { packageIdentity, readiness: info?.status, redacted: true },
36
+ };
37
+ }
@@ -0,0 +1,22 @@
1
+ import type { NativeArchFamily } from '../build-spk/dsm-arch.js';
2
+ import type { CommandRunner } from '../standalone/build.js';
3
+ import type { StandaloneManifest } from '../standalone/manifest.js';
4
+ import { type ExecutorPolicy } from './executor-policy.js';
5
+ import { type ExecutorPins, type ExecutorTask } from './executor-tasks.js';
6
+ export interface ExecutorArtifact extends ExecutorPins {
7
+ binary: string;
8
+ lifecycleBinary: string;
9
+ policy: ExecutorPolicy;
10
+ policyText: string;
11
+ tasks: ExecutorTask[];
12
+ implementation: 'executor';
13
+ }
14
+ export declare function buildExecutor(m: StandaloneManifest, arch: NativeArchFamily, work: string, run: CommandRunner): ExecutorArtifact | undefined;
15
+ export declare function executorPlan(a: ExecutorArtifact): {
16
+ package: string;
17
+ executorDigest: string;
18
+ policyDigest: string;
19
+ policy: ExecutorPolicy;
20
+ tasks: ExecutorTask[];
21
+ implementation: "executor";
22
+ };