aircana 4.0.0.rc5 → 4.0.0.rc7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b76d8d7f4a2ba1848e3eb413dff18b86fbd4010d3c8687a9ea1b28f26440b6f2
4
- data.tar.gz: 123c326d352a7fcc5bc45f440633477ac01ac5a12c0d0d33dd42bfd589290e7a
3
+ metadata.gz: 489eb3cac6e8dd65e76c68face964aa5df829fb40fddcc39e9dcdb94ab586d6e
4
+ data.tar.gz: 0bfcbd248a5dddb988145bcd0e5936829e6ccd4ead1e86649aa2d84aab8d5262
5
5
  SHA512:
6
- metadata.gz: b90dc3e9d898eb4819fdb057f8f33a2934e261d4507915682f8aeabd60d9b0c7db029f8e865b0a085e46597c86866d4e5defc48ccb54161f2c06ea7d1a56974b
7
- data.tar.gz: b4970c020cbaa9d0af571f5d49d55193d5cf2d10e5e6fa9ae79fe7595d3f467aad37b23ea75180281ff9159cf57d1ad0ad8ba7723366d9b99f2b756b76224b0a
6
+ metadata.gz: 7c68ab337911f7b6758985c102de295569fa272d1145845e25b18febab8e8d8717378555ced3055981a156f501de2cd079afd8b64321156ef609cfa8f2a30365
7
+ data.tar.gz: 0b8d1b2850dd4ca250993180e74591880e5ff58fcc9db712fc0df3ef8b9a2053cac89ebc0f9d4f5ed2829bb397bdc61fb41498a37e5379118bd8d676e2b430cc
data/.rspec_status CHANGED
@@ -1,192 +1,192 @@
1
1
  example_id | status | run_time |
2
2
  ----------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.02241 seconds |
