space-architect 8.0.0 → 9.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -0
- data/README.md +53 -243
- data/lib/space_architect/bug_report.rb +2 -1
- data/lib/space_architect/cli/architect.rb +20 -7
- data/lib/space_architect/cli.rb +9 -14
- data/lib/space_architect/session_sync/bin_path.rb +1 -1
- data/lib/space_architect/session_sync/cursor.rb +1 -1
- data/lib/space_architect/session_sync/plist.rb +1 -1
- data/lib/{space_core → space_architect}/version.rb +2 -2
- data/lib/space_architect.rb +1 -1
- data/skill/architect/SKILL.md +3 -2
- data/skill/architect-vocabulary/SKILL.md +2 -2
- metadata +18 -177
- data/exe/space +0 -13
- data/exe/src +0 -13
- data/lib/space_architect/cli/space.rb +0 -29
- data/lib/space_architect/cli/src.rb +0 -38
- data/lib/space_core/atomic_write.rb +0 -21
- data/lib/space_core/cli/base_command.rb +0 -19
- data/lib/space_core/cli/build.rb +0 -27
- data/lib/space_core/cli/config.rb +0 -49
- data/lib/space_core/cli/current.rb +0 -16
- data/lib/space_core/cli/help.rb +0 -195
- data/lib/space_core/cli/helpers.rb +0 -115
- data/lib/space_core/cli/init.rb +0 -29
- data/lib/space_core/cli/list.rb +0 -24
- data/lib/space_core/cli/loop_status.rb +0 -47
- data/lib/space_core/cli/new.rb +0 -38
- data/lib/space_core/cli/pack.rb +0 -29
- data/lib/space_core/cli/path.rb +0 -16
- data/lib/space_core/cli/repeatable_options.rb +0 -84
- data/lib/space_core/cli/repo.rb +0 -76
- data/lib/space_core/cli/run.rb +0 -44
- data/lib/space_core/cli/shell.rb +0 -125
- data/lib/space_core/cli/show.rb +0 -21
- data/lib/space_core/cli/status.rb +0 -74
- data/lib/space_core/cli/use.rb +0 -17
- data/lib/space_core/cli.rb +0 -177
- data/lib/space_core/commands.rb +0 -51
- data/lib/space_core/config.rb +0 -152
- data/lib/space_core/errors.rb +0 -14
- data/lib/space_core/git_client.rb +0 -49
- data/lib/space_core/mise_client.rb +0 -37
- data/lib/space_core/oci_builder.rb +0 -56
- data/lib/space_core/oci_packer.rb +0 -103
- data/lib/space_core/oci_runner.rb +0 -89
- data/lib/space_core/paths.rb +0 -58
- data/lib/space_core/repo_reference.rb +0 -19
- data/lib/space_core/repo_resolver.rb +0 -167
- data/lib/space_core/shell_integration.rb +0 -438
- data/lib/space_core/slugger.rb +0 -16
- data/lib/space_core/space.rb +0 -174
- data/lib/space_core/space_store.rb +0 -319
- data/lib/space_core/state.rb +0 -86
- data/lib/space_core/templates/oci/dockerfile.erb +0 -73
- data/lib/space_core/templates/oci/dockerignore.erb +0 -17
- data/lib/space_core/templates/oci/entrypoint.sh.erb +0 -16
- data/lib/space_core/terminal.rb +0 -161
- data/lib/space_core/warnings.rb +0 -13
- data/lib/space_core/xdg.rb +0 -33
- data/lib/space_core.rb +0 -26
- data/lib/space_src/cli/clone.rb +0 -54
- data/lib/space_src/cli/config.rb +0 -65
- data/lib/space_src/cli/daemon.rb +0 -362
- data/lib/space_src/cli/options.rb +0 -21
- data/lib/space_src/cli/org.rb +0 -199
- data/lib/space_src/cli/repo.rb +0 -169
- data/lib/space_src/cli/shell.rb +0 -121
- data/lib/space_src/cli/status.rb +0 -75
- data/lib/space_src/cli/sync.rb +0 -161
- data/lib/space_src/cli.rb +0 -159
- data/lib/space_src/cloner.rb +0 -77
- data/lib/space_src/config/contract.rb +0 -54
- data/lib/space_src/config/duration.rb +0 -79
- data/lib/space_src/config/model.rb +0 -49
- data/lib/space_src/config/store.rb +0 -156
- data/lib/space_src/forge/client.rb +0 -31
- data/lib/space_src/forge/github.rb +0 -98
- data/lib/space_src/launchd/agent.rb +0 -195
- data/lib/space_src/launchd/plist.rb +0 -129
- data/lib/space_src/log_rotator.rb +0 -46
- data/lib/space_src/migration.rb +0 -43
- data/lib/space_src/nav.rb +0 -99
- data/lib/space_src/paths.rb +0 -72
- data/lib/space_src/scm/client.rb +0 -87
- data/lib/space_src/scm/git.rb +0 -232
- data/lib/space_src/scm/status.rb +0 -24
- data/lib/space_src/shell.rb +0 -90
- data/lib/space_src/shell_integration.rb +0 -321
- data/lib/space_src/state/lock.rb +0 -59
- data/lib/space_src/state/store.rb +0 -140
- data/lib/space_src/sync/engine.rb +0 -503
- data/lib/space_src/sync/repo_plan.rb +0 -215
- data/lib/space_src/sync/report.rb +0 -18
- data/lib/space_src/ui/interactive_reporter.rb +0 -280
- data/lib/space_src/ui/json_reporter.rb +0 -39
- data/lib/space_src/ui/mode.rb +0 -68
- data/lib/space_src/ui/plain_reporter.rb +0 -53
- data/lib/space_src/ui/reporter.rb +0 -48
- data/lib/space_src/version.rb +0 -7
- data/lib/space_src.rb +0 -38
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: space-architect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eric Jacobs
|
|
@@ -10,47 +10,47 @@ cert_chain: []
|
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name:
|
|
13
|
+
name: space-cadet
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '
|
|
18
|
+
version: '9.1'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '
|
|
25
|
+
version: '9.1'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: async-
|
|
27
|
+
name: async-http
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '0.95'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
39
|
+
version: '0.95'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: async-
|
|
41
|
+
name: async-process
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '
|
|
46
|
+
version: '1.4'
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
53
|
+
version: '1.4'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: protocol-http
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -107,48 +107,6 @@ dependencies:
|
|
|
107
107
|
- - "~>"
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
109
|
version: '1.10'
|
|
110
|
-
- !ruby/object:Gem::Dependency
|
|
111
|
-
name: dry-schema
|
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - "~>"
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '1.16'
|
|
117
|
-
type: :runtime
|
|
118
|
-
prerelease: false
|
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - "~>"
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: '1.16'
|
|
124
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
-
name: dry-struct
|
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
|
127
|
-
requirements:
|
|
128
|
-
- - "~>"
|
|
129
|
-
- !ruby/object:Gem::Version
|
|
130
|
-
version: '1.8'
|
|
131
|
-
type: :runtime
|
|
132
|
-
prerelease: false
|
|
133
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
-
requirements:
|
|
135
|
-
- - "~>"
|
|
136
|
-
- !ruby/object:Gem::Version
|
|
137
|
-
version: '1.8'
|
|
138
|
-
- !ruby/object:Gem::Dependency
|
|
139
|
-
name: dry-types
|
|
140
|
-
requirement: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - "~>"
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '1.9'
|
|
145
|
-
type: :runtime
|
|
146
|
-
prerelease: false
|
|
147
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
148
|
-
requirements:
|
|
149
|
-
- - "~>"
|
|
150
|
-
- !ruby/object:Gem::Version
|
|
151
|
-
version: '1.9'
|
|
152
110
|
- !ruby/object:Gem::Dependency
|
|
153
111
|
name: dry-validation
|
|
154
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -163,34 +121,6 @@ dependencies:
|
|
|
163
121
|
- - "~>"
|
|
164
122
|
- !ruby/object:Gem::Version
|
|
165
123
|
version: '1.11'
|
|
166
|
-
- !ruby/object:Gem::Dependency
|
|
167
|
-
name: xdg
|
|
168
|
-
requirement: !ruby/object:Gem::Requirement
|
|
169
|
-
requirements:
|
|
170
|
-
- - "~>"
|
|
171
|
-
- !ruby/object:Gem::Version
|
|
172
|
-
version: '10.2'
|
|
173
|
-
type: :runtime
|
|
174
|
-
prerelease: false
|
|
175
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
176
|
-
requirements:
|
|
177
|
-
- - "~>"
|
|
178
|
-
- !ruby/object:Gem::Version
|
|
179
|
-
version: '10.2'
|
|
180
|
-
- !ruby/object:Gem::Dependency
|
|
181
|
-
name: tty-cursor
|
|
182
|
-
requirement: !ruby/object:Gem::Requirement
|
|
183
|
-
requirements:
|
|
184
|
-
- - "~>"
|
|
185
|
-
- !ruby/object:Gem::Version
|
|
186
|
-
version: '0.7'
|
|
187
|
-
type: :runtime
|
|
188
|
-
prerelease: false
|
|
189
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
190
|
-
requirements:
|
|
191
|
-
- - "~>"
|
|
192
|
-
- !ruby/object:Gem::Version
|
|
193
|
-
version: '0.7'
|
|
194
124
|
- !ruby/object:Gem::Dependency
|
|
195
125
|
name: minitest
|
|
196
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -233,16 +163,15 @@ dependencies:
|
|
|
233
163
|
- - "~>"
|
|
234
164
|
- !ruby/object:Gem::Version
|
|
235
165
|
version: '13.0'
|
|
236
|
-
description: 'A dry-cli CLI for
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
166
|
+
description: 'A dry-cli CLI for the Architect Loop: iterations, briefs, freezes, verdicts,
|
|
167
|
+
lane worktrees, and headless pi dispatch — the judgment loop that runs inside space-cadet''s
|
|
168
|
+
task-scoped workspaces. Depends on the space-cadet gem for the spaces substrate
|
|
169
|
+
(hard) and the repo-tender gem for the session-sync launchd agent (soft, install
|
|
170
|
+
at will).'
|
|
240
171
|
email:
|
|
241
172
|
- eric@ebj.dev
|
|
242
173
|
executables:
|
|
243
174
|
- architect
|
|
244
|
-
- space
|
|
245
|
-
- src
|
|
246
175
|
extensions: []
|
|
247
176
|
extra_rdoc_files: []
|
|
248
177
|
files:
|
|
@@ -250,16 +179,12 @@ files:
|
|
|
250
179
|
- LICENSE.txt
|
|
251
180
|
- README.md
|
|
252
181
|
- exe/architect
|
|
253
|
-
- exe/space
|
|
254
|
-
- exe/src
|
|
255
182
|
- lib/space_architect.rb
|
|
256
183
|
- lib/space_architect/architect_project.rb
|
|
257
184
|
- lib/space_architect/bug_report.rb
|
|
258
185
|
- lib/space_architect/cli.rb
|
|
259
186
|
- lib/space_architect/cli/architect.rb
|
|
260
187
|
- lib/space_architect/cli/research.rb
|
|
261
|
-
- lib/space_architect/cli/space.rb
|
|
262
|
-
- lib/space_architect/cli/src.rb
|
|
263
188
|
- lib/space_architect/conversations_client.rb
|
|
264
189
|
- lib/space_architect/gate_evaluator.rb
|
|
265
190
|
- lib/space_architect/gate_lint.rb
|
|
@@ -284,91 +209,7 @@ files:
|
|
|
284
209
|
- lib/space_architect/templates/architect.md.erb
|
|
285
210
|
- lib/space_architect/templates/brief.md.erb
|
|
286
211
|
- lib/space_architect/templates/iteration.md.erb
|
|
287
|
-
- lib/
|
|
288
|
-
- lib/space_core/atomic_write.rb
|
|
289
|
-
- lib/space_core/cli.rb
|
|
290
|
-
- lib/space_core/cli/base_command.rb
|
|
291
|
-
- lib/space_core/cli/build.rb
|
|
292
|
-
- lib/space_core/cli/config.rb
|
|
293
|
-
- lib/space_core/cli/current.rb
|
|
294
|
-
- lib/space_core/cli/help.rb
|
|
295
|
-
- lib/space_core/cli/helpers.rb
|
|
296
|
-
- lib/space_core/cli/init.rb
|
|
297
|
-
- lib/space_core/cli/list.rb
|
|
298
|
-
- lib/space_core/cli/loop_status.rb
|
|
299
|
-
- lib/space_core/cli/new.rb
|
|
300
|
-
- lib/space_core/cli/pack.rb
|
|
301
|
-
- lib/space_core/cli/path.rb
|
|
302
|
-
- lib/space_core/cli/repeatable_options.rb
|
|
303
|
-
- lib/space_core/cli/repo.rb
|
|
304
|
-
- lib/space_core/cli/run.rb
|
|
305
|
-
- lib/space_core/cli/shell.rb
|
|
306
|
-
- lib/space_core/cli/show.rb
|
|
307
|
-
- lib/space_core/cli/status.rb
|
|
308
|
-
- lib/space_core/cli/use.rb
|
|
309
|
-
- lib/space_core/commands.rb
|
|
310
|
-
- lib/space_core/config.rb
|
|
311
|
-
- lib/space_core/errors.rb
|
|
312
|
-
- lib/space_core/git_client.rb
|
|
313
|
-
- lib/space_core/mise_client.rb
|
|
314
|
-
- lib/space_core/oci_builder.rb
|
|
315
|
-
- lib/space_core/oci_packer.rb
|
|
316
|
-
- lib/space_core/oci_runner.rb
|
|
317
|
-
- lib/space_core/paths.rb
|
|
318
|
-
- lib/space_core/repo_reference.rb
|
|
319
|
-
- lib/space_core/repo_resolver.rb
|
|
320
|
-
- lib/space_core/shell_integration.rb
|
|
321
|
-
- lib/space_core/slugger.rb
|
|
322
|
-
- lib/space_core/space.rb
|
|
323
|
-
- lib/space_core/space_store.rb
|
|
324
|
-
- lib/space_core/state.rb
|
|
325
|
-
- lib/space_core/templates/oci/dockerfile.erb
|
|
326
|
-
- lib/space_core/templates/oci/dockerignore.erb
|
|
327
|
-
- lib/space_core/templates/oci/entrypoint.sh.erb
|
|
328
|
-
- lib/space_core/terminal.rb
|
|
329
|
-
- lib/space_core/version.rb
|
|
330
|
-
- lib/space_core/warnings.rb
|
|
331
|
-
- lib/space_core/xdg.rb
|
|
332
|
-
- lib/space_src.rb
|
|
333
|
-
- lib/space_src/cli.rb
|
|
334
|
-
- lib/space_src/cli/clone.rb
|
|
335
|
-
- lib/space_src/cli/config.rb
|
|
336
|
-
- lib/space_src/cli/daemon.rb
|
|
337
|
-
- lib/space_src/cli/options.rb
|
|
338
|
-
- lib/space_src/cli/org.rb
|
|
339
|
-
- lib/space_src/cli/repo.rb
|
|
340
|
-
- lib/space_src/cli/shell.rb
|
|
341
|
-
- lib/space_src/cli/status.rb
|
|
342
|
-
- lib/space_src/cli/sync.rb
|
|
343
|
-
- lib/space_src/cloner.rb
|
|
344
|
-
- lib/space_src/config/contract.rb
|
|
345
|
-
- lib/space_src/config/duration.rb
|
|
346
|
-
- lib/space_src/config/model.rb
|
|
347
|
-
- lib/space_src/config/store.rb
|
|
348
|
-
- lib/space_src/forge/client.rb
|
|
349
|
-
- lib/space_src/forge/github.rb
|
|
350
|
-
- lib/space_src/launchd/agent.rb
|
|
351
|
-
- lib/space_src/launchd/plist.rb
|
|
352
|
-
- lib/space_src/log_rotator.rb
|
|
353
|
-
- lib/space_src/migration.rb
|
|
354
|
-
- lib/space_src/nav.rb
|
|
355
|
-
- lib/space_src/paths.rb
|
|
356
|
-
- lib/space_src/scm/client.rb
|
|
357
|
-
- lib/space_src/scm/git.rb
|
|
358
|
-
- lib/space_src/scm/status.rb
|
|
359
|
-
- lib/space_src/shell.rb
|
|
360
|
-
- lib/space_src/shell_integration.rb
|
|
361
|
-
- lib/space_src/state/lock.rb
|
|
362
|
-
- lib/space_src/state/store.rb
|
|
363
|
-
- lib/space_src/sync/engine.rb
|
|
364
|
-
- lib/space_src/sync/repo_plan.rb
|
|
365
|
-
- lib/space_src/sync/report.rb
|
|
366
|
-
- lib/space_src/ui/interactive_reporter.rb
|
|
367
|
-
- lib/space_src/ui/json_reporter.rb
|
|
368
|
-
- lib/space_src/ui/mode.rb
|
|
369
|
-
- lib/space_src/ui/plain_reporter.rb
|
|
370
|
-
- lib/space_src/ui/reporter.rb
|
|
371
|
-
- lib/space_src/version.rb
|
|
212
|
+
- lib/space_architect/version.rb
|
|
372
213
|
- skill/architect-research/SKILL.md
|
|
373
214
|
- skill/architect-research/lanes.md
|
|
374
215
|
- skill/architect-vocabulary/SKILL.md
|
|
@@ -397,6 +238,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
397
238
|
requirements: []
|
|
398
239
|
rubygems_version: 4.0.10
|
|
399
240
|
specification_version: 4
|
|
400
|
-
summary:
|
|
401
|
-
|
|
241
|
+
summary: The Architect Loop — structured judgment-and-build cycles for humans and
|
|
242
|
+
headless AI builders
|
|
402
243
|
test_files: []
|
data/exe/space
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
source_gemfile = File.expand_path("../Gemfile", __dir__)
|
|
5
|
-
if File.exist?(source_gemfile)
|
|
6
|
-
ENV["BUNDLE_GEMFILE"] ||= source_gemfile
|
|
7
|
-
require "bundler/setup"
|
|
8
|
-
$LOAD_PATH.unshift(File.expand_path("../lib", __dir__))
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
require "space_core"
|
|
12
|
-
|
|
13
|
-
Space::Core::CLI.run(ARGV, $stdout, $stderr)
|
data/exe/src
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
source_gemfile = File.expand_path("../Gemfile", __dir__)
|
|
5
|
-
if File.exist?(source_gemfile)
|
|
6
|
-
ENV["BUNDLE_GEMFILE"] ||= source_gemfile
|
|
7
|
-
require "bundler/setup"
|
|
8
|
-
$LOAD_PATH.unshift(File.expand_path("../lib", __dir__))
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
require "space_src"
|
|
12
|
-
|
|
13
|
-
Space::Src::CLI.run(ARGV, $stdout, $stderr)
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "space_core/cli"
|
|
4
|
-
|
|
5
|
-
module Space::Architect
|
|
6
|
-
module CLI
|
|
7
|
-
# Exit-code bridge to the Space::Core CLI engine.
|
|
8
|
-
# `architect space <args>` (and `exe/space <args>` via Space::Core::CLI directly)
|
|
9
|
-
# hands the raw remainder to Space::Core's own dry-cli registry and translates
|
|
10
|
-
# Space::Core's recorded Outcome into the host exit code.
|
|
11
|
-
# Space::Core has its own Registry, Outcome, and :space_core_cli_outcome thread-local;
|
|
12
|
-
# this is the seam between the two registries (NOT a re-registration).
|
|
13
|
-
def self.dispatch_space(rest, out = $stdout, err = $stderr)
|
|
14
|
-
if ::Space::Core::CLI::TOP_LEVEL_HELP.include?(rest)
|
|
15
|
-
out.puts Dry::CLI::Usage.call(::Space::Core::CLI::Registry.get([]))
|
|
16
|
-
return 0
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
if ::Space::Core::CLI::VERSION_REQUEST.include?(rest)
|
|
20
|
-
out.puts ::Space::Core::VERSION
|
|
21
|
-
return 0
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
Thread.current[:space_core_cli_outcome] = nil
|
|
25
|
-
Dry::CLI.new(::Space::Core::CLI::Registry).call(arguments: rest, out: out, err: err)
|
|
26
|
-
::Space::Core::CLI.last_outcome&.exit_code || 0
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "space_src/cli"
|
|
4
|
-
|
|
5
|
-
module Space::Architect
|
|
6
|
-
module CLI
|
|
7
|
-
# Exit-code bridge to the Space::Src CLI engine.
|
|
8
|
-
# `architect src <args>` hands the raw remainder to Space::Src's own dry-cli
|
|
9
|
-
# registry and translates Space::Src's recorded Outcome into the host exit code.
|
|
10
|
-
# Space::Src has its own Registry, Outcome, and :space_src_cli_* thread-locals;
|
|
11
|
-
# this is the seam between the two registries (NOT a re-registration). Space::Src's
|
|
12
|
-
# top-level help/version interceptors call Kernel.exit, so we reproduce that
|
|
13
|
-
# interception here against the injected IO instead of delegating to them.
|
|
14
|
-
# dry-cli's internal exit on a bare group / unknown command propagates as
|
|
15
|
-
# SystemExit — same as the host's own bare groups (e.g. `space repo`) — and is
|
|
16
|
-
# intentionally NOT rescued (accepted behavior change).
|
|
17
|
-
def self.dispatch_src(rest, out = $stdout, err = $stderr)
|
|
18
|
-
if ::Space::Src::CLI::TOP_LEVEL_HELP.include?(rest)
|
|
19
|
-
out.puts Dry::CLI::Usage.call(::Space::Src::CLI::Registry.get([]))
|
|
20
|
-
return 0
|
|
21
|
-
end
|
|
22
|
-
if ::Space::Src::CLI::VERSION_REQUEST.include?(rest)
|
|
23
|
-
out.puts ::Space::Src::VERSION
|
|
24
|
-
return 0
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
if ::Space::Src::CLI.bare_query?(rest)
|
|
28
|
-
paths = ::Space::Src::CLI.make_paths
|
|
29
|
-
config = ::Space::Src::Config::Store.load(paths.config_file).success
|
|
30
|
-
return ::Space::Src::Nav.dispatch(rest[0], out, err, config.base_dir)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
Thread.current[:space_src_cli_outcome] = nil
|
|
34
|
-
Dry::CLI.new(::Space::Src::CLI::Registry).call(arguments: rest, out: out, err: err)
|
|
35
|
-
::Space::Src::CLI.last_outcome&.exit_code || 0
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "fileutils"
|
|
4
|
-
|
|
5
|
-
module Space::Core
|
|
6
|
-
module AtomicWrite
|
|
7
|
-
module_function
|
|
8
|
-
|
|
9
|
-
def write(path, content)
|
|
10
|
-
path = path.to_s
|
|
11
|
-
dir = File.dirname(path)
|
|
12
|
-
FileUtils.mkdir_p(dir)
|
|
13
|
-
tmp_path = File.join(dir, ".#{File.basename(path)}.#{Process.pid}.tmp")
|
|
14
|
-
|
|
15
|
-
File.write(tmp_path, content)
|
|
16
|
-
File.rename(tmp_path, path)
|
|
17
|
-
ensure
|
|
18
|
-
FileUtils.rm_f(tmp_path) if defined?(tmp_path) && tmp_path && File.exist?(tmp_path)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "dry/cli"
|
|
4
|
-
|
|
5
|
-
module Space::Core::CLI
|
|
6
|
-
# Base for every space/architect command. dry-cli (>= 0.7.0) copies a
|
|
7
|
-
# superclass's options to its subclasses, so the global colour options are
|
|
8
|
-
# declared once here and inherited everywhere instead of being mixed in per
|
|
9
|
-
# command. Helpers (terminal/store/render) ride along by inheritance too.
|
|
10
|
-
#
|
|
11
|
-
# The `src` binary has its own output-mode system (--plain/--json) and does
|
|
12
|
-
# NOT inherit from this base.
|
|
13
|
-
class BaseCommand < Dry::CLI::Command
|
|
14
|
-
include Helpers
|
|
15
|
-
|
|
16
|
-
option :color, type: :string, default: "auto", desc: "Color output: auto, always, never"
|
|
17
|
-
option :colors, type: :string, desc: "Alias for --color"
|
|
18
|
-
end
|
|
19
|
-
end
|
data/lib/space_core/cli/build.rb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "../oci_packer"
|
|
4
|
-
require_relative "../oci_builder"
|
|
5
|
-
|
|
6
|
-
module Space::Core::CLI
|
|
7
|
-
class Build < BaseCommand
|
|
8
|
-
desc "Build (and tag) the OCI image for the current space"
|
|
9
|
-
|
|
10
|
-
def call(**opts)
|
|
11
|
-
setup_terminal(**opts.slice(:color, :colors))
|
|
12
|
-
handle_errors do
|
|
13
|
-
result = store.current.bind do |space|
|
|
14
|
-
out_dir = space.path.join("build", "oci")
|
|
15
|
-
Space::Core::OciPacker.new(space: space, output_dir: out_dir).generate.bind do
|
|
16
|
-
Space::Core::OciBuilder.new(space: space, output_dir: out_dir).command
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
render(result) do |argv|
|
|
20
|
-
terminal.say "Building: #{argv.join(' ')}"
|
|
21
|
-
out.flush
|
|
22
|
-
Kernel.exec(*argv)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Space::Core::CLI
|
|
4
|
-
module Config
|
|
5
|
-
class Show < BaseCommand
|
|
6
|
-
desc "Show current config"
|
|
7
|
-
|
|
8
|
-
def call(**opts)
|
|
9
|
-
setup_terminal(**opts.slice(:color, :colors))
|
|
10
|
-
handle_errors do
|
|
11
|
-
rows = Space::Core::Config::EDITABLE_KEYS.map do |key|
|
|
12
|
-
value = project_config.data[key]
|
|
13
|
-
[key, value.nil? ? "" : value.to_s]
|
|
14
|
-
end
|
|
15
|
-
terminal.say terminal.table(%w[Key Value], rows)
|
|
16
|
-
CLI.record_outcome(Outcome.new(exit_code: 0))
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
class ConfigPath < BaseCommand
|
|
22
|
-
desc "Print the config file path"
|
|
23
|
-
|
|
24
|
-
def call(**opts)
|
|
25
|
-
setup_terminal(**opts.slice(:color, :colors))
|
|
26
|
-
handle_errors do
|
|
27
|
-
terminal.say terminal.path(project_config.path)
|
|
28
|
-
CLI.record_outcome(Outcome.new(exit_code: 0))
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
class Set < BaseCommand
|
|
34
|
-
desc "Set a config key"
|
|
35
|
-
argument :key, required: true, desc: "Config key"
|
|
36
|
-
argument :value, required: true, desc: "Config value"
|
|
37
|
-
|
|
38
|
-
def call(key:, value:, **opts)
|
|
39
|
-
setup_terminal(**opts.slice(:color, :colors))
|
|
40
|
-
handle_errors do
|
|
41
|
-
project_config.set(key, value)
|
|
42
|
-
stored = project_config.data[key]
|
|
43
|
-
terminal.success "Set #{key}=#{stored.nil? ? '' : stored.to_s}"
|
|
44
|
-
CLI.record_outcome(Outcome.new(exit_code: 0))
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Space::Core::CLI
|
|
4
|
-
class Current < BaseCommand
|
|
5
|
-
desc "Show the current space"
|
|
6
|
-
|
|
7
|
-
def call(**opts)
|
|
8
|
-
setup_terminal(**opts.slice(:color, :colors))
|
|
9
|
-
render(store.find) do |space|
|
|
10
|
-
terminal.say space.id.to_s
|
|
11
|
-
terminal.say terminal.path(space.path)
|
|
12
|
-
CLI.record_outcome(Outcome.new(exit_code: 0))
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|