rubik 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. checksums.yaml +7 -0
  2. data/ATTRIBUTION.md +139 -0
  3. data/CHANGELOG.md +236 -0
  4. data/LICENSE +21 -0
  5. data/README.md +269 -0
  6. data/bin/rubik +82 -0
  7. data/lib/rubik/adapter/base.rb +195 -0
  8. data/lib/rubik/adapter/c.rb +36 -0
  9. data/lib/rubik/adapter/crystal.rb +78 -0
  10. data/lib/rubik/adapter/generic.rb +86 -0
  11. data/lib/rubik/adapter/go.rb +36 -0
  12. data/lib/rubik/adapter/node.rb +146 -0
  13. data/lib/rubik/adapter/process.rb +78 -0
  14. data/lib/rubik/adapter/python.rb +30 -0
  15. data/lib/rubik/adapter/registry.rb +81 -0
  16. data/lib/rubik/adapter/ruby.rb +30 -0
  17. data/lib/rubik/adapter/rust.rb +36 -0
  18. data/lib/rubik/adapter/zig.rb +36 -0
  19. data/lib/rubik/adapter.rb +18 -0
  20. data/lib/rubik/ast/body_loader.rb +19 -0
  21. data/lib/rubik/ast/c_extractor.rb +114 -0
  22. data/lib/rubik/ast/cache_store.rb +191 -0
  23. data/lib/rubik/ast/extractor.rb +59 -0
  24. data/lib/rubik/ast/fallback_cleaner.rb +145 -0
  25. data/lib/rubik/ast/go_extractor.rb +148 -0
  26. data/lib/rubik/ast/graph.rb +272 -0
  27. data/lib/rubik/ast/python_extractor.rb +120 -0
  28. data/lib/rubik/ast/ruby_extractor.rb +260 -0
  29. data/lib/rubik/ast/rust_extractor.rb +127 -0
  30. data/lib/rubik/ast/symbol.rb +103 -0
  31. data/lib/rubik/ast/treesitter/base_walker.rb +109 -0
  32. data/lib/rubik/ast/treesitter/c_walker.rb +122 -0
  33. data/lib/rubik/ast/treesitter/go_walker.rb +120 -0
  34. data/lib/rubik/ast/treesitter/python_walker.rb +107 -0
  35. data/lib/rubik/ast/treesitter/rust_walker.rb +130 -0
  36. data/lib/rubik/ast/treesitter/typescript_walker.rb +182 -0
  37. data/lib/rubik/ast/treesitter/zig_walker.rb +109 -0
  38. data/lib/rubik/ast/treesitter_extractor.rb +93 -0
  39. data/lib/rubik/ast/typescript_extractor.rb +283 -0
  40. data/lib/rubik/ast/zig_extractor.rb +116 -0
  41. data/lib/rubik/ast.rb +13 -0
  42. data/lib/rubik/benchmark/runner.rb +224 -0
  43. data/lib/rubik/benchmark/synth_repo.rb +59 -0
  44. data/lib/rubik/benchmark.rb +9 -0
  45. data/lib/rubik/buffer/diff.rb +43 -0
  46. data/lib/rubik/buffer/manager.rb +427 -0
  47. data/lib/rubik/buffer/path_validator.rb +60 -0
  48. data/lib/rubik/buffer/snapshot.rb +99 -0
  49. data/lib/rubik/buffer.rb +10 -0
  50. data/lib/rubik/coeffects.rb +129 -0
  51. data/lib/rubik/concurrency/boundary.rb +74 -0
  52. data/lib/rubik/concurrency/dns_pool.rb +68 -0
  53. data/lib/rubik/concurrency/errors.rb +17 -0
  54. data/lib/rubik/concurrency/event_loop.rb +441 -0
  55. data/lib/rubik/concurrency/join.rb +55 -0
  56. data/lib/rubik/concurrency/process_waiter.rb +55 -0
  57. data/lib/rubik/concurrency/scheduler.rb +84 -0
  58. data/lib/rubik/concurrency/timers.rb +109 -0
  59. data/lib/rubik/concurrency.rb +132 -0
  60. data/lib/rubik/config/deep_ops.rb +80 -0
  61. data/lib/rubik/config/defaults.rb +248 -0
  62. data/lib/rubik/config/model_catalog.rb +93 -0
  63. data/lib/rubik/config/store.rb +155 -0
  64. data/lib/rubik/config.rb +216 -0
  65. data/lib/rubik/context/git_info.rb +84 -0
  66. data/lib/rubik/context/git_lister.rb +37 -0
  67. data/lib/rubik/context/index.rb +134 -0
  68. data/lib/rubik/context/repo_context_reader.rb +121 -0
  69. data/lib/rubik/context/scanner.rb +439 -0
  70. data/lib/rubik/context.rb +11 -0
  71. data/lib/rubik/diagnostics/collector.rb +200 -0
  72. data/lib/rubik/diagnostics/entry.rb +60 -0
  73. data/lib/rubik/diagnostics/parser.rb +107 -0
  74. data/lib/rubik/diagnostics.rb +10 -0
  75. data/lib/rubik/event_bus.rb +56 -0
  76. data/lib/rubik/kernel/dispatcher.rb +171 -0
  77. data/lib/rubik/kernel/dmesg.rb +116 -0
  78. data/lib/rubik/kernel/init.rb +177 -0
  79. data/lib/rubik/kernel/record.rb +85 -0
  80. data/lib/rubik/kernel/unit.rb +160 -0
  81. data/lib/rubik/llm/anthropic.rb +202 -0
  82. data/lib/rubik/llm/chunk_assembler.rb +285 -0
  83. data/lib/rubik/llm/client.rb +526 -0
  84. data/lib/rubik/llm/formatter.rb +450 -0
  85. data/lib/rubik/llm/message_sanitizer.rb +87 -0
  86. data/lib/rubik/llm/ollama.rb +167 -0
  87. data/lib/rubik/llm/openai.rb +21 -0
  88. data/lib/rubik/llm/openai_compatible.rb +216 -0
  89. data/lib/rubik/llm/provider.rb +125 -0
  90. data/lib/rubik/llm/registry.rb +336 -0
  91. data/lib/rubik/llm/router.rb +100 -0
  92. data/lib/rubik/llm.rb +18 -0
  93. data/lib/rubik/log.rb +38 -0
  94. data/lib/rubik/lsp/client.rb +475 -0
  95. data/lib/rubik/lsp/manager.rb +366 -0
  96. data/lib/rubik/lsp.rb +9 -0
  97. data/lib/rubik/mcp/boot_lifecycle.rb +114 -0
  98. data/lib/rubik/mcp/client.rb +169 -0
  99. data/lib/rubik/mcp/errors.rb +11 -0
  100. data/lib/rubik/mcp/manager.rb +619 -0
  101. data/lib/rubik/mcp/proxy_tool.rb +104 -0
  102. data/lib/rubik/mcp/transport/stdio.rb +255 -0
  103. data/lib/rubik/mcp.rb +12 -0
  104. data/lib/rubik/orchestrator/activity_log.rb +75 -0
  105. data/lib/rubik/orchestrator/auto_apply.rb +166 -0
  106. data/lib/rubik/orchestrator/budget_manager.rb +97 -0
  107. data/lib/rubik/orchestrator/continuation_manager.rb +161 -0
  108. data/lib/rubik/orchestrator/finish_message_selector.rb +55 -0
  109. data/lib/rubik/orchestrator/goal_ledger/drift.rb +71 -0
  110. data/lib/rubik/orchestrator/goal_ledger/ledger.rb +399 -0
  111. data/lib/rubik/orchestrator/goal_ledger/observation_projection.rb +179 -0
  112. data/lib/rubik/orchestrator/goal_ledger/patch.rb +268 -0
  113. data/lib/rubik/orchestrator/goal_ledger/schema.rb +123 -0
  114. data/lib/rubik/orchestrator/goal_ledger/validator.rb +361 -0
  115. data/lib/rubik/orchestrator/goal_ledger/verifier.rb +129 -0
  116. data/lib/rubik/orchestrator/goal_ledger/verify_spec.rb +50 -0
  117. data/lib/rubik/orchestrator/goal_ledger.rb +65 -0
  118. data/lib/rubik/orchestrator/goal_state.rb +184 -0
  119. data/lib/rubik/orchestrator/goal_wait.rb +125 -0
  120. data/lib/rubik/orchestrator/loop.rb +388 -0
  121. data/lib/rubik/orchestrator/lsp_feedback.rb +55 -0
  122. data/lib/rubik/orchestrator/maestro_gate.rb +65 -0
  123. data/lib/rubik/orchestrator/provider_recovery.rb +90 -0
  124. data/lib/rubik/orchestrator/provider_resolver.rb +69 -0
  125. data/lib/rubik/orchestrator/shell_deps.rb +85 -0
  126. data/lib/rubik/orchestrator/step_executor.rb +328 -0
  127. data/lib/rubik/orchestrator/stream_manager.rb +118 -0
  128. data/lib/rubik/orchestrator/subagent/activation.rb +65 -0
  129. data/lib/rubik/orchestrator/subagent/budget.rb +108 -0
  130. data/lib/rubik/orchestrator/subagent/completion.rb +61 -0
  131. data/lib/rubik/orchestrator/subagent/concurrency_gate.rb +37 -0
  132. data/lib/rubik/orchestrator/subagent/conversation_id.rb +67 -0
  133. data/lib/rubik/orchestrator/subagent/dependency.rb +398 -0
  134. data/lib/rubik/orchestrator/subagent/instance.rb +384 -0
  135. data/lib/rubik/orchestrator/subagent/lifecycle.rb +118 -0
  136. data/lib/rubik/orchestrator/subagent/messaging.rb +61 -0
  137. data/lib/rubik/orchestrator/subagent/narration.rb +125 -0
  138. data/lib/rubik/orchestrator/subagent/notices.rb +209 -0
  139. data/lib/rubik/orchestrator/subagent/questioner.rb +80 -0
  140. data/lib/rubik/orchestrator/subagent/reaper.rb +98 -0
  141. data/lib/rubik/orchestrator/subagent/resilience.rb +70 -0
  142. data/lib/rubik/orchestrator/subagent/reuse.rb +127 -0
  143. data/lib/rubik/orchestrator/subagent/scoped_registry.rb +79 -0
  144. data/lib/rubik/orchestrator/subagent/step_runner.rb +240 -0
  145. data/lib/rubik/orchestrator/subagent/storage_id.rb +26 -0
  146. data/lib/rubik/orchestrator/subagent/supervisor.rb +327 -0
  147. data/lib/rubik/orchestrator/subagent/transcript_formatter.rb +141 -0
  148. data/lib/rubik/orchestrator/subagent/type_registry.rb +199 -0
  149. data/lib/rubik/orchestrator/subagent_notice_inbox.rb +80 -0
  150. data/lib/rubik/orchestrator/tool_call_id.rb +47 -0
  151. data/lib/rubik/orchestrator/tool_circuit_breaker.rb +91 -0
  152. data/lib/rubik/orchestrator/tool_history.rb +39 -0
  153. data/lib/rubik/orchestrator/turn_executor/subagent_channel.rb +102 -0
  154. data/lib/rubik/orchestrator/turn_executor/user_channel.rb +172 -0
  155. data/lib/rubik/orchestrator/turn_executor.rb +376 -0
  156. data/lib/rubik/orchestrator.rb +11 -0
  157. data/lib/rubik/platform/filesystem.rb +64 -0
  158. data/lib/rubik/platform/io_drain.rb +53 -0
  159. data/lib/rubik/platform/path.rb +210 -0
  160. data/lib/rubik/platform/process.rb +38 -0
  161. data/lib/rubik/platform/sanitize.rb +157 -0
  162. data/lib/rubik/platform.rb +113 -0
  163. data/lib/rubik/plugin/dsl.rb +51 -0
  164. data/lib/rubik/plugin/manager.rb +247 -0
  165. data/lib/rubik/plugin/storage.rb +195 -0
  166. data/lib/rubik/plugin.rb +10 -0
  167. data/lib/rubik/prompt/context_builder.rb +377 -0
  168. data/lib/rubik/prompt/context_compactor.rb +326 -0
  169. data/lib/rubik/prompt/conversation_rows.rb +74 -0
  170. data/lib/rubik/prompt/doctrine.rb +160 -0
  171. data/lib/rubik/prompt/emergency_compactor.rb +81 -0
  172. data/lib/rubik/prompt/services.rb +60 -0
  173. data/lib/rubik/prompt/token_estimator.rb +63 -0
  174. data/lib/rubik/prompt/tool_teachings.rb +78 -0
  175. data/lib/rubik/prompt.rb +13 -0
  176. data/lib/rubik/repair/loop.rb +95 -0
  177. data/lib/rubik/repair.rb +8 -0
  178. data/lib/rubik/repl/ast_warmup.rb +129 -0
  179. data/lib/rubik/repl/command_context.rb +214 -0
  180. data/lib/rubik/repl/command_parser.rb +48 -0
  181. data/lib/rubik/repl/commands/agent.rb +30 -0
  182. data/lib/rubik/repl/commands/agent_context.rb +289 -0
  183. data/lib/rubik/repl/commands/agent_execution.rb +342 -0
  184. data/lib/rubik/repl/commands/agent_models.rb +212 -0
  185. data/lib/rubik/repl/commands/agent_providers.rb +232 -0
  186. data/lib/rubik/repl/commands/base.rb +55 -0
  187. data/lib/rubik/repl/commands/buffer.rb +124 -0
  188. data/lib/rubik/repl/commands/dmesg.rb +87 -0
  189. data/lib/rubik/repl/commands/lsp.rb +235 -0
  190. data/lib/rubik/repl/commands/mcp.rb +194 -0
  191. data/lib/rubik/repl/commands/plugins.rb +208 -0
  192. data/lib/rubik/repl/commands/pruner.rb +71 -0
  193. data/lib/rubik/repl/commands/session.rb +183 -0
  194. data/lib/rubik/repl/commands/skills.rb +111 -0
  195. data/lib/rubik/repl/commands/storage.rb +85 -0
  196. data/lib/rubik/repl/commands/subagents.rb +195 -0
  197. data/lib/rubik/repl/commands/system.rb +85 -0
  198. data/lib/rubik/repl/commands/tasks.rb +120 -0
  199. data/lib/rubik/repl/commands/workspace.rb +443 -0
  200. data/lib/rubik/repl/commands.rb +44 -0
  201. data/lib/rubik/repl/composition.rb +32 -0
  202. data/lib/rubik/repl/config_wiring.rb +142 -0
  203. data/lib/rubik/repl/confirmations.rb +56 -0
  204. data/lib/rubik/repl/hooks.rb +47 -0
  205. data/lib/rubik/repl/input_execution.rb +323 -0
  206. data/lib/rubik/repl/input_loop.rb +213 -0
  207. data/lib/rubik/repl/interrupt_handler.rb +217 -0
  208. data/lib/rubik/repl/lifecycle.rb +410 -0
  209. data/lib/rubik/repl/paste_support.rb +88 -0
  210. data/lib/rubik/repl/pending_notice_queue.rb +60 -0
  211. data/lib/rubik/repl/presentation.rb +132 -0
  212. data/lib/rubik/repl/pruner/brief.rb +101 -0
  213. data/lib/rubik/repl/pruner/gate.rb +279 -0
  214. data/lib/rubik/repl/pruner/harness.rb +236 -0
  215. data/lib/rubik/repl/pruner/rules.rb +316 -0
  216. data/lib/rubik/repl/pruner/service.rb +82 -0
  217. data/lib/rubik/repl/pruner.rb +39 -0
  218. data/lib/rubik/repl/service_catalog.rb +374 -0
  219. data/lib/rubik/repl/setup_factories.rb +66 -0
  220. data/lib/rubik/repl/shell.rb +231 -0
  221. data/lib/rubik/repl/step_formatter.rb +324 -0
  222. data/lib/rubik/repl/tee_io.rb +105 -0
  223. data/lib/rubik/repl/terminal_guard.rb +157 -0
  224. data/lib/rubik/repl/turn_recorder.rb +234 -0
  225. data/lib/rubik/repl.rb +14 -0
  226. data/lib/rubik/runtime/ast_service.rb +78 -0
  227. data/lib/rubik/runtime/context.rb +335 -0
  228. data/lib/rubik/runtime/diagnostic_engine.rb +188 -0
  229. data/lib/rubik/runtime/discovery.rb +342 -0
  230. data/lib/rubik/runtime/fiber.rb +142 -0
  231. data/lib/rubik/runtime/fiber_ordering.rb +52 -0
  232. data/lib/rubik/runtime/fiber_retry_gate.rb +84 -0
  233. data/lib/rubik/runtime/index_service.rb +58 -0
  234. data/lib/rubik/runtime/loop_service.rb +73 -0
  235. data/lib/rubik/runtime/manager.rb +241 -0
  236. data/lib/rubik/runtime/overlay_storage.rb +481 -0
  237. data/lib/rubik/runtime/service_definition.rb +54 -0
  238. data/lib/rubik/runtime/service_registration.rb +33 -0
  239. data/lib/rubik/runtime/task_manager.rb +302 -0
  240. data/lib/rubik/runtime.rb +19 -0
  241. data/lib/rubik/sandbox/driver/base.rb +30 -0
  242. data/lib/rubik/sandbox/driver/bubblewrap.rb +111 -0
  243. data/lib/rubik/sandbox/driver/docker.rb +113 -0
  244. data/lib/rubik/sandbox/driver/podman.rb +98 -0
  245. data/lib/rubik/sandbox/driver/process.rb +190 -0
  246. data/lib/rubik/sandbox/driver.rb +91 -0
  247. data/lib/rubik/sandbox/runner.rb +218 -0
  248. data/lib/rubik/sandbox/shell_resolver.rb +178 -0
  249. data/lib/rubik/sandbox.rb +8 -0
  250. data/lib/rubik/security/blocked_guidance.rb +187 -0
  251. data/lib/rubik/security/classifier/classifier.rb +440 -0
  252. data/lib/rubik/security/classifier/commands/agent-browser.yaml +9 -0
  253. data/lib/rubik/security/classifier/commands/apt.yaml +25 -0
  254. data/lib/rubik/security/classifier/commands/awk.yaml +10 -0
  255. data/lib/rubik/security/classifier/commands/basename.yaml +7 -0
  256. data/lib/rubik/security/classifier/commands/bash-classify.yaml +8 -0
  257. data/lib/rubik/security/classifier/commands/bash.yaml +20 -0
  258. data/lib/rubik/security/classifier/commands/black.yaml +12 -0
  259. data/lib/rubik/security/classifier/commands/brew.yaml +31 -0
  260. data/lib/rubik/security/classifier/commands/builtin.yaml +8 -0
  261. data/lib/rubik/security/classifier/commands/cargo.yaml +114 -0
  262. data/lib/rubik/security/classifier/commands/cat.yaml +7 -0
  263. data/lib/rubik/security/classifier/commands/chgrp.yaml +10 -0
  264. data/lib/rubik/security/classifier/commands/chmod.yaml +10 -0
  265. data/lib/rubik/security/classifier/commands/chown.yaml +10 -0
  266. data/lib/rubik/security/classifier/commands/column.yaml +7 -0
  267. data/lib/rubik/security/classifier/commands/comm.yaml +7 -0
  268. data/lib/rubik/security/classifier/commands/command.yaml +12 -0
  269. data/lib/rubik/security/classifier/commands/cp.yaml +7 -0
  270. data/lib/rubik/security/classifier/commands/crystal.yaml +63 -0
  271. data/lib/rubik/security/classifier/commands/curl.yaml +30 -0
  272. data/lib/rubik/security/classifier/commands/cut.yaml +7 -0
  273. data/lib/rubik/security/classifier/commands/date.yaml +10 -0
  274. data/lib/rubik/security/classifier/commands/df.yaml +7 -0
  275. data/lib/rubik/security/classifier/commands/diff.yaml +7 -0
  276. data/lib/rubik/security/classifier/commands/dig.yaml +7 -0
  277. data/lib/rubik/security/classifier/commands/dirname.yaml +7 -0
  278. data/lib/rubik/security/classifier/commands/docker.yaml +177 -0
  279. data/lib/rubik/security/classifier/commands/du.yaml +7 -0
  280. data/lib/rubik/security/classifier/commands/echo.yaml +7 -0
  281. data/lib/rubik/security/classifier/commands/env.yaml +15 -0
  282. data/lib/rubik/security/classifier/commands/eslint.yaml +12 -0
  283. data/lib/rubik/security/classifier/commands/eval.yaml +8 -0
  284. data/lib/rubik/security/classifier/commands/exec.yaml +12 -0
  285. data/lib/rubik/security/classifier/commands/expand.yaml +7 -0
  286. data/lib/rubik/security/classifier/commands/false.yaml +7 -0
  287. data/lib/rubik/security/classifier/commands/file.yaml +7 -0
  288. data/lib/rubik/security/classifier/commands/find.yaml +25 -0
  289. data/lib/rubik/security/classifier/commands/fmt.yaml +7 -0
  290. data/lib/rubik/security/classifier/commands/fold.yaml +7 -0
  291. data/lib/rubik/security/classifier/commands/free.yaml +7 -0
  292. data/lib/rubik/security/classifier/commands/gawk.yaml +10 -0
  293. data/lib/rubik/security/classifier/commands/gcloud.yaml +979 -0
  294. data/lib/rubik/security/classifier/commands/gh.yaml +615 -0
  295. data/lib/rubik/security/classifier/commands/git.yaml +524 -0
  296. data/lib/rubik/security/classifier/commands/glab-discussion.yaml +21 -0
  297. data/lib/rubik/security/classifier/commands/glab.yaml +807 -0
  298. data/lib/rubik/security/classifier/commands/go.yaml +44 -0
  299. data/lib/rubik/security/classifier/commands/gog.yaml +983 -0
  300. data/lib/rubik/security/classifier/commands/gradle.yaml +92 -0
  301. data/lib/rubik/security/classifier/commands/gradlew.yaml +92 -0
  302. data/lib/rubik/security/classifier/commands/grep.yaml +7 -0
  303. data/lib/rubik/security/classifier/commands/groups.yaml +7 -0
  304. data/lib/rubik/security/classifier/commands/gunzip.yaml +8 -0
  305. data/lib/rubik/security/classifier/commands/gws.yaml +211 -0
  306. data/lib/rubik/security/classifier/commands/gzip.yaml +7 -0
  307. data/lib/rubik/security/classifier/commands/hadolint.yaml +9 -0
  308. data/lib/rubik/security/classifier/commands/halt.yaml +8 -0
  309. data/lib/rubik/security/classifier/commands/head.yaml +7 -0
  310. data/lib/rubik/security/classifier/commands/helm.yaml +129 -0
  311. data/lib/rubik/security/classifier/commands/hostname.yaml +7 -0
  312. data/lib/rubik/security/classifier/commands/id.yaml +7 -0
  313. data/lib/rubik/security/classifier/commands/install.yaml +7 -0
  314. data/lib/rubik/security/classifier/commands/isort.yaml +14 -0
  315. data/lib/rubik/security/classifier/commands/java.yaml +35 -0
  316. data/lib/rubik/security/classifier/commands/javac.yaml +39 -0
  317. data/lib/rubik/security/classifier/commands/join.yaml +7 -0
  318. data/lib/rubik/security/classifier/commands/journalctl.yaml +14 -0
  319. data/lib/rubik/security/classifier/commands/jq.yaml +7 -0
  320. data/lib/rubik/security/classifier/commands/kill.yaml +7 -0
  321. data/lib/rubik/security/classifier/commands/killall.yaml +7 -0
  322. data/lib/rubik/security/classifier/commands/kubectl.yaml +211 -0
  323. data/lib/rubik/security/classifier/commands/less.yaml +7 -0
  324. data/lib/rubik/security/classifier/commands/ln.yaml +7 -0
  325. data/lib/rubik/security/classifier/commands/ls.yaml +7 -0
  326. data/lib/rubik/security/classifier/commands/make.yaml +21 -0
  327. data/lib/rubik/security/classifier/commands/md5sum.yaml +7 -0
  328. data/lib/rubik/security/classifier/commands/mise.yaml +579 -0
  329. data/lib/rubik/security/classifier/commands/mkdir.yaml +8 -0
  330. data/lib/rubik/security/classifier/commands/more.yaml +7 -0
  331. data/lib/rubik/security/classifier/commands/mv.yaml +7 -0
  332. data/lib/rubik/security/classifier/commands/mvn.yaml +83 -0
  333. data/lib/rubik/security/classifier/commands/mvnw.yaml +83 -0
  334. data/lib/rubik/security/classifier/commands/mypy.yaml +9 -0
  335. data/lib/rubik/security/classifier/commands/netstat.yaml +7 -0
  336. data/lib/rubik/security/classifier/commands/nice.yaml +11 -0
  337. data/lib/rubik/security/classifier/commands/nl.yaml +7 -0
  338. data/lib/rubik/security/classifier/commands/node.yaml +20 -0
  339. data/lib/rubik/security/classifier/commands/nohup.yaml +9 -0
  340. data/lib/rubik/security/classifier/commands/npm.yaml +71 -0
  341. data/lib/rubik/security/classifier/commands/npx.yaml +42 -0
  342. data/lib/rubik/security/classifier/commands/nslookup.yaml +7 -0
  343. data/lib/rubik/security/classifier/commands/paste.yaml +7 -0
  344. data/lib/rubik/security/classifier/commands/ping.yaml +7 -0
  345. data/lib/rubik/security/classifier/commands/pip.yaml +33 -0
  346. data/lib/rubik/security/classifier/commands/pip3.yaml +33 -0
  347. data/lib/rubik/security/classifier/commands/pipx.yaml +33 -0
  348. data/lib/rubik/security/classifier/commands/pkill.yaml +7 -0
  349. data/lib/rubik/security/classifier/commands/pnpm.yaml +346 -0
  350. data/lib/rubik/security/classifier/commands/poetry.yaml +97 -0
  351. data/lib/rubik/security/classifier/commands/poweroff.yaml +8 -0
  352. data/lib/rubik/security/classifier/commands/prettier.yaml +13 -0
  353. data/lib/rubik/security/classifier/commands/printenv.yaml +7 -0
  354. data/lib/rubik/security/classifier/commands/printf.yaml +7 -0
  355. data/lib/rubik/security/classifier/commands/ps.yaml +7 -0
  356. data/lib/rubik/security/classifier/commands/pup.yaml +882 -0
  357. data/lib/rubik/security/classifier/commands/pwd.yaml +7 -0
  358. data/lib/rubik/security/classifier/commands/pytest.yaml +7 -0
  359. data/lib/rubik/security/classifier/commands/python.yaml +9 -0
  360. data/lib/rubik/security/classifier/commands/python3.yaml +9 -0
  361. data/lib/rubik/security/classifier/commands/read.yaml +7 -0
  362. data/lib/rubik/security/classifier/commands/readlink.yaml +7 -0
  363. data/lib/rubik/security/classifier/commands/realpath.yaml +7 -0
  364. data/lib/rubik/security/classifier/commands/reboot.yaml +8 -0
  365. data/lib/rubik/security/classifier/commands/rev.yaml +7 -0
  366. data/lib/rubik/security/classifier/commands/rg.yaml +7 -0
  367. data/lib/rubik/security/classifier/commands/rm.yaml +8 -0
  368. data/lib/rubik/security/classifier/commands/rsync.yaml +12 -0
  369. data/lib/rubik/security/classifier/commands/rtk.yaml +140 -0
  370. data/lib/rubik/security/classifier/commands/ruff.yaml +29 -0
  371. data/lib/rubik/security/classifier/commands/rustfmt.yaml +14 -0
  372. data/lib/rubik/security/classifier/commands/scp.yaml +7 -0
  373. data/lib/rubik/security/classifier/commands/sed.yaml +14 -0
  374. data/lib/rubik/security/classifier/commands/seq.yaml +7 -0
  375. data/lib/rubik/security/classifier/commands/sh.yaml +14 -0
  376. data/lib/rubik/security/classifier/commands/sha1sum.yaml +7 -0
  377. data/lib/rubik/security/classifier/commands/sha256sum.yaml +7 -0
  378. data/lib/rubik/security/classifier/commands/shellcheck.yaml +10 -0
  379. data/lib/rubik/security/classifier/commands/shutdown.yaml +8 -0
  380. data/lib/rubik/security/classifier/commands/slack.yaml +113 -0
  381. data/lib/rubik/security/classifier/commands/sleep.yaml +8 -0
  382. data/lib/rubik/security/classifier/commands/snip.yaml +79 -0
  383. data/lib/rubik/security/classifier/commands/sort.yaml +10 -0
  384. data/lib/rubik/security/classifier/commands/ss.yaml +7 -0
  385. data/lib/rubik/security/classifier/commands/ssh.yaml +41 -0
  386. data/lib/rubik/security/classifier/commands/stat.yaml +7 -0
  387. data/lib/rubik/security/classifier/commands/stdbuf.yaml +15 -0
  388. data/lib/rubik/security/classifier/commands/strace.yaml +20 -0
  389. data/lib/rubik/security/classifier/commands/strings.yaml +11 -0
  390. data/lib/rubik/security/classifier/commands/sudo.yaml +24 -0
  391. data/lib/rubik/security/classifier/commands/systemctl.yaml +58 -0
  392. data/lib/rubik/security/classifier/commands/systemd-run.yaml +30 -0
  393. data/lib/rubik/security/classifier/commands/tac.yaml +7 -0
  394. data/lib/rubik/security/classifier/commands/tail.yaml +7 -0
  395. data/lib/rubik/security/classifier/commands/tar.yaml +25 -0
  396. data/lib/rubik/security/classifier/commands/tee.yaml +8 -0
  397. data/lib/rubik/security/classifier/commands/terraform.yaml +70 -0
  398. data/lib/rubik/security/classifier/commands/test.yaml +7 -0
  399. data/lib/rubik/security/classifier/commands/time.yaml +8 -0
  400. data/lib/rubik/security/classifier/commands/timeout.yaml +18 -0
  401. data/lib/rubik/security/classifier/commands/top.yaml +7 -0
  402. data/lib/rubik/security/classifier/commands/touch.yaml +8 -0
  403. data/lib/rubik/security/classifier/commands/tr.yaml +7 -0
  404. data/lib/rubik/security/classifier/commands/traceroute.yaml +7 -0
  405. data/lib/rubik/security/classifier/commands/true.yaml +7 -0
  406. data/lib/rubik/security/classifier/commands/tsc.yaml +16 -0
  407. data/lib/rubik/security/classifier/commands/type.yaml +7 -0
  408. data/lib/rubik/security/classifier/commands/uname.yaml +7 -0
  409. data/lib/rubik/security/classifier/commands/unexpand.yaml +7 -0
  410. data/lib/rubik/security/classifier/commands/uniq.yaml +7 -0
  411. data/lib/rubik/security/classifier/commands/unzip.yaml +10 -0
  412. data/lib/rubik/security/classifier/commands/uptime.yaml +7 -0
  413. data/lib/rubik/security/classifier/commands/uv.yaml +156 -0
  414. data/lib/rubik/security/classifier/commands/wait.yaml +11 -0
  415. data/lib/rubik/security/classifier/commands/wc.yaml +7 -0
  416. data/lib/rubik/security/classifier/commands/wget.yaml +7 -0
  417. data/lib/rubik/security/classifier/commands/whereis.yaml +7 -0
  418. data/lib/rubik/security/classifier/commands/which.yaml +7 -0
  419. data/lib/rubik/security/classifier/commands/whoami.yaml +7 -0
  420. data/lib/rubik/security/classifier/commands/xargs.yaml +26 -0
  421. data/lib/rubik/security/classifier/commands/xmllint.yaml +7 -0
  422. data/lib/rubik/security/classifier/commands/yarn.yaml +72 -0
  423. data/lib/rubik/security/classifier/commands/yes.yaml +7 -0
  424. data/lib/rubik/security/classifier/commands/yq.yaml +10 -0
  425. data/lib/rubik/security/classifier/commands/zip.yaml +8 -0
  426. data/lib/rubik/security/classifier/commands/zsh.yaml +14 -0
  427. data/lib/rubik/security/classifier/database.rb +216 -0
  428. data/lib/rubik/security/classifier/matcher/delegation.rb +190 -0
  429. data/lib/rubik/security/classifier/matcher/options.rb +245 -0
  430. data/lib/rubik/security/classifier/matcher/subcommands.rb +103 -0
  431. data/lib/rubik/security/classifier/matcher.rb +249 -0
  432. data/lib/rubik/security/classifier/models.rb +170 -0
  433. data/lib/rubik/security/classifier/parser.rb +23 -0
  434. data/lib/rubik/security/classifier/parsers/bash.rb +280 -0
  435. data/lib/rubik/security/classifier/parsers/bash_extractors.rb +221 -0
  436. data/lib/rubik/security/classifier/parsers/powershell.rb +185 -0
  437. data/lib/rubik/security/classifier/pwsh_rules.rb +224 -0
  438. data/lib/rubik/security/classifier.rb +25 -0
  439. data/lib/rubik/security/errors.rb +39 -0
  440. data/lib/rubik/security/guard.rb +954 -0
  441. data/lib/rubik/security/redactor.rb +89 -0
  442. data/lib/rubik/security.rb +11 -0
  443. data/lib/rubik/session/manager.rb +331 -0
  444. data/lib/rubik/session/recorder.rb +149 -0
  445. data/lib/rubik/session/replayer.rb +65 -0
  446. data/lib/rubik/session.rb +10 -0
  447. data/lib/rubik/skills/frontmatter.rb +41 -0
  448. data/lib/rubik/skills/manager.rb +223 -0
  449. data/lib/rubik/skills/registry.rb +64 -0
  450. data/lib/rubik/skills/skill.rb +33 -0
  451. data/lib/rubik/skills/storage.rb +77 -0
  452. data/lib/rubik/skills/validator.rb +116 -0
  453. data/lib/rubik/skills.rb +20 -0
  454. data/lib/rubik/storage/folding.rb +23 -0
  455. data/lib/rubik/storage/layout.rb +145 -0
  456. data/lib/rubik/storage/render.rb +97 -0
  457. data/lib/rubik/storage/service.rb +42 -0
  458. data/lib/rubik/storage/store.rb +514 -0
  459. data/lib/rubik/storage/transcript_indexer.rb +116 -0
  460. data/lib/rubik/storage/uri_reader.rb +168 -0
  461. data/lib/rubik/storage/vakanuvis/annal_writer.rb +92 -0
  462. data/lib/rubik/storage/vakanuvis/distill_gate.rb +323 -0
  463. data/lib/rubik/storage/vakanuvis/gate.rb +250 -0
  464. data/lib/rubik/storage/vakanuvis/harness.rb +421 -0
  465. data/lib/rubik/storage/vakanuvis/memory_steward.rb +163 -0
  466. data/lib/rubik/storage/vakanuvis/service.rb +69 -0
  467. data/lib/rubik/storage/vakanuvis/vocabulary.rb +99 -0
  468. data/lib/rubik/storage/vakanuvis/wiki_skeleton.rb +67 -0
  469. data/lib/rubik/storage/vakanuvis.rb +77 -0
  470. data/lib/rubik/storage.rb +29 -0
  471. data/lib/rubik/tools/base.rb +107 -0
  472. data/lib/rubik/tools/builtins/dmesg.rb +74 -0
  473. data/lib/rubik/tools/builtins/exec.rb +293 -0
  474. data/lib/rubik/tools/builtins/files.rb +354 -0
  475. data/lib/rubik/tools/builtins/goal_ledger.rb +89 -0
  476. data/lib/rubik/tools/builtins/grep.rb +281 -0
  477. data/lib/rubik/tools/builtins/interactive.rb +175 -0
  478. data/lib/rubik/tools/builtins/lifecycle.rb +359 -0
  479. data/lib/rubik/tools/builtins/lsp.rb +283 -0
  480. data/lib/rubik/tools/builtins/pruner.rb +88 -0
  481. data/lib/rubik/tools/builtins/runtime.rb +120 -0
  482. data/lib/rubik/tools/builtins/send_message.rb +109 -0
  483. data/lib/rubik/tools/builtins/show_file.rb +84 -0
  484. data/lib/rubik/tools/builtins/skill.rb +72 -0
  485. data/lib/rubik/tools/builtins/storage.rb +232 -0
  486. data/lib/rubik/tools/builtins/subagent.rb +356 -0
  487. data/lib/rubik/tools/builtins/subagent_lifecycle.rb +72 -0
  488. data/lib/rubik/tools/builtins/symbols.rb +209 -0
  489. data/lib/rubik/tools/builtins/synthesis.rb +314 -0
  490. data/lib/rubik/tools/builtins/task.rb +168 -0
  491. data/lib/rubik/tools/builtins/unsynthesize.rb +111 -0
  492. data/lib/rubik/tools/builtins/vakanuvis.rb +161 -0
  493. data/lib/rubik/tools/builtins.rb +30 -0
  494. data/lib/rubik/tools/catalog.rb +70 -0
  495. data/lib/rubik/tools/declaration.rb +90 -0
  496. data/lib/rubik/tools/diagnostic_reporter.rb +283 -0
  497. data/lib/rubik/tools/fuzzy_matcher.rb +172 -0
  498. data/lib/rubik/tools/native_search.rb +180 -0
  499. data/lib/rubik/tools/output.rb +54 -0
  500. data/lib/rubik/tools/preflight_runner.rb +209 -0
  501. data/lib/rubik/tools/registry.rb +247 -0
  502. data/lib/rubik/tools/result.rb +71 -0
  503. data/lib/rubik/tools/services.rb +96 -0
  504. data/lib/rubik/tools/truncator.rb +78 -0
  505. data/lib/rubik/tools/uri_resolver.rb +195 -0
  506. data/lib/rubik/tools.rb +14 -0
  507. data/lib/rubik/ui/approvals.rb +52 -0
  508. data/lib/rubik/ui/banner.rb +43 -0
  509. data/lib/rubik/ui/capability.rb +122 -0
  510. data/lib/rubik/ui/dialog.rb +106 -0
  511. data/lib/rubik/ui/diff_viewer.rb +78 -0
  512. data/lib/rubik/ui/frame.rb +95 -0
  513. data/lib/rubik/ui/markdown_stream.rb +107 -0
  514. data/lib/rubik/ui/panel.rb +98 -0
  515. data/lib/rubik/ui/renderer.rb +206 -0
  516. data/lib/rubik/ui/spinner.rb +120 -0
  517. data/lib/rubik/ui/statusline.rb +134 -0
  518. data/lib/rubik/ui/theme.rb +118 -0
  519. data/lib/rubik/ui.rb +57 -0
  520. data/lib/rubik/uris.rb +101 -0
  521. data/lib/rubik/version.rb +5 -0
  522. data/lib/rubik.rb +65 -0
  523. metadata +770 -0