4
- ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.003 seconds |
5
- ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.00417 seconds |
6
- ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00203 seconds |
7
- ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.00161 seconds |
8
- ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00165 seconds |
9
- ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00182 seconds |
10
- ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00142 seconds |
11
- ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00143 seconds |
12
- ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00134 seconds |
13
- ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00126 seconds |
14
- ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00132 seconds |
15
- ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00265 seconds |
16
- ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00302 seconds |
17
- ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00335 seconds |
18
- ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.00274 seconds |
19
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00042 seconds |
20
- ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00071 seconds |
21
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.00037 seconds |
22
- ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00112 seconds |
23
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00114 seconds |
24
- ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.01254 seconds |
25
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00027 seconds |
26
- ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00191 seconds |
27
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00019 seconds |
28
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00009 seconds |
29
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00009 seconds |
30
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00123 seconds |
31
- ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00024 seconds |
32
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00013 seconds |
33
- ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00077 seconds |
34
- ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00006 seconds |
35
- ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00006 seconds |
36
- ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00005 seconds |
37
- ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00006 seconds |
38
- ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00005 seconds |
39
- ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.0003 seconds |
40
- ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00022 seconds |
41
- ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.00021 seconds |
42
- ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00039 seconds |
43
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00467 seconds |
44
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.001 seconds |
45
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00199 seconds |
46
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00071 seconds |
47
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00038 seconds |
48
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00038 seconds |
49
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00084 seconds |
50
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00079 seconds |
51
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00033 seconds |
52
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00019 seconds |
53
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00032 seconds |
54
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00018 seconds |
55
- ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00016 seconds |
56
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00016 seconds |
57
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00023 seconds |
58
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00023 seconds |
59
- ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00031 seconds |
60
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00023 seconds |
61
- ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.0002 seconds |
62
- ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.00024 seconds |
63
- ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00025 seconds |
64
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00022 seconds |
65
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00009 seconds |
66
- ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00023 seconds |
67
- ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.0002 seconds |
68
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00039 seconds |
69
- ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.0001 seconds |
70
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.0002 seconds |
71
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.0001 seconds |
72
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00011 seconds |
73
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.0001 seconds |
74
- ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.0001 seconds |
75
- ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.0001 seconds |
76
- ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00011 seconds |
77
- ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.0001 seconds |
78
- ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00009 seconds |
79
- ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.0001 seconds |
80
- ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00009 seconds |
81
- ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.00009 seconds |
82
- ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.0002 seconds |
83
- ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.0002 seconds |
84
- ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00028 seconds |
85
- ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00049 seconds |
86
- ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00021 seconds |
87
- ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00019 seconds |
88
- ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00018 seconds |
89
- ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.0003 seconds |
90
- ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.0002 seconds |
91
- ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00029 seconds |
92
- ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00044 seconds |
93
- ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00054 seconds |
94
- ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.0003 seconds |
95
- ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00038 seconds |
96
- ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00022 seconds |
97
- ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00021 seconds |
98
- ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.0002 seconds |
99
- ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.00083 seconds |
100
- ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.0002 seconds |
101
- ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.0005 seconds |
102
- ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.0004 seconds |
103
- ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00038 seconds |
104
- ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00037 seconds |
105
- ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.0002 seconds |
106
- ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00018 seconds |
107
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00031 seconds |
108
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00026 seconds |
109
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00031 seconds |
110
- ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00039 seconds |
111
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00037 seconds |
112
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.0002 seconds |
113
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00019 seconds |
114
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00018 seconds |
115
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00017 seconds |
116
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00013 seconds |
117
- ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00007 seconds |
118
- ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00005 seconds |
119
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00066 seconds |
120
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00033 seconds |
121
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00017 seconds |
122
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00016 seconds |
123
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00006 seconds |
124
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00085 seconds |
125
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00032 seconds |
126
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00054 seconds |
127
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.0005 seconds |
128
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00046 seconds |
129
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00018 seconds |
130
- ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00013 seconds |
131
- ./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00039 seconds |
132
- ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00719 seconds |
133
- ./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.00026 seconds |
134
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00021 seconds |
135
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00012 seconds |
136
- ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.00009 seconds |
137
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00028 seconds |
138
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00028 seconds |
139
- ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00026 seconds |
140
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00011 seconds |
141
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.0009 seconds |
142
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00012 seconds |
143
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00008 seconds |
144
- ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00012 seconds |
145
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
146
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.00008 seconds |
147
- ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00007 seconds |
148
- ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00008 seconds |
149
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.0001 seconds |
150
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00009 seconds |
151
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.00009 seconds |
152
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.00009 seconds |
153
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00009 seconds |
154
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00009 seconds |
155
- ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00008 seconds |
156
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00118 seconds |
157
- ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00043 seconds |
158
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00012 seconds |
159
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00007 seconds |
160
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00007 seconds |
161
- ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00006 seconds |
162
- ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00005 seconds |
163
- ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00005 seconds |
164
- ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00005 seconds |
165
- ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00005 seconds |
166
- ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00005 seconds |
167
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00004 seconds |
168
- ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00005 seconds |
169
- ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00005 seconds |
170
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00086 seconds |
171
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00064 seconds |
172
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00084 seconds |
173
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00058 seconds |
174
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00068 seconds |
175
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00055 seconds |
176
- ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.0009 seconds |
177
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00057 seconds |
178
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00054 seconds |
179
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00038 seconds |
180
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00034 seconds |
181
- ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00056 seconds |
182
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00074 seconds |
183
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00133 seconds |
184
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00038 seconds |
185
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00035 seconds |
186
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00055 seconds |
187
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00036 seconds |
188
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00039 seconds |
189
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00046 seconds |
190
- ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00029 seconds |
191
- ./spec/aircana_spec.rb[1:1] | passed | 0.00005 seconds |
192
- ./spec/aircana_spec.rb[1:2] | passed | 0.00091 seconds |
3
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:1] | passed | 0.00919 seconds |
4
+ ./spec/aircana/cli/commands/init_spec.rb[1:1:2] | passed | 0.00264 seconds |
5
+ ./spec/aircana/cli/commands/init_spec.rb[1:2:1:1] | passed | 0.01276 seconds |
6
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:1] | passed | 0.00426 seconds |
7
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:2:1] | passed | 0.003 seconds |
8
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:3:1] | passed | 0.00353 seconds |
9
+ ./spec/aircana/cli/commands/init_spec.rb[1:3:4:1] | passed | 0.00366 seconds |
10
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:1] | passed | 0.00151 seconds |
11
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:2] | passed | 0.00178 seconds |
12
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:3] | passed | 0.00157 seconds |
13
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:4] | passed | 0.00139 seconds |
14
+ ./spec/aircana/cli/commands/init_spec.rb[1:4:5] | passed | 0.00135 seconds |
15
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:1] | passed | 0.00332 seconds |
16
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:2] | passed | 0.00424 seconds |
17
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:3] | passed | 0.00556 seconds |
18
+ ./spec/aircana/cli/commands/init_spec.rb[1:5:4] | passed | 0.004 seconds |
19
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
20
+ ./spec/aircana/cli/commands/kb_spec.rb[1:1:2:1] | passed | 0.00206 seconds |
21
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:1] | passed | 0.00124 seconds |
22
+ ./spec/aircana/cli/commands/kb_spec.rb[1:2:2] | passed | 0.00225 seconds |
23
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:1] | passed | 0.00206 seconds |
24
+ ./spec/aircana/cli/commands/kb_spec.rb[1:3:2] | passed | 0.00171 seconds |
25
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:1:1] | passed | 0.00046 seconds |
26
+ ./spec/aircana/cli/commands/kb_spec.rb[1:4:2:1] | passed | 0.00226 seconds |
27
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:1] | passed | 0.00124 seconds |
28
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:1:2] | passed | 0.00034 seconds |
29
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:1] | passed | 0.00025 seconds |
30
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:2] | passed | 0.00218 seconds |
31
+ ./spec/aircana/cli/commands/kb_spec.rb[1:5:2:3] | passed | 0.00113 seconds |
32
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00018 seconds |
33
+ ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00011 seconds |
34
+ ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00007 seconds |
35
+ ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00007 seconds |
36
+ ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00007 seconds |
37
+ ./spec/aircana/configuration_spec.rb[1:6:1] | passed | 0.00007 seconds |
38
+ ./spec/aircana/configuration_spec.rb[1:6:2] | passed | 0.00007 seconds |
39
+ ./spec/aircana/configuration_spec.rb[1:7:1:1] | passed | 0.00242 seconds |
40
+ ./spec/aircana/configuration_spec.rb[1:7:2:1] | passed | 0.00021 seconds |
41
+ ./spec/aircana/configuration_spec.rb[1:7:3:1] | passed | 0.0002 seconds |
42
+ ./spec/aircana/configuration_spec.rb[1:7:4:1] | passed | 0.00009 seconds |
43
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.0025 seconds |
44
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00062 seconds |
45
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00108 seconds |
46
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00033 seconds |
47
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.0002 seconds |
48
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00018 seconds |
49
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
50
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.0004 seconds |
51
+ ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.0005 seconds |
52
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00036 seconds |
53
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00041 seconds |
54
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00053 seconds |
55
+ ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00059 seconds |
56
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00046 seconds |
57
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00088 seconds |
58
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00054 seconds |
59
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00107 seconds |
60
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00112 seconds |
61
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:3] | passed | 0.00118 seconds |
62
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 0.001 seconds |
63
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00095 seconds |
64
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00093 seconds |
65
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00022 seconds |
66
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00088 seconds |
67
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00092 seconds |
68
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.0009 seconds |
69
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.0002 seconds |
70
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00084 seconds |
71
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00028 seconds |
72
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00025 seconds |
73
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00021 seconds |
74
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00022 seconds |
75
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00022 seconds |
76
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.0002 seconds |
77
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.0002 seconds |
78
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00019 seconds |
79
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00019 seconds |
80
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00019 seconds |
81
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:10] | passed | 0.0002 seconds |
82
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:11] | passed | 0.00112 seconds |
83
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:12] | passed | 0.00108 seconds |
84
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00021 seconds |
85
+ ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00028 seconds |
86
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00012 seconds |
87
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.00011 seconds |
88
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.00011 seconds |
89
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00015 seconds |
90
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00011 seconds |
91
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00017 seconds |
92
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00026 seconds |
93
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00042 seconds |
94
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00016 seconds |
95
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.0002 seconds |
96
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00012 seconds |
97
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.00011 seconds |
98
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.00011 seconds |
99
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.0012 seconds |
100
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00013 seconds |
101
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00031 seconds |
102
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00024 seconds |
103
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00023 seconds |
104
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00022 seconds |
105
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00022 seconds |
106
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.00013 seconds |
107
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00017 seconds |
108
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
109
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00018 seconds |
110
+ ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.0002 seconds |
111
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.0002 seconds |
112
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.0001 seconds |
113
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0001 seconds |
114
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.0001 seconds |
115
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
116
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00007 seconds |
117
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
118
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00003 seconds |
119
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00035 seconds |
120
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00018 seconds |
121
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00009 seconds |
122
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00008 seconds |
123
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00003 seconds |
124
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00044 seconds |
125
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.0003 seconds |
126
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:1] | passed | 0.00034 seconds |
127
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:2] | passed | 0.00024 seconds |
128
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:1:3] | passed | 0.00024 seconds |
129
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:1] | passed | 0.00008 seconds |
130
+ ./spec/aircana/generators/plan_command_generator_spec.rb[1:2:2] | passed | 0.00007 seconds |
131
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:1:1] | passed | 0.00019 seconds |
132
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:2:1] | passed | 0.00069 seconds |
133
+ ./spec/aircana/generators/record_command_generator_spec.rb[1:2:2] | passed | 0.00017 seconds |
134
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:1] | passed | 0.00037 seconds |
135
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:2] | passed | 0.00021 seconds |
136
+ ./spec/aircana/generators/skills_generator_spec.rb[1:1:3] | passed | 0.0002 seconds |
137
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:1] | passed | 0.00038 seconds |
138
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:2] | passed | 0.00033 seconds |
139
+ ./spec/aircana/generators/skills_generator_spec.rb[1:2:3] | passed | 0.00028 seconds |
140
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:1] | passed | 0.00019 seconds |
141
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:2] | passed | 0.0002 seconds |
142
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:3] | passed | 0.00023 seconds |
143
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:4] | passed | 0.00018 seconds |
144
+ ./spec/aircana/generators/skills_generator_spec.rb[1:3:5] | passed | 0.00019 seconds |
145
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:1] | passed | 0.0002 seconds |
146
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:2] | passed | 0.0002 seconds |
147
+ ./spec/aircana/generators/skills_generator_spec.rb[1:4:3] | passed | 0.00022 seconds |
148
+ ./spec/aircana/generators/skills_generator_spec.rb[1:5:1] | passed | 0.00019 seconds |
149
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:1] | passed | 0.00019 seconds |
150
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:2] | passed | 0.00019 seconds |
151
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:3] | passed | 0.0002 seconds |
152
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:4] | passed | 0.00019 seconds |
153
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:5] | passed | 0.00022 seconds |
154
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:6] | passed | 0.00023 seconds |
155
+ ./spec/aircana/generators/skills_generator_spec.rb[1:6:7] | passed | 0.00037 seconds |
156
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:1] | passed | 0.00132 seconds |
157
+ ./spec/aircana/generators/skills_generator_spec.rb[1:7:2] | passed | 0.00116 seconds |
158
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00006 seconds |
159
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00004 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00004 seconds |
161
+ ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00004 seconds |
162
+ ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00003 seconds |
163
+ ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00004 seconds |
164
+ ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00003 seconds |
165
+ ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00003 seconds |
166
+ ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00003 seconds |
167
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00003 seconds |
168
+ ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00003 seconds |
169
+ ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00003 seconds |
170
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00049 seconds |
171
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00033 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00029 seconds |
173
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.00029 seconds |
174
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00274 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.0003 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00067 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00028 seconds |
178
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00046 seconds |
179
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00019 seconds |
180
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00018 seconds |
181
+ ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00026 seconds |
182
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00048 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00052 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00026 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00019 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00017 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00018 seconds |
188
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.0002 seconds |
189
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00024 seconds |
190
+ ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00021 seconds |
191
+ ./spec/aircana_spec.rb[1:1] | passed | 0.00003 seconds |
192
+ ./spec/aircana_spec.rb[1:2] | passed | 0.00088 seconds |
@@ -3,6 +3,7 @@
3
3
  require "json"
