aircana 1.6.0.rc1 → 2.0.0.rc1
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/.rspec_status +180 -196
- data/CLAUDE.md +0 -7
- data/README.md +0 -8
- data/lib/aircana/cli/app.rb +0 -29
- data/lib/aircana/cli/commands/doctor_checks.rb +0 -12
- data/lib/aircana/cli/commands/dump_context.rb +2 -3
- data/lib/aircana/cli/commands/generate.rb +0 -4
- data/lib/aircana/configuration.rb +1 -2
- data/lib/aircana/contexts/confluence.rb +1 -3
- data/lib/aircana/contexts/manifest.rb +1 -10
- data/lib/aircana/contexts/web.rb +1 -3
- data/lib/aircana/generators/agents_generator.rb +1 -5
- data/lib/aircana/generators.rb +0 -2
- data/lib/aircana/version.rb +1 -1
- data/lib/aircana.rb +0 -2
- metadata +2 -11
- data/lib/aircana/cli/commands/add_directory.rb +0 -148
- data/lib/aircana/cli/commands/add_files.rb +0 -26
- data/lib/aircana/cli/commands/clear_files.rb +0 -16
- data/lib/aircana/cli/commands/files.rb +0 -65
- data/lib/aircana/contexts/relevant_files.rb +0 -78
- data/lib/aircana/generators/relevant_files_command_generator.rb +0 -36
- data/lib/aircana/generators/relevant_files_verbose_results_generator.rb +0 -34
- data/lib/aircana/templates/commands/add_relevant_files.erb +0 -3
- data/lib/aircana/templates/relevant_files_verbose_results.erb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9788177d75d4b58131a6c9a42784a3de5bc72d640ac603af0e541e8e7d38acf
|
4
|
+
data.tar.gz: bcce34699b133ffacfe248fd3eb6b37d3a0f261eb4f39452b535c8907b41b1ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e326b82f64dd2fa758d3937a8bc3c5912c8328a14d4dc633177a9a711f58e5593d0ea99664cfb31f50cccde7c9a0ded14693f3d8661cf30e4b4dcb31d0365540
|
7
|
+
data.tar.gz: c2f8f03ee444af0e3a6b509d5dfeac076a4b8cfec8b4f30d5982887216da29ea907d37f423d71be9ec03be68471a7e5f485f1d2eaf17e867ed6da49ddce457a3
|
data/.rspec_status
CHANGED
@@ -1,207 +1,191 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
--------------------------------------------------------------------- | ------ | --------------- |
|
3
|
-
./spec/aircana/cli/commands/
|
4
|
-
./spec/aircana/cli/commands/
|
5
|
-
./spec/aircana/cli/commands/
|
6
|
-
./spec/aircana/cli/commands/
|
7
|
-
./spec/aircana/cli/commands/
|
8
|
-
./spec/aircana/cli/commands/
|
9
|
-
./spec/aircana/cli/commands/
|
10
|
-
./spec/aircana/cli/commands/
|
11
|
-
./spec/aircana/cli/commands/
|
12
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:2] | passed | 0.00078 seconds |
|
13
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:3] | passed | 0.00074 seconds |
|
14
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:4] | passed | 0.00071 seconds |
|
15
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:5] | passed | 0.00072 seconds |
|
16
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:6] | passed | 0.0007 seconds |
|
17
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:7] | passed | 0.00071 seconds |
|
18
|
-
./spec/aircana/cli/commands/add_directory_spec.rb[1:3:8] | passed | 0.00111 seconds |
|
19
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.00049 seconds |
|
20
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00033 seconds |
|
21
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00033 seconds |
|
22
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.00102 seconds |
|
23
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.00035 seconds |
|
24
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00048 seconds |
|
25
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00052 seconds |
|
26
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.00046 seconds |
|
27
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.00046 seconds |
|
3
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.01055 seconds |
|
4
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00194 seconds |
|
5
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00157 seconds |
|
6
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.0012 seconds |
|
7
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.00049 seconds |
|
8
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00032 seconds |
|
9
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00048 seconds |
|
10
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.0005 seconds |
|
11
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.00047 seconds |
|
28
12
|
./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.00034 seconds |
|
29
13
|
./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.00036 seconds |
|
30
14
|
./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.00037 seconds |
|
31
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.
|
32
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.
|
33
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.
|
34
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.
|
35
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.
|
36
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.
|
37
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.
|
38
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.
|
39
|
-
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.
|
40
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.
|
41
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.
|
42
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.
|
43
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.
|
44
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.
|
45
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.
|
46
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.
|
47
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.
|
48
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.
|
49
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.
|
50
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.
|
51
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.
|
52
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.
|
53
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.
|
54
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.
|
55
|
-
./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.
|
56
|
-
./spec/aircana/cli/commands/install_spec.rb[1:1:1] | passed | 0.
|
15
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.00087 seconds |
|
16
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.00051 seconds |
|
17
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.00048 seconds |
|
18
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.00023 seconds |
|
19
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:1:1] | passed | 0.00035 seconds |
|
20
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:2:1] | passed | 0.00034 seconds |
|
21
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:1] | passed | 0.00069 seconds |
|
22
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:2] | passed | 0.00074 seconds |
|
23
|
+
./spec/aircana/cli/commands/agents_spec.rb[1:5:3:3] | passed | 0.00075 seconds |
|
24
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00101 seconds |
|
25
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00079 seconds |
|
26
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00125 seconds |
|
27
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.0007 seconds |
|
28
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00085 seconds |
|
29
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.00061 seconds |
|
30
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00144 seconds |
|
31
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00188 seconds |
|
32
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.00147 seconds |
|
33
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.00078 seconds |
|
34
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00092 seconds |
|
35
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00128 seconds |
|
36
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.00095 seconds |
|
37
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.0007 seconds |
|
38
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.00252 seconds |
|
39
|
+
./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.00079 seconds |
|
40
|
+
./spec/aircana/cli/commands/install_spec.rb[1:1:1] | passed | 0.00456 seconds |
|
57
41
|
./spec/aircana/cli/commands/install_spec.rb[1:1:2] | passed | 0.00205 seconds |
|
58
|
-
./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.
|
59
|
-
./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.
|
60
|
-
./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.
|
61
|
-
./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.
|
62
|
-
./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.
|
63
|
-
./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.
|
64
|
-
./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.
|
65
|
-
./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.
|
66
|
-
./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.
|
67
|
-
./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.
|
68
|
-
./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.
|
69
|
-
./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.
|
70
|
-
./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.
|
71
|
-
./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.
|
72
|
-
./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.
|
73
|
-
./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.
|
74
|
-
./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.
|
75
|
-
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.
|
76
|
-
./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.
|
42
|
+
./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.01019 seconds |
|
43
|
+
./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.00596 seconds |
|
44
|
+
./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.00574 seconds |
|
45
|
+
./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.00515 seconds |
|
46
|
+
./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.00313 seconds |
|
47
|
+
./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.00271 seconds |
|
48
|
+
./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.00286 seconds |
|
49
|
+
./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.00303 seconds |
|
50
|
+
./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.00114 seconds |
|
51
|
+
./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.00106 seconds |
|
52
|
+
./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.00111 seconds |
|
53
|
+
./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.00099 seconds |
|
54
|
+
./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.00089 seconds |
|
55
|
+
./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.00136 seconds |
|
56
|
+
./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.00108 seconds |
|
57
|
+
./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.0012 seconds |
|
58
|
+
./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.0011 seconds |
|
59
|
+
./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00016 seconds |
|
60
|
+
./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00009 seconds |
|
77
61
|
./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00007 seconds |
|
78
62
|
./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00007 seconds |
|
79
|
-
./spec/aircana/configuration_spec.rb[1:
|
80
|
-
./spec/aircana/
|
81
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:
|
82
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1:
|
83
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:1
|
84
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:
|
85
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00012 seconds |
|
63
|
+
./spec/aircana/configuration_spec.rb[1:4:2] | passed | 0.00007 seconds |
|
64
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00209 seconds |
|
65
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00054 seconds |
|
66
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00131 seconds |
|
67
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00019 seconds |
|
68
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00013 seconds |
|
86
69
|
./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00012 seconds |
|
87
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.
|
88
|
-
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.
|
89
|
-
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.
|
90
|
-
./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.
|
91
|
-
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.
|
92
|
-
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.
|
93
|
-
./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.
|
94
|
-
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.
|
95
|
-
./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.
|
96
|
-
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.
|
97
|
-
./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.
|
98
|
-
./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.
|
99
|
-
./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed |
|
100
|
-
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.
|
101
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.
|
102
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.
|
103
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.
|
104
|
-
./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.
|
105
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.
|
106
|
-
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.
|
107
|
-
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.
|
108
|
-
./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.
|
109
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.
|
110
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.
|
111
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.
|
112
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.
|
113
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.
|
114
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.
|
115
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.
|
116
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.
|
117
|
-
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.
|
118
|
-
./spec/aircana/contexts/
|
119
|
-
./spec/aircana/contexts/web_spec.rb[1:
|
120
|
-
./spec/aircana/contexts/web_spec.rb[1:
|
121
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:
|
122
|
-
./spec/aircana/contexts/web_spec.rb[1:3:1:
|
70
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00041 seconds |
|
71
|
+
./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00049 seconds |
|
72
|
+
./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00166 seconds |
|
73
|
+
./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.0014 seconds |
|
74
|
+
./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00148 seconds |
|
75
|
+
./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00129 seconds |
|
76
|
+
./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00127 seconds |
|
77
|
+
./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00164 seconds |
|
78
|
+
./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00194 seconds |
|
79
|
+
./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00141 seconds |
|
80
|
+
./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00126 seconds |
|
81
|
+
./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00107 seconds |
|
82
|
+
./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00106 seconds |
|
83
|
+
./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00098 seconds |
|
84
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00151 seconds |
|
85
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00027 seconds |
|
86
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00096 seconds |
|
87
|
+
./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00093 seconds |
|
88
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00335 seconds |
|
89
|
+
./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00026 seconds |
|
90
|
+
./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00094 seconds |
|
91
|
+
./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00022 seconds |
|
92
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00024 seconds |
|
93
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00021 seconds |
|
94
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00018 seconds |
|
95
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00019 seconds |
|
96
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00019 seconds |
|
97
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00022 seconds |
|
98
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00021 seconds |
|
99
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00092 seconds |
|
100
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00091 seconds |
|
101
|
+
./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00107 seconds |
|
102
|
+
./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.0002 seconds |
|
103
|
+
./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00017 seconds |
|
104
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00011 seconds |
|
105
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.0001 seconds |
|
106
|
+
./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.0001 seconds |
|
123
107
|
./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00027 seconds |
|
124
|
-
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.
|
125
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.
|
126
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.
|
127
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.
|
128
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.
|
129
|
-
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.
|
130
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.
|
131
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.
|
132
|
-
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.
|
133
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.
|
134
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.
|
135
|
-
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.
|
136
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.
|
137
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.
|
138
|
-
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.
|
139
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.
|
140
|
-
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.
|
141
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.
|
142
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.
|
143
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.
|
144
|
-
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.
|
108
|
+
./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00013 seconds |
|
109
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00019 seconds |
|
110
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.0003 seconds |
|
111
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00031 seconds |
|
112
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00037 seconds |
|
113
|
+
./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0003 seconds |
|
114
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00014 seconds |
|
115
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00013 seconds |
|
116
|
+
./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00012 seconds |
|
117
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00094 seconds |
|
118
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00016 seconds |
|
119
|
+
./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00035 seconds |
|
120
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.0003 seconds |
|
121
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00024 seconds |
|
122
|
+
./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00023 seconds |
|
123
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00021 seconds |
|
124
|
+
./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00011 seconds |
|
125
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00017 seconds |
|
126
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
|
127
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00018 seconds |
|
128
|
+
./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.0002 seconds |
|
145
129
|
./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00029 seconds |
|
146
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.
|
147
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.
|
148
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.
|
149
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.
|
150
|
-
./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.
|
151
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.
|
152
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.
|
153
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.
|
154
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.
|
155
|
-
./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.
|
156
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.
|
157
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.
|
158
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.
|
159
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.
|
160
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.
|
161
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.
|
162
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.
|
163
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.
|
164
|
-
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.
|
165
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.
|
166
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.
|
167
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.
|
168
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.
|
169
|
-
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.
|
170
|
-
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:1:1] | passed | 0.
|
171
|
-
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:1] | passed | 0.
|
172
|
-
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:2] | passed | 0.
|
173
|
-
./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.
|
174
|
-
./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.
|
175
|
-
./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.
|
176
|
-
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.
|
177
|
-
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.
|
178
|
-
./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.
|
179
|
-
./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.
|
180
|
-
./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.
|
181
|
-
./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.
|
182
|
-
./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.
|
183
|
-
./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.
|
184
|
-
./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.
|
185
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.
|
186
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.
|
187
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.
|
188
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.
|
189
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.
|
190
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.
|
191
|
-
./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.
|
192
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.
|
193
|
-
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.
|
194
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.
|
195
|
-
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.
|
196
|
-
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.
|
197
|
-
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.
|
198
|
-
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.
|
199
|
-
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.
|
200
|
-
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.
|
201
|
-
./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.
|
202
|
-
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.
|
203
|
-
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.
|
204
|
-
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.
|
205
|
-
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.
|
206
|
-
./spec/aircana_spec.rb[1:1] | passed | 0.
|
207
|
-
./spec/aircana_spec.rb[1:2] | passed | 0.
|
130
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00011 seconds |
|
131
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
|
132
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
|
133
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
|
134
|
+
./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
|
135
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
|
136
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.00015 seconds |
|
137
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
|
138
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00004 seconds |
|
139
|
+
./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00004 seconds |
|
140
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00003 seconds |
|
141
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
142
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00038 seconds |
|
143
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00031 seconds |
|
144
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
|
145
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00009 seconds |
|
146
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
|
147
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00046 seconds |
|
148
|
+
./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00014 seconds |
|
149
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
|
150
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00026 seconds |
|
151
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00025 seconds |
|
152
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00015 seconds |
|
153
|
+
./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00007 seconds |
|
154
|
+
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:1:1] | passed | 0.00021 seconds |
|
155
|
+
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:1] | passed | 0.00076 seconds |
|
156
|
+
./spec/aircana/generators/write_plan_command_generator_spec.rb[1:2:2] | passed | 0.00017 seconds |
|
157
|
+
./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00007 seconds |
|
158
|
+
./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00006 seconds |
|
159
|
+
./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
160
|
+
./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
161
|
+
./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
|
162
|
+
./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00003 seconds |
|
163
|
+
./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
|
164
|
+
./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
|
165
|
+
./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
|
166
|
+
./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
|
167
|
+
./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
|
168
|
+
./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
|
169
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00044 seconds |
|
170
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00034 seconds |
|
171
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00031 seconds |
|
172
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00032 seconds |
|
173
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00036 seconds |
|
174
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00031 seconds |
|
175
|
+
./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
|
176
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.0003 seconds |
|
177
|
+
./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.0003 seconds |
|
178
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00021 seconds |
|
179
|
+
./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.0002 seconds |
|
180
|
+
./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00032 seconds |
|
181
|
+
./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00045 seconds |
|
182
|
+
./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00062 seconds |
|
183
|
+
./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00021 seconds |
|
184
|
+
./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0002 seconds |
|
185
|
+
./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00019 seconds |
|
186
|
+
./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00022 seconds |
|
187
|
+
./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00022 seconds |
|
188
|
+
./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00027 seconds |
|
189
|
+
./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00018 seconds |
|
190
|
+
./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
|
191
|
+
./spec/aircana_spec.rb[1:2] | passed | 0.00088 seconds |
|
data/CLAUDE.md
CHANGED
@@ -25,9 +25,6 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
25
25
|
- `bundle exec rake release` - Release new version (updates version, creates git tag, pushes to rubygems)
|
26
26
|
|
27
27
|
### Aircana CLI Commands
|
28
|
-
- `aircana add-files` - Interactively add files to current context (uses fzf)
|
29
|
-
- `aircana add-dir [DIRECTORY_PATH]` - Add all files from directory to context
|
30
|
-
- `aircana clear-files` - Remove all files from relevant files
|
31
28
|
- `aircana doctor` - Check system health and dependencies
|
32
29
|
- `aircana doctor --verbose` - Show detailed dependency information
|
33
30
|
- `aircana dump-context <agent_name>` - Dump context for specified agent
|
@@ -54,7 +51,6 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
|
|
54
51
|
- `shell_command.rb`: Shell command execution utilities
|
55
52
|
- `commands/`: Individual command implementations
|
56
53
|
- **Contexts** (`lib/aircana/contexts/`): Manages different types of context
|
57
|
-
- `relevant_files.rb`: Manages current working file set
|
58
54
|
- `confluence.rb`: Handles Confluence page fetching and caching
|
59
55
|
- `confluence_content.rb`: Processes Confluence content
|
60
56
|
- `web.rb`: Handles web URL fetching and HTML to Markdown conversion
|
@@ -63,7 +59,6 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
|
|
63
59
|
- `base_generator.rb`: Base class for all generators
|
64
60
|
- `agents_generator.rb`: Generates agent configurations
|
65
61
|
- `hooks_generator.rb`: Generates hook configurations
|
66
|
-
- `relevant_files_command_generator.rb`: Generates file commands
|
67
62
|
- **Configuration** (`lib/aircana/configuration.rb`): Centralized configuration management
|
68
63
|
- **Support Classes**:
|
69
64
|
- `human_logger.rb`: User-friendly logging output
|
@@ -71,7 +66,6 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
|
|
71
66
|
- `agent.rb`: Agent model and persistence
|
72
67
|
|
73
68
|
### Key Concepts
|
74
|
-
- **Relevant Files**: Current working set of important files stored in `.aircana/relevant_files/`
|
75
69
|
- **Agents**: Knowledge encapsulation with domain expertise, Confluence sync, and model customization
|
76
70
|
- **Hooks**: Claude Code integration points for automated workflows
|
77
71
|
- **Context Management**: Integration with Claude Code through generated templates and configurations
|
@@ -82,7 +76,6 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
|
|
82
76
|
- Generated output goes to `~/.aircana/aircana.out` by default
|
83
77
|
- Agent knowledge cached in `.aircana/agents/<agent_name>/`
|
84
78
|
- Hooks stored in `.aircana/hooks/`
|
85
|
-
- Relevant files tracked in `.aircana/relevant_files/`
|
86
79
|
|
87
80
|
### Dependencies
|
88
81
|
- Thor (~> 0.19.1) for CLI framework
|
data/README.md
CHANGED
@@ -275,14 +275,6 @@ This refreshes both Confluence pages and web URLs associated with the agent.
|
|
275
275
|
|
276
276
|
## All Commands
|
277
277
|
|
278
|
-
### File Management
|
279
|
-
```bash
|
280
|
-
aircana files add # Interactively select files to add to context
|
281
|
-
aircana files add-dir [PATH] # Add all files from directory to context
|
282
|
-
aircana files clear # Clear current file context
|
283
|
-
aircana files list # Show current relevant files
|
284
|
-
```
|
285
|
-
|
286
278
|
### Agent Management
|
287
279
|
```bash
|
288
280
|
aircana agents create # Create new agent interactively
|
data/lib/aircana/cli/app.rb
CHANGED
@@ -2,9 +2,6 @@
|
|
2
2
|
|
3
3
|
require "thor"
|
4
4
|
|
5
|
-
require_relative "commands/add_files"
|
6
|
-
require_relative "commands/add_directory"
|
7
|
-
require_relative "commands/clear_files"
|
8
5
|
require_relative "commands/doctor"
|
9
6
|
require_relative "commands/dump_context"
|
10
7
|
require_relative "commands/generate"
|
@@ -15,7 +12,6 @@ require_relative "help_formatter"
|
|
15
12
|
require_relative "commands/agents"
|
16
13
|
require_relative "commands/hooks"
|
17
14
|
require_relative "commands/project"
|
18
|
-
require_relative "commands/files"
|
19
15
|
|
20
16
|
module Aircana
|
21
17
|
module CLI
|
@@ -49,28 +45,6 @@ module Aircana
|
|
49
45
|
Install.run
|
50
46
|
end
|
51
47
|
|
52
|
-
class FilesSubcommand < Subcommand
|
53
|
-
desc "add", "Interactively add files to current context"
|
54
|
-
def add
|
55
|
-
Files.add
|
56
|
-
end
|
57
|
-
|
58
|
-
desc "add-dir [DIRECTORY_PATH]", "Add all files from directory to context"
|
59
|
-
def add_dir(directory_path)
|
60
|
-
Files.add_dir(directory_path)
|
61
|
-
end
|
62
|
-
|
63
|
-
desc "clear", "Remove all files from current context"
|
64
|
-
def clear
|
65
|
-
Files.clear
|
66
|
-
end
|
67
|
-
|
68
|
-
desc "list", "Show current relevant files"
|
69
|
-
def list
|
70
|
-
Files.list
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
48
|
class AgentsSubcommand < Subcommand
|
75
49
|
desc "create", "Create a new agent"
|
76
50
|
def create
|
@@ -152,9 +126,6 @@ module Aircana
|
|
152
126
|
end
|
153
127
|
end
|
154
128
|
|
155
|
-
desc "files", "Manage relevant files for context"
|
156
|
-
subcommand "files", FilesSubcommand
|
157
|
-
|
158
129
|
desc "agents", "Create and manage agents and their knowledgebases"
|
159
130
|
subcommand "agents", AgentsSubcommand
|
160
131
|
|
@@ -59,7 +59,6 @@ module Aircana
|
|
59
59
|
check_directory("~/.aircana", "Global Aircana directory")
|
60
60
|
check_directory(".aircana", "Project Aircana directory")
|
61
61
|
check_agents_status
|
62
|
-
check_relevant_files_status
|
63
62
|
end
|
64
63
|
|
65
64
|
def check_agents_status
|
@@ -74,17 +73,6 @@ module Aircana
|
|
74
73
|
log_remedy("Create agents with: aircana agents create")
|
75
74
|
end
|
76
75
|
end
|
77
|
-
|
78
|
-
def check_relevant_files_status
|
79
|
-
relevant_files_dir = File.join(Dir.pwd, ".aircana", "relevant_files")
|
80
|
-
if Dir.exist?(relevant_files_dir) && !Dir.empty?(relevant_files_dir)
|
81
|
-
file_count = Dir.glob(File.join(relevant_files_dir, "*")).size
|
82
|
-
log_success("relevant_files", "#{file_count} file(s) in context")
|
83
|
-
else
|
84
|
-
log_info("relevant_files", "No relevant files added yet")
|
85
|
-
log_remedy("Add files with: aircana add-files")
|
86
|
-
end
|
87
|
-
end
|
88
76
|
end
|
89
77
|
|
90
78
|
module OptionalIntegrations
|
@@ -1,15 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "../shell_command"
|
4
|
-
require_relative "../../contexts/relevant_files"
|
5
4
|
|
6
5
|
module Aircana
|
7
6
|
module CLI
|
8
7
|
module DumpContext
|
9
8
|
class << self
|
10
|
-
def run(_agent_name:,
|
9
|
+
def run(_agent_name:, _verbose: true)
|
11
10
|
Aircana.logger.level = Logger::ERROR
|
12
|
-
|
11
|
+
Aircana.human_logger.info("Context dumping functionality has been removed.")
|
13
12
|
end
|
14
13
|
|
15
14
|
private
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "../../generators/relevant_files_command_generator"
|
4
|
-
require_relative "../../generators/relevant_files_verbose_results_generator"
|
5
3
|
require_relative "../../generators/plan_command_generator"
|
6
4
|
require_relative "../../generators/write_plan_command_generator"
|
7
5
|
require_relative "../../generators/ask_expert_command_generator"
|
@@ -15,8 +13,6 @@ module Aircana
|
|
15
13
|
class << self
|
16
14
|
def generators
|
17
15
|
@generators ||= [
|
18
|
-
Aircana::Generators::RelevantFilesVerboseResultsGenerator.new,
|
19
|
-
Aircana::Generators::RelevantFilesCommandGenerator.new,
|
20
16
|
Aircana::Generators::PlanCommandGenerator.new,
|
21
17
|
Aircana::Generators::WritePlanCommandGenerator.new,
|
22
18
|
Aircana::Generators::AskExpertCommandGenerator.new
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Aircana
|
4
4
|
class Configuration
|
5
|
-
attr_accessor :global_dir, :project_dir, :
|
5
|
+
attr_accessor :global_dir, :project_dir, :stream, :output_dir,
|
6
6
|
:claude_code_config_path, :claude_code_project_config_path, :agent_knowledge_dir,
|
7
7
|
:hooks_dir, :confluence_base_url, :confluence_username, :confluence_api_token
|
8
8
|
|
@@ -18,7 +18,6 @@ module Aircana
|
|
18
18
|
def setup_directory_paths
|
19
19
|
@global_dir = File.join(Dir.home, ".aircana")
|
20
20
|
@project_dir = Dir.pwd
|
21
|
-
@relevant_project_files_dir = File.join(@project_dir, ".aircana", "relevant_files")
|
22
21
|
@output_dir = File.join(@global_dir, "aircana.out")
|
23
22
|
@agent_knowledge_dir = File.join(@project_dir, ".aircana", "agents")
|
24
23
|
@hooks_dir = File.join(@project_dir, ".aircana", "hooks")
|
@@ -27,10 +27,7 @@ module Aircana
|
|
27
27
|
|
28
28
|
if File.exist?(manifest_path)
|
29
29
|
existing_data = JSON.parse(File.read(manifest_path))
|
30
|
-
manifest_data = existing_data.merge({
|
31
|
-
"last_updated" => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
|
32
|
-
"sources" => sources
|
33
|
-
})
|
30
|
+
manifest_data = existing_data.merge({ "sources" => sources })
|
34
31
|
else
|
35
32
|
manifest_data = build_manifest_data(agent, sources)
|
36
33
|
end
|
@@ -87,13 +84,9 @@ module Aircana
|
|
87
84
|
end
|
88
85
|
|
89
86
|
def build_manifest_data(agent, sources)
|
90
|
-
timestamp = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
|
91
|
-
|
92
87
|
{
|
93
88
|
"version" => "1.0",
|
94
89
|
"agent" => agent,
|
95
|
-
"created" => timestamp,
|
96
|
-
"last_updated" => timestamp,
|
97
90
|
"sources" => sources
|
98
91
|
}
|
99
92
|
end
|
@@ -157,8 +150,6 @@ module Aircana
|
|
157
150
|
raise ManifestError, "Each URL entry must be a hash" unless url_entry.is_a?(Hash)
|
158
151
|
|
159
152
|
raise ManifestError, "URL entry missing required field: url" unless url_entry.key?("url")
|
160
|
-
|
161
|
-
raise ManifestError, "URL entry missing required field: title" unless url_entry.key?("title")
|
162
153
|
end
|
163
154
|
end
|
164
155
|
end
|
data/lib/aircana/contexts/web.rb
CHANGED
@@ -44,7 +44,7 @@ module Aircana
|
|
44
44
|
|
45
45
|
def locals
|
46
46
|
super.merge({
|
47
|
-
|
47
|
+
agent_name:, short_description:, description:,
|
48
48
|
model:, color:, knowledge_path:
|
49
49
|
})
|
50
50
|
end
|
@@ -63,10 +63,6 @@ module Aircana
|
|
63
63
|
File.join(Aircana.configuration.claude_code_project_config_path, "agents", "#{agent_name}.md")
|
64
64
|
end
|
65
65
|
|
66
|
-
def relevant_project_files_path
|
67
|
-
File.join(Aircana.configuration.relevant_project_files_dir, "relevant_files.md")
|
68
|
-
end
|
69
|
-
|
70
66
|
def knowledge_path
|
71
67
|
".aircana/agents/#{agent_name}/knowledge/"
|
72
68
|
end
|
data/lib/aircana/generators.rb
CHANGED
data/lib/aircana/version.rb
CHANGED
data/lib/aircana.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aircana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Weston Dransfield
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-09-
|
10
|
+
date: 2025-09-30 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: httparty
|
@@ -118,15 +118,11 @@ files:
|
|
118
118
|
- lib/aircana.rb
|
119
119
|
- lib/aircana/cli.rb
|
120
120
|
- lib/aircana/cli/app.rb
|
121
|
-
- lib/aircana/cli/commands/add_directory.rb
|
122
|
-
- lib/aircana/cli/commands/add_files.rb
|
123
121
|
- lib/aircana/cli/commands/agents.rb
|
124
|
-
- lib/aircana/cli/commands/clear_files.rb
|
125
122
|
- lib/aircana/cli/commands/doctor.rb
|
126
123
|
- lib/aircana/cli/commands/doctor_checks.rb
|
127
124
|
- lib/aircana/cli/commands/doctor_helpers.rb
|
128
125
|
- lib/aircana/cli/commands/dump_context.rb
|
129
|
-
- lib/aircana/cli/commands/files.rb
|
130
126
|
- lib/aircana/cli/commands/generate.rb
|
131
127
|
- lib/aircana/cli/commands/hooks.rb
|
132
128
|
- lib/aircana/cli/commands/install.rb
|
@@ -142,7 +138,6 @@ files:
|
|
142
138
|
- lib/aircana/contexts/confluence_setup.rb
|
143
139
|
- lib/aircana/contexts/local.rb
|
144
140
|
- lib/aircana/contexts/manifest.rb
|
145
|
-
- lib/aircana/contexts/relevant_files.rb
|
146
141
|
- lib/aircana/contexts/web.rb
|
147
142
|
- lib/aircana/fzf_helper.rb
|
148
143
|
- lib/aircana/generators.rb
|
@@ -153,8 +148,6 @@ files:
|
|
153
148
|
- lib/aircana/generators/hooks_generator.rb
|
154
149
|
- lib/aircana/generators/plan_command_generator.rb
|
155
150
|
- lib/aircana/generators/project_config_generator.rb
|
156
|
-
- lib/aircana/generators/relevant_files_command_generator.rb
|
157
|
-
- lib/aircana/generators/relevant_files_verbose_results_generator.rb
|
158
151
|
- lib/aircana/generators/write_plan_command_generator.rb
|
159
152
|
- lib/aircana/human_logger.rb
|
160
153
|
- lib/aircana/initializers.rb
|
@@ -166,7 +159,6 @@ files:
|
|
166
159
|
- lib/aircana/templates/agents/defaults/jira.erb
|
167
160
|
- lib/aircana/templates/agents/defaults/planner.erb
|
168
161
|
- lib/aircana/templates/agents/defaults/sub-agent-coordinator.erb
|
169
|
-
- lib/aircana/templates/commands/add_relevant_files.erb
|
170
162
|
- lib/aircana/templates/commands/ask_expert.erb
|
171
163
|
- lib/aircana/templates/commands/plan.erb
|
172
164
|
- lib/aircana/templates/commands/write_plan.erb
|
@@ -178,7 +170,6 @@ files:
|
|
178
170
|
- lib/aircana/templates/hooks/rubocop_pre_commit.erb
|
179
171
|
- lib/aircana/templates/hooks/session_start.erb
|
180
172
|
- lib/aircana/templates/hooks/user_prompt_submit.erb
|
181
|
-
- lib/aircana/templates/relevant_files_verbose_results.erb
|
182
173
|
- lib/aircana/version.rb
|
183
174
|
- sig/aircana.rbs
|
184
175
|
homepage: https://github.com/westonkd/aircana
|
@@ -1,148 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "tty-prompt"
|
4
|
-
require_relative "../../contexts/relevant_files"
|
5
|
-
|
6
|
-
module Aircana
|
7
|
-
module CLI
|
8
|
-
module AddDirectory
|
9
|
-
class << self
|
10
|
-
def run(directory_path)
|
11
|
-
return unless directory_valid?(directory_path)
|
12
|
-
|
13
|
-
selected_files = collect_files_recursively(directory_path)
|
14
|
-
return log_no_files_found(directory_path) if selected_files.empty?
|
15
|
-
|
16
|
-
return unless confirm_large_operation?(selected_files.size, directory_path)
|
17
|
-
|
18
|
-
process_files(directory_path, selected_files)
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def directory_valid?(directory_path)
|
24
|
-
unless File.directory?(directory_path)
|
25
|
-
Aircana.human_logger.error "Directory not found: #{directory_path}"
|
26
|
-
return false
|
27
|
-
end
|
28
|
-
|
29
|
-
unless File.readable?(directory_path)
|
30
|
-
Aircana.human_logger.error "Directory not readable: #{directory_path}"
|
31
|
-
return false
|
32
|
-
end
|
33
|
-
|
34
|
-
true
|
35
|
-
end
|
36
|
-
|
37
|
-
def log_no_files_found(directory_path)
|
38
|
-
Aircana.human_logger.info "No files found in directory: #{directory_path}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def confirm_large_operation?(file_count, directory_path)
|
42
|
-
return true if file_count <= 50
|
43
|
-
|
44
|
-
show_large_operation_warning(file_count, directory_path)
|
45
|
-
TTY::Prompt.new.yes?("Continue with adding #{file_count} files?")
|
46
|
-
end
|
47
|
-
|
48
|
-
def show_large_operation_warning(file_count, directory_path)
|
49
|
-
estimated_size = estimate_total_size(directory_path, file_count)
|
50
|
-
Aircana.human_logger.warn "Large directory operation detected:"
|
51
|
-
Aircana.human_logger.info " Directory: #{directory_path}"
|
52
|
-
Aircana.human_logger.info " Files: #{file_count}"
|
53
|
-
Aircana.human_logger.info " Estimated size: #{estimated_size}"
|
54
|
-
Aircana.human_logger.warn " This may result in high token usage with Claude"
|
55
|
-
end
|
56
|
-
|
57
|
-
def estimate_total_size(directory_path, file_count)
|
58
|
-
sample_files = get_sample_files(directory_path, file_count)
|
59
|
-
return "Unknown" if sample_files.empty?
|
60
|
-
|
61
|
-
total_bytes = calculate_sample_size(sample_files)
|
62
|
-
estimated_total = extrapolate_total_size(total_bytes, sample_files.size, file_count)
|
63
|
-
format_file_size(estimated_total)
|
64
|
-
end
|
65
|
-
|
66
|
-
def get_sample_files(directory_path, file_count)
|
67
|
-
Dir.glob(File.join(directory_path, "**", "*"))
|
68
|
-
.reject { |f| File.directory?(f) }
|
69
|
-
.sample([file_count, 10].min)
|
70
|
-
end
|
71
|
-
|
72
|
-
def calculate_sample_size(sample_files)
|
73
|
-
sample_files.sum do |f|
|
74
|
-
File.size(f)
|
75
|
-
rescue StandardError
|
76
|
-
0
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def extrapolate_total_size(total_bytes, sample_size, file_count)
|
81
|
-
avg_size = total_bytes / sample_size.to_f
|
82
|
-
(avg_size * file_count).to_i
|
83
|
-
end
|
84
|
-
|
85
|
-
def format_file_size(bytes)
|
86
|
-
units = %w[B KB MB GB]
|
87
|
-
size = bytes.to_f
|
88
|
-
unit_index = 0
|
89
|
-
|
90
|
-
while size >= 1024 && unit_index < units.length - 1
|
91
|
-
size /= 1024
|
92
|
-
unit_index += 1
|
93
|
-
end
|
94
|
-
|
95
|
-
"#{size.round(1)} #{units[unit_index]}"
|
96
|
-
end
|
97
|
-
|
98
|
-
def process_files(directory_path, selected_files)
|
99
|
-
file_count = selected_files.length
|
100
|
-
Aircana.human_logger.info "Found #{file_count} files in directory: #{directory_path}"
|
101
|
-
|
102
|
-
ProgressTracker.with_spinner("Adding #{file_count} files to context") do
|
103
|
-
Contexts::RelevantFiles.add(selected_files)
|
104
|
-
end
|
105
|
-
|
106
|
-
Aircana.human_logger.success "Successfully added #{file_count} files from directory"
|
107
|
-
end
|
108
|
-
|
109
|
-
def log_token_warning(file_count)
|
110
|
-
Aircana.human_logger.warn "Large number of files (#{file_count}) may result in high token usage"
|
111
|
-
end
|
112
|
-
|
113
|
-
def collect_files_recursively(directory_path)
|
114
|
-
Dir.glob(File.join(directory_path, "**", "*"), File::FNM_DOTMATCH)
|
115
|
-
.reject { |path| File.directory?(path) }
|
116
|
-
.reject { |path| should_ignore_file?(path) }
|
117
|
-
end
|
118
|
-
|
119
|
-
def should_ignore_file?(file_path)
|
120
|
-
ignore_patterns.any? { |pattern| file_path.match?(pattern) }
|
121
|
-
end
|
122
|
-
|
123
|
-
def ignore_patterns
|
124
|
-
directory_patterns + file_patterns
|
125
|
-
end
|
126
|
-
|
127
|
-
def directory_patterns
|
128
|
-
[
|
129
|
-
%r{/\.git/}, %r{/node_modules/}, %r{/\.vscode/}, %r{/\.idea/},
|
130
|
-
%r{/coverage/}, %r{/dist/}, %r{/build/}, %r{/tmp/}, %r{/vendor/},
|
131
|
-
%r{/\.bundle/}, %r{/\.rvm/}, %r{/\.rbenv/}
|
132
|
-
]
|
133
|
-
end
|
134
|
-
|
135
|
-
def file_patterns
|
136
|
-
[
|
137
|
-
%r{/\.DS_Store$}, %r{/log/.*\.log$},
|
138
|
-
/\.(jpg|jpeg|png|gif|bmp|tiff|svg|ico|webp)$/i,
|
139
|
-
/\.(mp4|avi|mkv|mov|wmv|flv|webm)$/i,
|
140
|
-
/\.(mp3|wav|flac|aac|ogg)$/i,
|
141
|
-
/\.(zip|tar|gz|rar|7z|bz2)$/i,
|
142
|
-
/\.(exe|dll|so|dylib)$/i
|
143
|
-
]
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../shell_command"
|
4
|
-
require_relative "../../contexts/relevant_files"
|
5
|
-
|
6
|
-
module Aircana
|
7
|
-
module CLI
|
8
|
-
module AddFiles
|
9
|
-
class << self
|
10
|
-
def run
|
11
|
-
selected_files = FzfHelper.select_files_interactively(
|
12
|
-
header: "Select files for Claude context (Ctrl+A: select all, ?: toggle preview)"
|
13
|
-
)
|
14
|
-
|
15
|
-
if selected_files.empty?
|
16
|
-
Aircana.human_logger.info "No files selected. Exiting."
|
17
|
-
return
|
18
|
-
end
|
19
|
-
|
20
|
-
Aircana.human_logger.success "Selected #{selected_files.size} files for context"
|
21
|
-
Contexts::RelevantFiles.add(selected_files)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../shell_command"
|
4
|
-
require_relative "../../contexts/relevant_files"
|
5
|
-
|
6
|
-
module Aircana
|
7
|
-
module CLI
|
8
|
-
module ClearFiles
|
9
|
-
class << self
|
10
|
-
def run
|
11
|
-
Contexts::RelevantFiles.remove_all
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "add_files"
|
4
|
-
require_relative "add_directory"
|
5
|
-
require_relative "clear_files"
|
6
|
-
require_relative "../../contexts/relevant_files"
|
7
|
-
|
8
|
-
module Aircana
|
9
|
-
module CLI
|
10
|
-
module Files
|
11
|
-
class << self
|
12
|
-
def add
|
13
|
-
AddFiles.run
|
14
|
-
end
|
15
|
-
|
16
|
-
def add_dir(directory_path)
|
17
|
-
AddDirectory.run(directory_path)
|
18
|
-
end
|
19
|
-
|
20
|
-
def clear
|
21
|
-
ClearFiles.run
|
22
|
-
end
|
23
|
-
|
24
|
-
def list
|
25
|
-
relevant_files_dir = Aircana.configuration.relevant_project_files_dir
|
26
|
-
return print_no_directory_message unless Dir.exist?(relevant_files_dir)
|
27
|
-
|
28
|
-
files = get_tracked_files(relevant_files_dir)
|
29
|
-
return print_no_files_message if files.empty?
|
30
|
-
|
31
|
-
print_files_list(files)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def print_no_directory_message
|
37
|
-
Aircana.human_logger.info(
|
38
|
-
"No relevant files directory found. Use 'aircana files add' to start tracking files."
|
39
|
-
)
|
40
|
-
end
|
41
|
-
|
42
|
-
def print_no_files_message
|
43
|
-
Aircana.human_logger.info("No relevant files currently tracked.")
|
44
|
-
end
|
45
|
-
|
46
|
-
def get_tracked_files(relevant_files_dir)
|
47
|
-
Dir.glob("#{relevant_files_dir}/*").map do |link|
|
48
|
-
File.readlink(link)
|
49
|
-
rescue StandardError
|
50
|
-
link
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def print_files_list(files)
|
55
|
-
Aircana.human_logger.info("Current relevant files:")
|
56
|
-
files.each_with_index do |file, index|
|
57
|
-
relative_path = file.start_with?(Dir.pwd) ? file.gsub("#{Dir.pwd}/", "") : file
|
58
|
-
Aircana.human_logger.info(" #{index + 1}. #{relative_path}")
|
59
|
-
end
|
60
|
-
Aircana.human_logger.info("\nTotal: #{files.length} files")
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Aircana
|
4
|
-
module Contexts
|
5
|
-
class RelevantFiles
|
6
|
-
class << self
|
7
|
-
# TODO: Honor the provided verbose flag
|
8
|
-
def print(_verbose: false)
|
9
|
-
verbose_generator(default_stream: true).generate
|
10
|
-
end
|
11
|
-
|
12
|
-
def add(files)
|
13
|
-
files = Array(files)
|
14
|
-
|
15
|
-
return if files.empty?
|
16
|
-
|
17
|
-
Aircana.create_dir_if_needed(Aircana.configuration.relevant_project_files_dir)
|
18
|
-
|
19
|
-
files.each do |file|
|
20
|
-
absolute_file_path = File.expand_path(file)
|
21
|
-
link_path = "#{Aircana.configuration.relevant_project_files_dir}/#{File.basename(file)}"
|
22
|
-
|
23
|
-
FileUtils.rm_f(link_path)
|
24
|
-
File.symlink(absolute_file_path, link_path)
|
25
|
-
end
|
26
|
-
|
27
|
-
rewrite_verbose_file
|
28
|
-
end
|
29
|
-
|
30
|
-
def remove(files)
|
31
|
-
files = Array(files)
|
32
|
-
|
33
|
-
return if files.empty?
|
34
|
-
|
35
|
-
Aircana.create_dir_if_needed(Aircana.configuration.relevant_project_files_dir)
|
36
|
-
|
37
|
-
files.each do |file|
|
38
|
-
link_path = "#{Aircana.configuration.relevant_project_files_dir}/#{File.basename(file)}"
|
39
|
-
FileUtils.rm_f(link_path)
|
40
|
-
end
|
41
|
-
|
42
|
-
rewrite_verbose_file
|
43
|
-
end
|
44
|
-
|
45
|
-
def remove_all
|
46
|
-
return unless directory_exists?
|
47
|
-
|
48
|
-
Dir.glob("#{Aircana.configuration.relevant_project_files_dir}/*").each do |file|
|
49
|
-
FileUtils.rm_f(file)
|
50
|
-
end
|
51
|
-
|
52
|
-
return unless Dir.empty?(Aircana.configuration.relevant_project_files_dir)
|
53
|
-
|
54
|
-
Dir.rmdir(Aircana.configuration.relevant_project_files_dir)
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def rewrite_verbose_file
|
60
|
-
verbose_generator.generate
|
61
|
-
|
62
|
-
# TODO: If the verbose file uses too many tokens, warn and instead use only
|
63
|
-
# the summary generatior or do something smart like summarize file contents
|
64
|
-
end
|
65
|
-
|
66
|
-
def verbose_generator(default_stream: false)
|
67
|
-
Generators::RelevantFilesVerboseResultsGenerator.new(
|
68
|
-
file_out: default_stream ? Aircana.configuration.stream : nil
|
69
|
-
)
|
70
|
-
end
|
71
|
-
|
72
|
-
def directory_exists?
|
73
|
-
Dir.exist?(Aircana.configuration.relevant_project_files_dir)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../generators"
|
4
|
-
|
5
|
-
module Aircana
|
6
|
-
module Generators
|
7
|
-
class RelevantFilesCommandGenerator < BaseGenerator
|
8
|
-
def initialize(file_in: nil, file_out: nil)
|
9
|
-
super(
|
10
|
-
file_in: file_in || default_template_path,
|
11
|
-
file_out: file_out || default_output_path
|
12
|
-
)
|
13
|
-
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
def locals
|
18
|
-
super.merge({ relevant_project_files_path: })
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def default_template_path
|
24
|
-
File.join(File.dirname(__FILE__), "..", "templates", "commands", "add_relevant_files.erb")
|
25
|
-
end
|
26
|
-
|
27
|
-
def default_output_path
|
28
|
-
File.join(Aircana.configuration.output_dir, "commands", "air-add-relevant-files.md")
|
29
|
-
end
|
30
|
-
|
31
|
-
def relevant_project_files_path
|
32
|
-
File.join(Aircana.configuration.relevant_project_files_dir, "relevant_files.md")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../generators"
|
4
|
-
|
5
|
-
module Aircana
|
6
|
-
module Generators
|
7
|
-
class RelevantFilesVerboseResultsGenerator < BaseGenerator
|
8
|
-
def initialize(file_in: nil, file_out: nil)
|
9
|
-
super(
|
10
|
-
file_in: file_in || default_template_path,
|
11
|
-
file_out: file_out || default_output_path
|
12
|
-
)
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def locals
|
18
|
-
super.merge({ relevant_files: })
|
19
|
-
end
|
20
|
-
|
21
|
-
def relevant_files
|
22
|
-
Dir.glob("#{Aircana.configuration.relevant_project_files_dir}/*")
|
23
|
-
end
|
24
|
-
|
25
|
-
def default_template_path
|
26
|
-
File.join(File.dirname(__FILE__), "..", "templates", "relevant_files_verbose_results.erb")
|
27
|
-
end
|
28
|
-
|
29
|
-
def default_output_path
|
30
|
-
File.join(Aircana.configuration.relevant_project_files_dir, "relevant_files.md")
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# Relevant Files
|
2
|
-
<%=
|
3
|
-
helpers.model_instructions(
|
4
|
-
<<~INSTRUCTIONS
|
5
|
-
The following files are considered important for the current task.
|
6
|
-
|
7
|
-
Use them for:
|
8
|
-
- Understanding task context
|
9
|
-
- Examples of how to structure your solutions
|
10
|
-
INSTRUCTIONS
|
11
|
-
)
|
12
|
-
%>
|
13
|
-
<% relevant_files.each do |file_path| %>
|
14
|
-
## File: <%= File.realpath(file_path) %>
|
15
|
-
```
|
16
|
-
<%= File.read(file_path) %>
|
17
|
-
```
|
18
|
-
<% end %>
|