@@ -0,0 +1,979 @@
1
+ # $schema: ../../../schemas/command.schema.json
2
+ command: gcloud
3
+ description: "Google Cloud CLI"
4
+ classification: EXTERNAL_EFFECTS
5
+ strict: false
6
+ global_options:
7
+ --help: {overrides: READONLY}
8
+ -h: {overrides: READONLY}
9
+ --version: {overrides: READONLY}
10
+ -v: {overrides: READONLY}
11
+ --account: {takes_value: true}
12
+ --billing-project: {takes_value: true}
13
+ --configuration: {takes_value: true}
14
+ --flags-file: {takes_value: true}
15
+ --flatten: {takes_value: true}
16
+ --format: {takes_value: true}
17
+ --project: {takes_value: true}
18
+ --quiet: {}
19
+ -q: {}
20
+ --verbosity: {takes_value: true}
21
+ --access-token-file: {takes_value: true}
22
+ --impersonate-service-account: {takes_value: true}
23
+ --log-http: {}
24
+ --trace-token: {takes_value: true}
25
+ --no-user-output-enabled: {}
26
+
27
+ subcommands:
28
+ # artifacts
29
+ artifacts:
30
+ classification: EXTERNAL_EFFECTS
31
+ strict: false
32
+ subcommands:
33
+ apt:
34
+ classification: EXTERNAL_EFFECTS
35
+ strict: false
36
+ subcommands:
37
+ import:
38
+ classification: EXTERNAL_EFFECTS
39
+ strict: false
40
+ upload:
41
+ classification: EXTERNAL_EFFECTS
42
+ strict: false
43
+ attachments:
44
+ classification: EXTERNAL_EFFECTS
45
+ strict: false
46
+ subcommands:
47
+ list:
48
+ classification: READONLY
49
+ strict: false
50
+ describe:
51
+ classification: READONLY
52
+ strict: false
53
+ download:
54
+ classification: EXTERNAL_EFFECTS
55
+ strict: false
56
+ create:
57
+ classification: EXTERNAL_EFFECTS
58
+ strict: false
59
+ delete:
60
+ classification: DANGEROUS
61
+ strict: false
62
+ docker:
63
+ classification: EXTERNAL_EFFECTS
64
+ strict: false
65
+ subcommands:
66
+ images:
67
+ classification: EXTERNAL_EFFECTS
68
+ strict: false
69
+ subcommands:
70
+ list:
71
+ classification: READONLY
72
+ strict: false
73
+ describe:
74
+ classification: READONLY
75
+ strict: false
76
+ get-operation:
77
+ classification: READONLY
78
+ strict: false
79
+ list-vulnerabilities:
80
+ classification: READONLY
81
+ strict: false
82
+ scan:
83
+ classification: EXTERNAL_EFFECTS
84
+ strict: false
85
+ delete:
86
+ classification: DANGEROUS
87
+ strict: false
88
+ tags:
89
+ classification: EXTERNAL_EFFECTS
90
+ strict: false
91
+ subcommands:
92
+ list:
93
+ classification: READONLY
94
+ strict: false
95
+ add:
96
+ classification: EXTERNAL_EFFECTS
97
+ strict: false
98
+ delete:
99
+ classification: DANGEROUS
100
+ strict: false
101
+ upgrade:
102
+ classification: EXTERNAL_EFFECTS
103
+ strict: false
104
+ subcommands:
105
+ print-iam-policy:
106
+ classification: READONLY
107
+ strict: false
108
+ migrate:
109
+ classification: EXTERNAL_EFFECTS
110
+ strict: false
111
+ files:
112
+ classification: EXTERNAL_EFFECTS
113
+ strict: false
114
+ subcommands:
115
+ list:
116
+ classification: READONLY
117
+ strict: false
118
+ describe:
119
+ classification: READONLY
120
+ strict: false
121
+ download:
122
+ classification: EXTERNAL_EFFECTS
123
+ strict: false
124
+ update:
125
+ classification: EXTERNAL_EFFECTS
126
+ strict: false
127
+ delete:
128
+ classification: DANGEROUS
129
+ strict: false
130
+ generic:
131
+ classification: EXTERNAL_EFFECTS
132
+ strict: false
133
+ subcommands:
134
+ download:
135
+ classification: EXTERNAL_EFFECTS
136
+ strict: false
137
+ upload:
138
+ classification: EXTERNAL_EFFECTS
139
+ strict: false
140
+ go:
141
+ classification: EXTERNAL_EFFECTS
142
+ strict: false
143
+ subcommands:
144
+ auth:
145
+ classification: EXTERNAL_EFFECTS
146
+ strict: false
147
+ upload:
148
+ classification: EXTERNAL_EFFECTS
149
+ strict: false
150
+ locations:
151
+ classification: READONLY
152
+ strict: false
153
+ subcommands:
154
+ list:
155
+ classification: READONLY
156
+ strict: false
157
+ operations:
158
+ classification: READONLY
159
+ strict: false
160
+ subcommands:
161
+ describe:
162
+ classification: READONLY
163
+ strict: false
164
+ packages:
165
+ classification: EXTERNAL_EFFECTS
166
+ strict: false
167
+ subcommands:
168
+ list:
169
+ classification: READONLY
170
+ strict: false
171
+ describe:
172
+ classification: READONLY
173
+ strict: false
174
+ update:
175
+ classification: EXTERNAL_EFFECTS
176
+ strict: false
177
+ delete:
178
+ classification: DANGEROUS
179
+ strict: false
180
+ print-settings:
181
+ classification: READONLY
182
+ strict: false
183
+ subcommands:
184
+ gradle:
185
+ classification: READONLY
186
+ strict: false
187
+ mvn:
188
+ classification: READONLY
189
+ strict: false
190
+ npm:
191
+ classification: READONLY
192
+ strict: false
193
+ python:
194
+ classification: READONLY
195
+ strict: false
196
+ repositories:
197
+ classification: EXTERNAL_EFFECTS
198
+ strict: false
199
+ subcommands:
200
+ list:
201
+ classification: READONLY
202
+ strict: false
203
+ describe:
204
+ classification: READONLY
205
+ strict: false
206
+ get-iam-policy:
207
+ classification: READONLY
208
+ strict: false
209
+ list-cleanup-policies:
210
+ classification: READONLY
211
+ strict: false
212
+ create:
213
+ classification: EXTERNAL_EFFECTS
214
+ strict: false
215
+ update:
216
+ classification: EXTERNAL_EFFECTS
217
+ strict: false
218
+ add-iam-policy-binding:
219
+ classification: EXTERNAL_EFFECTS
220
+ strict: false
221
+ remove-iam-policy-binding:
222
+ classification: EXTERNAL_EFFECTS
223
+ strict: false
224
+ set-iam-policy:
225
+ classification: EXTERNAL_EFFECTS
226
+ strict: false
227
+ set-cleanup-policies:
228
+ classification: EXTERNAL_EFFECTS
229
+ strict: false
230
+ delete:
231
+ classification: DANGEROUS
232
+ strict: false
233
+ delete-cleanup-policies:
234
+ classification: DANGEROUS
235
+ strict: false
236
+ rules:
237
+ classification: EXTERNAL_EFFECTS
238
+ strict: false
239
+ subcommands:
240
+ list:
241
+ classification: READONLY
242
+ strict: false
243
+ describe:
244
+ classification: READONLY
245
+ strict: false
246
+ create:
247
+ classification: EXTERNAL_EFFECTS
248
+ strict: false
249
+ update:
250
+ classification: EXTERNAL_EFFECTS
251
+ strict: false
252
+ delete:
253
+ classification: DANGEROUS
254
+ strict: false
255
+ sbom:
256
+ classification: EXTERNAL_EFFECTS
257
+ strict: false
258
+ subcommands:
259
+ list:
260
+ classification: READONLY
261
+ strict: false
262
+ export:
263
+ classification: EXTERNAL_EFFECTS
264
+ strict: false
265
+ load:
266
+ classification: EXTERNAL_EFFECTS
267
+ strict: false
268
+ settings:
269
+ classification: EXTERNAL_EFFECTS
270
+ strict: false
271
+ subcommands:
272
+ describe:
273
+ classification: READONLY
274
+ strict: false
275
+ enable-upgrade-redirection:
276
+ classification: EXTERNAL_EFFECTS
277
+ strict: false
278
+ disable-upgrade-redirection:
279
+ classification: EXTERNAL_EFFECTS
280
+ strict: false
281
+ tags:
282
+ classification: EXTERNAL_EFFECTS
283
+ strict: false
284
+ subcommands:
285
+ list:
286
+ classification: READONLY
287
+ strict: false
288
+ create:
289
+ classification: EXTERNAL_EFFECTS
290
+ strict: false
291
+ update:
292
+ classification: EXTERNAL_EFFECTS
293
+ strict: false
294
+ export:
295
+ classification: EXTERNAL_EFFECTS
296
+ strict: false
297
+ delete:
298
+ classification: DANGEROUS
299
+ strict: false
300
+ versions:
301
+ classification: EXTERNAL_EFFECTS
302
+ strict: false
303
+ subcommands:
304
+ list:
305
+ classification: READONLY
306
+ strict: false
307
+ describe:
308
+ classification: READONLY
309
+ strict: false
310
+ export:
311
+ classification: EXTERNAL_EFFECTS
312
+ strict: false
313
+ update:
314
+ classification: EXTERNAL_EFFECTS
315
+ strict: false
316
+ delete:
317
+ classification: DANGEROUS
318
+ strict: false
319
+ vpcsc-config:
320
+ classification: EXTERNAL_EFFECTS
321
+ strict: false
322
+ subcommands:
323
+ describe:
324
+ classification: READONLY
325
+ strict: false
326
+ allow:
327
+ classification: EXTERNAL_EFFECTS
328
+ strict: false
329
+ deny:
330
+ classification: EXTERNAL_EFFECTS
331
+ strict: false
332
+ vulnerabilities:
333
+ classification: READONLY
334
+ strict: false
335
+ subcommands:
336
+ list:
337
+ classification: READONLY
338
+ strict: false
339
+ load-vex:
340
+ classification: EXTERNAL_EFFECTS
341
+ strict: false
342
+ yum:
343
+ classification: EXTERNAL_EFFECTS
344
+ strict: false
345
+ subcommands:
346
+ import:
347
+ classification: EXTERNAL_EFFECTS
348
+ strict: false
349
+ upload:
350
+ classification: EXTERNAL_EFFECTS
351
+ strict: false
352
+
353
+ # compute
354
+ compute:
355
+ classification: EXTERNAL_EFFECTS
356
+ strict: false
357
+ subcommands:
358
+ instances:
359
+ classification: EXTERNAL_EFFECTS
360
+ strict: false
361
+ subcommands:
362
+ list:
363
+ classification: READONLY
364
+ strict: false
365
+ describe:
366
+ classification: READONLY
367
+ strict: false
368
+ create:
369
+ classification: EXTERNAL_EFFECTS
370
+ strict: false
371
+ delete:
372
+ classification: DANGEROUS
373
+ strict: false
374
+ start:
375
+ classification: EXTERNAL_EFFECTS
376
+ strict: false
377
+ stop:
378
+ classification: EXTERNAL_EFFECTS
379
+ strict: false
380
+ reset:
381
+ classification: DANGEROUS
382
+ strict: false
383
+ disks:
384
+ classification: EXTERNAL_EFFECTS
385
+ strict: false
386
+ subcommands:
387
+ list:
388
+ classification: READONLY
389
+ strict: false
390
+ describe:
391
+ classification: READONLY
392
+ strict: false
393
+ create:
394
+ classification: EXTERNAL_EFFECTS
395
+ strict: false
396
+ delete:
397
+ classification: DANGEROUS
398
+ strict: false
399
+ firewall-rules:
400
+ classification: EXTERNAL_EFFECTS
401
+ strict: false
402
+ subcommands:
403
+ list:
404
+ classification: READONLY
405
+ strict: false
406
+ describe:
407
+ classification: READONLY
408
+ strict: false
409
+ create:
410
+ classification: EXTERNAL_EFFECTS
411
+ strict: false
412
+ delete:
413
+ classification: DANGEROUS
414
+ strict: false
415
+ update:
416
+ classification: EXTERNAL_EFFECTS
417
+ strict: false
418
+ networks:
419
+ classification: EXTERNAL_EFFECTS
420
+ strict: false
421
+ subcommands:
422
+ list:
423
+ classification: READONLY
424
+ strict: false
425
+ describe:
426
+ classification: READONLY
427
+ strict: false
428
+ create:
429
+ classification: EXTERNAL_EFFECTS
430
+ strict: false
431
+ delete:
432
+ classification: DANGEROUS
433
+ strict: false
434
+ ssh:
435
+ classification: EXTERNAL_EFFECTS
436
+ strict: false
437
+ scp:
438
+ classification: EXTERNAL_EFFECTS
439
+ strict: false
440
+
441
+ # container
442
+ container:
443
+ classification: EXTERNAL_EFFECTS
444
+ strict: false
445
+ subcommands:
446
+ clusters:
447
+ classification: EXTERNAL_EFFECTS
448
+ strict: false
449
+ subcommands:
450
+ list:
451
+ classification: READONLY
452
+ strict: false
453
+ describe:
454
+ classification: READONLY
455
+ strict: false
456
+ create:
457
+ classification: EXTERNAL_EFFECTS
458
+ strict: false
459
+ delete:
460
+ classification: DANGEROUS
461
+ strict: false
462
+ resize:
463
+ classification: EXTERNAL_EFFECTS
464
+ strict: false
465
+ update:
466
+ classification: EXTERNAL_EFFECTS
467
+ strict: false
468
+ get-credentials:
469
+ classification: EXTERNAL_EFFECTS
470
+ strict: false
471
+ node-pools:
472
+ classification: EXTERNAL_EFFECTS
473
+ strict: false
474
+ subcommands:
475
+ list:
476
+ classification: READONLY
477
+ strict: false
478
+ describe:
479
+ classification: READONLY
480
+ strict: false
481
+ create:
482
+ classification: EXTERNAL_EFFECTS
483
+ strict: false
484
+ delete:
485
+ classification: DANGEROUS
486
+ strict: false
487
+ images:
488
+ classification: EXTERNAL_EFFECTS
489
+ strict: false
490
+ subcommands:
491
+ list:
492
+ classification: READONLY
493
+ strict: false
494
+ describe:
495
+ classification: READONLY
496
+ strict: false
497
+ delete:
498
+ classification: DANGEROUS
499
+ strict: false
500
+
501
+ # iam
502
+ iam:
503
+ classification: EXTERNAL_EFFECTS
504
+ strict: false
505
+ subcommands:
506
+ service-accounts:
507
+ classification: EXTERNAL_EFFECTS
508
+ strict: false
509
+ subcommands:
510
+ list:
511
+ classification: READONLY
512
+ strict: false
513
+ describe:
514
+ classification: READONLY
515
+ strict: false
516
+ create:
517
+ classification: EXTERNAL_EFFECTS
518
+ strict: false
519
+ delete:
520
+ classification: DANGEROUS
521
+ strict: false
522
+ roles:
523
+ classification: EXTERNAL_EFFECTS
524
+ strict: false
525
+ subcommands:
526
+ list:
527
+ classification: READONLY
528
+ strict: false
529
+ describe:
530
+ classification: READONLY
531
+ strict: false
532
+ create:
533
+ classification: EXTERNAL_EFFECTS
534
+ strict: false
535
+ delete:
536
+ classification: DANGEROUS
537
+ strict: false
538
+
539
+ # storage
540
+ storage:
541
+ classification: EXTERNAL_EFFECTS
542
+ strict: false
543
+ subcommands:
544
+ ls:
545
+ classification: READONLY
546
+ strict: false
547
+ cat:
548
+ classification: READONLY
549
+ strict: false
550
+ cp:
551
+ classification: EXTERNAL_EFFECTS
552
+ strict: false
553
+ mv:
554
+ classification: EXTERNAL_EFFECTS
555
+ strict: false
556
+ rm:
557
+ classification: DANGEROUS
558
+ strict: false
559
+ buckets:
560
+ classification: EXTERNAL_EFFECTS
561
+ strict: false
562
+ subcommands:
563
+ list:
564
+ classification: READONLY
565
+ strict: false
566
+ describe:
567
+ classification: READONLY
568
+ strict: false
569
+ create:
570
+ classification: EXTERNAL_EFFECTS
571
+ strict: false
572
+ delete:
573
+ classification: DANGEROUS
574
+ strict: false
575
+
576
+ # config
577
+ config:
578
+ classification: LOCAL_EFFECTS
579
+ strict: false
580
+ subcommands:
581
+ list:
582
+ classification: READONLY
583
+ strict: false
584
+ get-value:
585
+ classification: READONLY
586
+ strict: false
587
+ set:
588
+ classification: LOCAL_EFFECTS
589
+ strict: false
590
+ unset:
591
+ classification: LOCAL_EFFECTS
592
+ strict: false
593
+ configurations:
594
+ classification: LOCAL_EFFECTS
595
+ strict: false
596
+ subcommands:
597
+ list:
598
+ classification: READONLY
599
+ strict: false
600
+ describe:
601
+ classification: READONLY
602
+ strict: false
603
+ create:
604
+ classification: LOCAL_EFFECTS
605
+ strict: false
606
+ delete:
607
+ classification: LOCAL_EFFECTS
608
+ strict: false
609
+ activate:
610
+ classification: LOCAL_EFFECTS
611
+ strict: false
612
+
613
+ # auth
614
+ auth:
615
+ classification: EXTERNAL_EFFECTS
616
+ strict: false
617
+ subcommands:
618
+ list:
619
+ classification: READONLY
620
+ strict: false
621
+ print-access-token:
622
+ classification: READONLY
623
+ strict: false
624
+ print-identity-token:
625
+ classification: READONLY
626
+ strict: false
627
+ login:
628
+ classification: EXTERNAL_EFFECTS
629
+ strict: false
630
+ revoke:
631
+ classification: EXTERNAL_EFFECTS
632
+ strict: false
633
+ configure-docker:
634
+ classification: LOCAL_EFFECTS
635
+ strict: false
636
+ application-default:
637
+ classification: EXTERNAL_EFFECTS
638
+ strict: false
639
+ subcommands:
640
+ login:
641
+ classification: EXTERNAL_EFFECTS
642
+ strict: false
643
+ print-access-token:
644
+ classification: READONLY
645
+ strict: false
646
+ revoke:
647
+ classification: EXTERNAL_EFFECTS
648
+ strict: false
649
+
650
+ # projects
651
+ projects:
652
+ classification: EXTERNAL_EFFECTS
653
+ strict: false
654
+ subcommands:
655
+ list:
656
+ classification: READONLY
657
+ strict: false
658
+ describe:
659
+ classification: READONLY
660
+ strict: false
661
+ create:
662
+ classification: EXTERNAL_EFFECTS
663
+ strict: false
664
+ delete:
665
+ classification: DANGEROUS
666
+ strict: false
667
+
668
+ # services
669
+ services:
670
+ classification: EXTERNAL_EFFECTS
671
+ strict: false
672
+ subcommands:
673
+ list:
674
+ classification: READONLY
675
+ strict: false
676
+ enable:
677
+ classification: EXTERNAL_EFFECTS
678
+ strict: false
679
+ disable:
680
+ classification: EXTERNAL_EFFECTS
681
+ strict: false
682
+
683
+ # sql
684
+ sql:
685
+ classification: EXTERNAL_EFFECTS
686
+ strict: false
687
+ subcommands:
688
+ instances:
689
+ classification: EXTERNAL_EFFECTS
690
+ strict: false
691
+ subcommands:
692
+ list:
693
+ classification: READONLY
694
+ strict: false
695
+ describe:
696
+ classification: READONLY
697
+ strict: false
698
+ create:
699
+ classification: EXTERNAL_EFFECTS
700
+ strict: false
701
+ delete:
702
+ classification: DANGEROUS
703
+ strict: false
704
+ restart:
705
+ classification: EXTERNAL_EFFECTS
706
+ strict: false
707
+ connect:
708
+ classification: EXTERNAL_EFFECTS
709
+ strict: false
710
+ databases:
711
+ classification: EXTERNAL_EFFECTS
712
+ strict: false
713
+ subcommands:
714
+ list:
715
+ classification: READONLY
716
+ strict: false
717
+ describe:
718
+ classification: READONLY
719
+ strict: false
720
+ create:
721
+ classification: EXTERNAL_EFFECTS
722
+ strict: false
723
+ delete:
724
+ classification: DANGEROUS
725
+ strict: false
726
+
727
+ # app
728
+ app:
729
+ classification: EXTERNAL_EFFECTS
730
+ strict: false
731
+ subcommands:
732
+ describe:
733
+ classification: READONLY
734
+ strict: false
735
+ deploy:
736
+ classification: EXTERNAL_EFFECTS
737
+ strict: false
738
+ browse:
739
+ classification: READONLY
740
+ strict: false
741
+ logs:
742
+ classification: READONLY
743
+ strict: false
744
+ subcommands:
745
+ read:
746
+ classification: READONLY
747
+ strict: false
748
+ tail:
749
+ classification: READONLY
750
+ strict: false
751
+
752
+ # builds
753
+ builds:
754
+ classification: EXTERNAL_EFFECTS
755
+ strict: false
756
+ subcommands:
757
+ list:
758
+ classification: READONLY
759
+ strict: false
760
+ describe:
761
+ classification: READONLY
762
+ strict: false
763
+ log:
764
+ classification: READONLY
765
+ strict: false
766
+ submit:
767
+ classification: EXTERNAL_EFFECTS
768
+ strict: false
769
+ cancel:
770
+ classification: EXTERNAL_EFFECTS
771
+ strict: false
772
+
773
+ # run (Cloud Run)
774
+ run:
775
+ classification: EXTERNAL_EFFECTS
776
+ strict: false
777
+ subcommands:
778
+ services:
779
+ classification: EXTERNAL_EFFECTS
780
+ strict: false
781
+ subcommands:
782
+ list:
783
+ classification: READONLY
784
+ strict: false
785
+ describe:
786
+ classification: READONLY
787
+ strict: false
788
+ delete:
789
+ classification: DANGEROUS
790
+ strict: false
791
+ update:
792
+ classification: EXTERNAL_EFFECTS
793
+ strict: false
794
+ deploy:
795
+ classification: EXTERNAL_EFFECTS
796
+ strict: false
797
+ jobs:
798
+ classification: EXTERNAL_EFFECTS
799
+ strict: false
800
+ subcommands:
801
+ list:
802
+ classification: READONLY
803
+ strict: false
804
+ describe:
805
+ classification: READONLY
806
+ strict: false
807
+ create:
808
+ classification: EXTERNAL_EFFECTS
809
+ strict: false
810
+ delete:
811
+ classification: DANGEROUS
812
+ strict: false
813
+ execute:
814
+ classification: EXTERNAL_EFFECTS
815
+ strict: false
816
+
817
+ # logging
818
+ logging:
819
+ classification: READONLY
820
+ strict: false
821
+ subcommands:
822
+ read:
823
+ classification: READONLY
824
+ strict: false
825
+ logs:
826
+ classification: READONLY
827
+ strict: false
828
+ subcommands:
829
+ list:
830
+ classification: READONLY
831
+ strict: false
832
+
833
+ # monitoring
834
+ monitoring:
835
+ classification: READONLY
836
+ strict: false
837
+ subcommands:
838
+ dashboards:
839
+ classification: READONLY
840
+ strict: false
841
+ subcommands:
842
+ list:
843
+ classification: READONLY
844
+ strict: false
845
+ describe:
846
+ classification: READONLY
847
+ strict: false
848
+
849
+ # functions
850
+ functions:
851
+ classification: EXTERNAL_EFFECTS
852
+ strict: false
853
+ subcommands:
854
+ list:
855
+ classification: READONLY
856
+ strict: false
857
+ describe:
858
+ classification: READONLY
859
+ strict: false
860
+ deploy:
861
+ classification: EXTERNAL_EFFECTS
862
+ strict: false
863
+ delete:
864
+ classification: DANGEROUS
865
+ strict: false
866
+ call:
867
+ classification: EXTERNAL_EFFECTS
868
+ strict: false
869
+ logs:
870
+ classification: READONLY
871
+ strict: false
872
+ subcommands:
873
+ read:
874
+ classification: READONLY
875
+ strict: false
876
+
877
+ # pubsub
878
+ pubsub:
879
+ classification: EXTERNAL_EFFECTS
880
+ strict: false
881
+ subcommands:
882
+ topics:
883
+ classification: EXTERNAL_EFFECTS
884
+ strict: false
885
+ subcommands:
886
+ list:
887
+ classification: READONLY
888
+ strict: false
889
+ describe:
890
+ classification: READONLY
891
+ strict: false
892
+ create:
893
+ classification: EXTERNAL_EFFECTS
894
+ strict: false
895
+ delete:
896
+ classification: DANGEROUS
897
+ strict: false
898
+ subscriptions:
899
+ classification: EXTERNAL_EFFECTS
900
+ strict: false
901
+ subcommands:
902
+ list:
903
+ classification: READONLY
904
+ strict: false
905
+ describe:
906
+ classification: READONLY
907
+ strict: false
908
+ create:
909
+ classification: EXTERNAL_EFFECTS
910
+ strict: false
911
+ delete:
912
+ classification: DANGEROUS
913
+ strict: false
914
+
915
+ # dns
916
+ dns:
917
+ classification: EXTERNAL_EFFECTS
918
+ strict: false
919
+ subcommands:
920
+ managed-zones:
921
+ classification: EXTERNAL_EFFECTS
922
+ strict: false
923
+ subcommands:
924
+ list:
925
+ classification: READONLY
926
+ strict: false
927
+ describe:
928
+ classification: READONLY
929
+ strict: false
930
+ create:
931
+ classification: EXTERNAL_EFFECTS
932
+ strict: false
933
+ delete:
934
+ classification: DANGEROUS
935
+ strict: false
936
+ record-sets:
937
+ classification: EXTERNAL_EFFECTS
938
+ strict: false
939
+ subcommands:
940
+ list:
941
+ classification: READONLY
942
+ strict: false
943
+ describe:
944
+ classification: READONLY
945
+ strict: false
946
+
947
+ # info and topic (readonly)
948
+ info:
949
+ classification: READONLY
950
+ strict: false
951
+
952
+ topic:
953
+ classification: READONLY
954
+ strict: false
955
+
956
+ version:
957
+ classification: READONLY
958
+ strict: false
959
+
960
+ cheat-sheet:
961
+ classification: READONLY
962
+ strict: false
963
+
964
+ components:
965
+ classification: LOCAL_EFFECTS
966
+ strict: false
967
+ subcommands:
968
+ list:
969
+ classification: READONLY
970
+ strict: false
971
+ install:
972
+ classification: LOCAL_EFFECTS
973
+ strict: false
974
+ update:
975
+ classification: LOCAL_EFFECTS
976
+ strict: false
977
+ remove:
978
+ classification: LOCAL_EFFECTS
979
+ strict: false