4
4
  require "tty-prompt"
5
5
  require_relative "../../generators/skills_generator"
6
+ require_relative "../../generators/agents_generator"
6
7
  require_relative "../../contexts/manifest"
7
8
  require_relative "../../contexts/web"
8
9
 
@@ -10,6 +11,7 @@ module Aircana
10
11
  module CLI
11
12
  module KB # rubocop:disable Metrics/ModuleLength
12
13
  class << self # rubocop:disable Metrics/ClassLength
14
+ # rubocop:disable Metrics/MethodLength
13
15
  def refresh(kb_name)
14
16
  normalized_kb_name = normalize_string(kb_name)
15
17
 
@@ -22,9 +24,11 @@ module Aircana
22
24
 
23
25
  perform_manifest_aware_refresh(normalized_kb_name)
24
26
  regenerate_skill_md(normalized_kb_name)
27
+ regenerate_agent_md(normalized_kb_name)
25
28
  rescue Aircana::Error => e
26
29
  handle_refresh_error(normalized_kb_name, e)
27
30
  end
31
+ # rubocop:enable Metrics/MethodLength
28
32
 
29
33
  def create # rubocop:disable Metrics/MethodLength
30
34
  prompt = TTY::Prompt.new
@@ -54,9 +58,12 @@ module Aircana
54
58
  # Prompt for web URL fetching
55
59
  fetched_urls = prompt_for_url_fetch(prompt, normalized_kb_name, kb_type)
56
60
 
57
- # Generate SKILL.md if no content was fetched during the prompts
61
+ # Generate SKILL.md and agent if no content was fetched during the prompts
58
62
  # (the prompt functions already generate it when they successfully fetch content)
59
- regenerate_skill_md(normalized_kb_name, short_description) unless fetched_confluence || fetched_urls
63
+ unless fetched_confluence || fetched_urls
64
+ regenerate_skill_md(normalized_kb_name, short_description)
65
+ regenerate_agent_md(normalized_kb_name)
66
+ end
60
67
 
61
68
  # If remote kb_type, ensure SessionStart hook is installed
62
69
  ensure_remote_knowledge_refresh_hook if kb_type == "remote"
@@ -109,8 +116,9 @@ module Aircana
109
116
  all_sources = other_sources + web_sources
110
117
  Aircana::Contexts::Manifest.update_manifest(normalized_kb_name, all_sources)
111
118
 
112
- # Regenerate SKILL.md
119
+ # Regenerate SKILL.md and agent
113
120
  regenerate_skill_md(normalized_kb_name)
121
+ regenerate_agent_md(normalized_kb_name)
114
122
 
115
123
  Aircana.human_logger.success "Successfully added URL to KB '#{kb_name}'"
116
124
  else
@@ -233,6 +241,18 @@ module Aircana
233
241
  Aircana.human_logger.warn "Failed to generate SKILL.md: #{e.message}"
234
242
  end
235
243
 
244
+ def regenerate_agent_md(kb_name)
245
+ return unless Aircana::Contexts::Manifest.manifest_exists?(kb_name)
246
+
247
+ # Generate agent from manifest
248
+ generator = Generators::AgentsGenerator.from_manifest(kb_name)
249
+
250
+ generator.generate
251
+ Aircana.human_logger.success "Generated agent for '#{kb_name}'"
252
+ rescue StandardError => e
253
+ Aircana.human_logger.warn "Failed to generate agent: #{e.message}"
254
+ end
255
+
236
256
  def ensure_gitignore_entry(kb_type)
237
257
  gitignore_path = gitignore_file_path
238
258
 
@@ -347,6 +367,7 @@ module Aircana
347
367
  if result[:pages_count]&.positive?
348
368
  ensure_gitignore_entry(kb_type)
349
369
  regenerate_skill_md(normalized_kb_name, short_description)
370
+ regenerate_agent_md(normalized_kb_name)
350
371
  return true
351
372
  end
352
373
  else
@@ -403,6 +424,7 @@ module Aircana
403
424
  Aircana.human_logger.success "Successfully fetched #{result[:pages_count]} URL(s)"
404
425
  ensure_gitignore_entry(kb_type)
405
426
  regenerate_skill_md(normalized_kb_name)
427
+ regenerate_agent_md(normalized_kb_name)
406
428
  return true
407
429
  else
408
430
  Aircana.human_logger.warn "No URLs were successfully fetched"
@@ -489,6 +511,7 @@ module Aircana
489
511
  begin
490
512
  result = perform_manifest_aware_refresh(kb_name)
491
513
  regenerate_skill_md(kb_name)
514
+ regenerate_agent_md(kb_name)
492
515
  {
493
516
  success: true,
494
517
  pages_count: result[:pages_count],
@@ -7,7 +7,7 @@ module Aircana
7
7
  attr_accessor :global_dir, :project_dir, :stream, :output_dir,
8
8
  :claude_code_config_path, :claude_code_project_config_path, :kb_knowledge_dir,
9
9
  :hooks_dir, :scripts_dir, :confluence_base_url, :confluence_username, :confluence_api_token,
10
- :plugin_root, :plugin_manifest_dir, :commands_dir, :skills_dir
10
+ :plugin_root, :plugin_manifest_dir, :commands_dir, :skills_dir, :agents_dir
11
11
 
12
12
  def initialize
13
13
  setup_directory_paths
@@ -86,6 +86,15 @@ module Aircana
86
86
  File.join(@plugin_root, ".claude", "skills")
87
87
  end
88
88
 
89
+ # Agents directory location depends on whether we're in a plugin
90
+ # Plugin mode: agents/ (Claude Code standard location)
91
+ # Non-plugin mode: .claude/agents/ (local development/one-off usage)
92
+ @agents_dir = if plugin_mode?
93
+ File.join(@plugin_root, "agents")
94
+ else
95
+ File.join(@plugin_root, ".claude", "agents")
96
+ end
97
+
89
98
  @hooks_dir = File.join(@plugin_root, "hooks")
90
99
  @scripts_dir = File.join(@plugin_root, "scripts")
91
100
  @kb_knowledge_dir = @skills_dir
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../generators"
4
+ require_relative "../contexts/manifest"
5
+
6
+ module Aircana
7
+ module Generators
8
+ class AgentsGenerator < BaseGenerator
9
+ PRESET_COLORS = %w[red blue green cyan yellow magenta purple pink teal orange].freeze
10
+
11
+ attr_reader :kb_name, :agent_name, :agent_description, :skill_name, :color
12
+
13
+ def initialize(kb_name:, agent_description: nil, color: nil, file_in: nil, file_out: nil)
14
+ @kb_name = kb_name
15
+ @agent_name = kb_name
16
+ @agent_description = agent_description || generate_agent_description
17
+ @skill_name = generate_skill_name
18
+ @color = color || PRESET_COLORS.sample
19
+
20
+ super(
21
+ file_in: file_in || default_template_path,
22
+ file_out: file_out || default_output_path
23
+ )
24
+ end
25
+
26
+ # Generate agent markdown from manifest data
27
+ def self.from_manifest(kb_name)
28
+ manifest = Contexts::Manifest.read_manifest(kb_name)
29
+ raise Error, "No manifest found for knowledge base '#{kb_name}'" unless manifest
30
+
31
+ # Use the same description generation as skills
32
+ agent_description = generate_agent_description_from_manifest(manifest, kb_name)
33
+
34
+ new(
35
+ kb_name: kb_name,
36
+ agent_description: agent_description
37
+ )
38
+ end
39
+
40
+ def self.generate_agent_description_from_manifest(manifest, kb_name)
41
+ # Same description as skill - optimized for Claude's agent discovery
42
+ source_count = manifest["sources"]&.size || 0
43
+ "Discover critical context for #{kb_name.split("-").join(" ")} from #{source_count} knowledge sources"
44
+ end
45
+
46
+ protected
47
+
48
+ def locals
49
+ super.merge({
50
+ kb_name:,
51
+ agent_name:,
52
+ agent_description:,
53
+ skill_name:,
54
+ color:
55
+ })
56
+ end
57
+
58
+ private
59
+
60
+ def default_template_path
61
+ File.join(File.dirname(__FILE__), "..", "templates", "agents", "base_agent.erb")
62
+ end
63
+
64
+ def default_output_path
65
+ File.join(Aircana.configuration.agents_dir, "#{kb_name}.md")
66
+ end
67
+
68
+ def generate_agent_description
69
+ "Discover critical context for #{kb_name.split("-").join(" ")}"
70
+ end
71
+
72
+ def generate_skill_name
73
+ # Convert kb_name to skill name format: "Learn Canvas Backend Sharding"
74
+ "Learn #{kb_name.split("-").map(&:capitalize).join(" ")}"
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: <%= agent_name %>
3
+ description: <%= agent_description %>
4
+ model: inherit
5
+ color: <%= color %>
6
+ ---
7
+
8
+ Use the skill "<%= skill_name %>" to learn your domain, then perform the requested task.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Aircana
4
- VERSION = "4.0.0.rc5"
4
+ VERSION = "4.0.0.rc7"
5
5
  end
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.0.0.rc5
4
+ version: 4.0.0.rc7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weston Dransfield
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2025-10-24 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: httparty
@@ -142,6 +142,7 @@ files:
142
142
  - lib/aircana/contexts/web.rb
143
143
  - lib/aircana/fzf_helper.rb
144
144
  - lib/aircana/generators.rb
145
+ - lib/aircana/generators/agents_generator.rb
145
146
  - lib/aircana/generators/apply_feedback_command_generator.rb
146
147
  - lib/aircana/generators/ask_expert_command_generator.rb
147
148
  - lib/aircana/generators/base_generator.rb
@@ -159,6 +160,7 @@ files:
159
160
  - lib/aircana/plugin_manifest.rb
160
161
  - lib/aircana/progress_tracker.rb
161
162
  - lib/aircana/system_checker.rb
163
+ - lib/aircana/templates/agents/base_agent.erb
162
164
  - lib/aircana/templates/commands/apply_feedback.erb
163
165
  - lib/aircana/templates/commands/ask_expert.erb
164
166
  - lib/aircana/templates/commands/execute.erb
@@ -200,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
202
  - !ruby/object:Gem::Version
201
203
  version: '0'
202
204
  requirements: []
203
- rubygems_version: 3.6.9
205
+ rubygems_version: 3.6.2
204
206
  specification_version: 4
205
207
  summary: CLI for creating and managing Claude Code plugins with per-agent knowledge
206
208
  bases