aircana 1.1.0.rc1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec_status +188 -160
  3. data/CHANGELOG.md +7 -0
  4. data/CLAUDE.md +18 -6
  5. data/README.md +47 -6
  6. data/lib/aircana/cli/app.rb +5 -2
  7. data/lib/aircana/cli/commands/agents.rb +118 -6
  8. data/lib/aircana/cli/commands/doctor.rb +11 -5
  9. data/lib/aircana/cli/commands/doctor_checks.rb +48 -0
  10. data/lib/aircana/cli/commands/install.rb +4 -5
  11. data/lib/aircana/contexts/confluence.rb +0 -1
  12. data/lib/aircana/contexts/manifest.rb +20 -0
  13. data/lib/aircana/contexts/web.rb +341 -0
  14. data/lib/aircana/generators/agents_generator.rb +1 -1
  15. data/lib/aircana/generators/helpers.rb +1 -2
  16. data/lib/aircana/generators/hooks_generator.rb +2 -0
  17. data/lib/aircana/generators/relevant_files_command_generator.rb +1 -1
  18. data/lib/aircana/system_checker.rb +11 -0
  19. data/lib/aircana/templates/agents/base_agent.erb +4 -3
  20. data/lib/aircana/templates/hooks/notification_sqs.erb +75 -0
  21. data/lib/aircana/templates/hooks/pre_tool_use.erb +32 -7
  22. data/lib/aircana/version.rb +1 -1
  23. data/spec_output_1758908468_248/commands/air-add-relevant-files.md +1 -0
  24. data/spec_output_1758908479_36/commands/air-add-relevant-files.md +1 -0
  25. data/spec_output_1758908547_132/commands/air-add-relevant-files.md +1 -0
  26. data/spec_output_1758908553_721/commands/air-add-relevant-files.md +1 -0
  27. data/spec_output_1758917010_960/commands/air-add-relevant-files.md +1 -0
  28. data/spec_output_1758917064_555/commands/air-add-relevant-files.md +1 -0
  29. metadata +11 -7
  30. data/lib/aircana/cli/commands/plan.rb +0 -69
  31. data/lib/aircana/cli/commands/work.rb +0 -69
  32. data/lib/aircana/templates/agents/defaults/planner.erb +0 -126
  33. data/lib/aircana/templates/agents/defaults/worker.erb +0 -185
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64811eb3cd8c51f06884e2f4f13e9c8b95e55b1bae350e558cccde508b3076c9
4
- data.tar.gz: 61f3b8425387ada7b5f015d706d65fae1294aeb19d7b25ec35e0a22b3af6b3dc
3
+ metadata.gz: 13e5dc4492d755a6dc39e96375052c090786abc060384f1477cba7a95e43b020
4
+ data.tar.gz: f5a1a2eb0c38b8a978214a7c010c7f88da1257e6b7854f966392f23e01c81653
5
5
  SHA512:
6
- metadata.gz: c7a10c4f9ec04d77d1dbc96be3aec865acde288865c837839d92d005226489e1e77031d5da2623f4d019c69a28e1855f824415fb3a2362178829e723f8acad87
7
- data.tar.gz: 234c4c2743a72b3fe899c234b94bed5e4ac964939dc77f2ba114401421ed660d8b58c18d2e4595523dd76c266dce1470563f7fa2ab53ccbe52a2192b4d28b493
6
+ metadata.gz: 04b746dd5a332e2675ab3f6f4d064d3ed4db100f6c00ceea49044cc93f87cae549a47f4fbbe055fedbb952445b435e694c9b3981f0acdf1c4fce95ac4e38aded
7
+ data.tar.gz: 57eba9e8b146b797b74f8a88ff28beb791aa108df77adfa2ac921a7844ebc13990effce77742a992341afdc52692d585cd3d5d59443ec01def753643bacf5c1c
data/.rspec_status CHANGED
@@ -1,166 +1,194 @@
1
1
  example_id | status | run_time |
2
2
  ------------------------------------------------------------ | ------ | --------------- |
3
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:1:1] | passed | 0.00772 seconds |
4
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:2:1] | passed | 0.00102 seconds |
5
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:3:1] | passed | 0.00078 seconds |
6
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:4:1] | passed | 0.00248 seconds |
7
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:4:2:1] | passed | 0.01424 seconds |
8
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:5:1] | passed | 0.00263 seconds |
9
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:2:1] | passed | 0.00191 seconds |
10
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:2:2] | passed | 0.00177 seconds |
11
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:1] | passed | 0.00062 seconds |
12
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:2] | passed | 0.00063 seconds |
13
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:3] | passed | 0.00069 seconds |
14
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:4] | passed | 0.00063 seconds |
15
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:5] | passed | 0.00061 seconds |
16
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:6] | passed | 0.00063 seconds |
17
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:7] | passed | 0.0006 seconds |
18
- ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:8] | passed | 0.00063 seconds |
19
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.00042 seconds |
20
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00032 seconds |
21
- ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00044 seconds |
3
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:1:1] | passed | 0.0127 seconds |
4
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:2:1] | passed | 0.00093 seconds |
5
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:3:1] | passed | 0.0008 seconds |
6
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:4:1] | passed | 0.00298 seconds |
7
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:4:2:1] | passed | 0.01654 seconds |
8
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:1:5:1] | passed | 0.00236 seconds |
9
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:2:1] | passed | 0.00147 seconds |
10
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:2:2] | passed | 0.00219 seconds |
11
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:1] | passed | 0.00074 seconds |
12
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:2] | passed | 0.00075 seconds |
13
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:3] | passed | 0.00094 seconds |
14
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:4] | passed | 0.00101 seconds |
15
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:5] | passed | 0.00088 seconds |
16
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:6] | passed | 0.00087 seconds |
17
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:7] | passed | 0.0008 seconds |
18
+ ./spec/aircana/cli/commands/add_directory_spec.rb[1:3:8] | passed | 0.00093 seconds |
19
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:1] | passed | 0.0006 seconds |
20
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:2] | passed | 0.00036 seconds |
21
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:1:3] | passed | 0.00037 seconds |
22
22
  ./spec/aircana/cli/commands/agents_spec.rb[1:1:2:1] | passed | 0.00124 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.00031 seconds |
25
- ./spec/aircana/cli/commands/agents_spec.rb[1:2:1] | passed | 0.00021 seconds |
26
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00089 seconds |
27
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00087 seconds |
28
- ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00125 seconds |
29
- ./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.00092 seconds |
30
- ./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00098 seconds |
31
- ./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.00079 seconds |
32
- ./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00145 seconds |
33
- ./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00411 seconds |
34
- ./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.00155 seconds |
35
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.00071 seconds |
36
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00093 seconds |
37
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00124 seconds |
38
- ./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.00087 seconds |
39
- ./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.00066 seconds |
40
- ./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.00116 seconds |
41
- ./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.0006 seconds |
42
- ./spec/aircana/cli/commands/install_spec.rb[1:1:1:1] | passed | 0.0011 seconds |
43
- ./spec/aircana/cli/commands/install_spec.rb[1:1:2:1] | passed | 0.00182 seconds |
44
- ./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.00368 seconds |
45
- ./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.00227 seconds |
46
- ./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.00197 seconds |
47
- ./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.00264 seconds |
48
- ./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.00229 seconds |
49
- ./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.00228 seconds |
50
- ./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.00224 seconds |
51
- ./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.00231 seconds |
52
- ./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.00079 seconds |
53
- ./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.00076 seconds |
54
- ./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.0009 seconds |
55
- ./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.00085 seconds |
56
- ./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.00082 seconds |
57
- ./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.00114 seconds |
58
- ./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.00089 seconds |
59
- ./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.00136 seconds |
60
- ./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.00117 seconds |
61
- ./spec/aircana/cli/commands/plan_spec.rb[1:1:1:1] | passed | 0.00687 seconds |
62
- ./spec/aircana/cli/commands/plan_spec.rb[1:1:2:1] | passed | 0.00506 seconds |
63
- ./spec/aircana/cli/commands/plan_spec.rb[1:1:3:1] | passed | 0.00052 seconds |
64
- ./spec/aircana/cli/commands/work_spec.rb[1:1:1:1] | passed | 0.00558 seconds |
65
- ./spec/aircana/cli/commands/work_spec.rb[1:1:2:1] | passed | 0.00574 seconds |
66
- ./spec/aircana/cli/commands/work_spec.rb[1:1:3:1] | passed | 0.00056 seconds |
67
- ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00021 seconds |
68
- ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00007 seconds |
69
- ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.0001 seconds |
70
- ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00019 seconds |
71
- ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00012 seconds |
72
- ./spec/aircana/configuration_spec.rb[1:5:2] | passed | 0.00008 seconds |
73
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00648 seconds |
74
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00066 seconds |
75
- ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00155 seconds |
23
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:1] | passed | 0.0004 seconds |
24
+ ./spec/aircana/cli/commands/agents_spec.rb[1:1:3:2] | passed | 0.00036 seconds |
25
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:1] | passed | 0.00051 seconds |
26
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:2] | passed | 0.00049 seconds |
27
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:1:3:1] | passed | 0.00044 seconds |
28
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:2:1] | passed | 0.00038 seconds |
29
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:3:1] | passed | 0.00041 seconds |
30
+ ./spec/aircana/cli/commands/agents_spec.rb[1:2:4:1] | passed | 0.0004 seconds |
31
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:1] | passed | 0.0005 seconds |
32
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:2] | passed | 0.00047 seconds |
33
+ ./spec/aircana/cli/commands/agents_spec.rb[1:3:3] | passed | 0.00045 seconds |
34
+ ./spec/aircana/cli/commands/agents_spec.rb[1:4:1] | passed | 0.00022 seconds |
35
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:1:1] | passed | 0.00128 seconds |
36
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:1:1] | passed | 0.00097 seconds |
37
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:1:2:2:1] | passed | 0.00157 seconds |
38
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:2:1:1] | passed | 0.00096 seconds |
39
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:2:2:1] | passed | 0.00328 seconds |
40
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:3:1:1] | passed | 0.0007 seconds |
41
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:3:2:1] | passed | 0.00154 seconds |
42
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:4:1] | passed | 0.00148 seconds |
43
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:4:2:1] | passed | 0.00171 seconds |
44
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:1:1] | passed | 0.0008 seconds |
45
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:2:1] | passed | 0.00096 seconds |
46
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:3:1] | passed | 0.00109 seconds |
47
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:5:4:1] | passed | 0.0009 seconds |
48
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:6:1:1] | passed | 0.00067 seconds |
49
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:6:2:1] | passed | 0.00167 seconds |
50
+ ./spec/aircana/cli/commands/hooks_spec.rb[1:7:1] | passed | 0.00073 seconds |
51
+ ./spec/aircana/cli/commands/install_spec.rb[1:1:1] | passed | 0.00192 seconds |
52
+ ./spec/aircana/cli/commands/install_spec.rb[1:1:2] | passed | 0.00169 seconds |
53
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:1:1] | passed | 0.00626 seconds |
54
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:2:1] | passed | 0.00495 seconds |
55
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:3:1] | passed | 0.00536 seconds |
56
+ ./spec/aircana/cli/commands/install_spec.rb[1:2:4:1] | passed | 0.00769 seconds |
57
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:1] | passed | 0.00652 seconds |
58
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:2:1] | passed | 0.00493 seconds |
59
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:3:1] | passed | 0.00548 seconds |
60
+ ./spec/aircana/cli/commands/install_spec.rb[1:3:4:1] | passed | 0.00448 seconds |
61
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:1] | passed | 0.0013 seconds |
62
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:2] | passed | 0.00103 seconds |
63
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:3] | passed | 0.00096 seconds |
64
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:4] | passed | 0.00104 seconds |
65
+ ./spec/aircana/cli/commands/install_spec.rb[1:4:5] | passed | 0.00103 seconds |
66
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:1:1] | passed | 0.00131 seconds |
67
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:2:1] | passed | 0.00124 seconds |
68
+ ./spec/aircana/cli/commands/install_spec.rb[1:5:3:1] | passed | 0.00164 seconds |
69
+ ./spec/aircana/cli/commands/install_spec.rb[1:6:1] | passed | 0.00145 seconds |
70
+ ./spec/aircana/configuration_spec.rb[1:1:1] | passed | 0.00023 seconds |
71
+ ./spec/aircana/configuration_spec.rb[1:2:1] | passed | 0.00013 seconds |
72
+ ./spec/aircana/configuration_spec.rb[1:3:1] | passed | 0.00017 seconds |
73
+ ./spec/aircana/configuration_spec.rb[1:4:1] | passed | 0.00011 seconds |
74
+ ./spec/aircana/configuration_spec.rb[1:5:1] | passed | 0.00007 seconds |
75
+ ./spec/aircana/configuration_spec.rb[1:5:2] | passed | 0.00007 seconds |
76
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:1] | passed | 0.00198 seconds |
77
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:2] | passed | 0.00045 seconds |
78
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:1:3] | passed | 0.00122 seconds |
76
79
  ./spec/aircana/contexts/confluence_spec.rb[1:1:2:1] | passed | 0.00019 seconds |
77
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00013 seconds |
78
- ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00012 seconds |
79
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00047 seconds |
80
- ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00047 seconds |
81
- ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.0013 seconds |
82
- ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00106 seconds |
83
- ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00102 seconds |
84
- ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00096 seconds |
85
- ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00101 seconds |
86
- ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00136 seconds |
87
- ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00158 seconds |
88
- ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00126 seconds |
80
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:2] | passed | 0.00238 seconds |
81
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:2:3] | passed | 0.00019 seconds |
82
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:1] | passed | 0.00041 seconds |
83
+ ./spec/aircana/contexts/confluence_spec.rb[1:1:3:2] | passed | 0.00036 seconds |
84
+ ./spec/aircana/contexts/local_spec.rb[1:1:1] | passed | 0.00129 seconds |
85
+ ./spec/aircana/contexts/local_spec.rb[1:1:2] | passed | 0.00123 seconds |
86
+ ./spec/aircana/contexts/local_spec.rb[1:1:3] | passed | 0.00155 seconds |
87
+ ./spec/aircana/contexts/local_spec.rb[1:1:4] | passed | 0.00126 seconds |
88
+ ./spec/aircana/contexts/local_spec.rb[1:1:5] | passed | 0.00104 seconds |
89
+ ./spec/aircana/contexts/local_spec.rb[1:1:6] | passed | 0.00146 seconds |
90
+ ./spec/aircana/contexts/local_spec.rb[1:1:7] | passed | 0.00163 seconds |
91
+ ./spec/aircana/contexts/local_spec.rb[1:1:8] | passed | 0.00108 seconds |
89
92
  ./spec/aircana/contexts/manifest_spec.rb[1:1:1] | passed | 0.00096 seconds |
90
- ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00084 seconds |
91
- ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 1.02 seconds |
92
- ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00189 seconds |
93
- ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00188 seconds |
94
- ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00039 seconds |
95
- ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.0015 seconds |
96
- ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00208 seconds |
97
- ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00217 seconds |
98
- ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00051 seconds |
99
- ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00185 seconds |
100
- ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00046 seconds |
101
- ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.00046 seconds |
102
- ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00054 seconds |
103
- ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00051 seconds |
104
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.0006 seconds |
105
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00043 seconds |
106
- ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00068 seconds |
107
- ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00075 seconds |
108
- ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00084 seconds |
109
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00032 seconds |
110
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.0003 seconds |
111
- ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00029 seconds |
112
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.0003 seconds |
113
- ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00022 seconds |
114
- ./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00009 seconds |
115
- ./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.00096 seconds |
116
- ./spec/aircana/generators/agents_generator_spec.rb[1:2:2] | passed | 0.00032 seconds |
117
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00011 seconds |
118
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00008 seconds |
119
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:2:1] | passed | 0.00008 seconds |
120
- ./spec/aircana/generators/agents_generator_spec.rb[1:3:2:2] | passed | 0.00008 seconds |
121
- ./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00009 seconds |
122
- ./spec/aircana/generators/agents_generator_spec.rb[1:4:2:1] | passed | 0.00008 seconds |
123
- ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00006 seconds |
124
- ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00006 seconds |
125
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00077 seconds |
126
- ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.0005 seconds |
127
- ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00018 seconds |
128
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.0002 seconds |
129
- ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00008 seconds |
130
- ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.00134 seconds |
131
- ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.00048 seconds |
132
- ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00014 seconds |
133
- ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00009 seconds |
134
- ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00009 seconds |
135
- ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00009 seconds |
136
- ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00007 seconds |
137
- ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00008 seconds |
138
- ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00007 seconds |
139
- ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00007 seconds |
140
- ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00007 seconds |
141
- ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00007 seconds |
142
- ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00008 seconds |
143
- ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00006 seconds |
144
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00086 seconds |
145
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00072 seconds |
146
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.0006 seconds |
147
- ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.0006 seconds |
148
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00068 seconds |
149
- ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00061 seconds |
150
- ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.00066 seconds |
151
- ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00074 seconds |
152
- ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.00058 seconds |
153
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00043 seconds |
154
- ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00076 seconds |
155
- ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00064 seconds |
156
- ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.00077 seconds |
157
- ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00098 seconds |
158
- ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00038 seconds |
159
- ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.0004 seconds |
160
- ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00035 seconds |
161
- ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00039 seconds |
162
- ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00044 seconds |
163
- ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00049 seconds |
93
+ ./spec/aircana/contexts/manifest_spec.rb[1:1:2] | passed | 0.00141 seconds |
94
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:1] | passed | 1.01 seconds |
95
+ ./spec/aircana/contexts/manifest_spec.rb[1:2:2] | passed | 0.00394 seconds |
96
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:1] | passed | 0.00221 seconds |
97
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:2] | passed | 0.00054 seconds |
98
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:3] | passed | 0.00163 seconds |
99
+ ./spec/aircana/contexts/manifest_spec.rb[1:3:4] | passed | 0.00155 seconds |
100
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:1] | passed | 0.00157 seconds |
101
+ ./spec/aircana/contexts/manifest_spec.rb[1:4:2] | passed | 0.00029 seconds |
102
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:1] | passed | 0.00121 seconds |
103
+ ./spec/aircana/contexts/manifest_spec.rb[1:5:2] | passed | 0.00028 seconds |
104
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:1] | passed | 0.0003 seconds |
105
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:2] | passed | 0.00028 seconds |
106
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:3] | passed | 0.00027 seconds |
107
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:4] | passed | 0.00028 seconds |
108
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:5] | passed | 0.00032 seconds |
109
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:6] | passed | 0.00066 seconds |
110
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:7] | passed | 0.00039 seconds |
111
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:8] | passed | 0.00036 seconds |
112
+ ./spec/aircana/contexts/manifest_spec.rb[1:6:9] | passed | 0.00157 seconds |
113
+ ./spec/aircana/contexts/web_spec.rb[1:1:1] | passed | 0.00036 seconds |
114
+ ./spec/aircana/contexts/web_spec.rb[1:2:1] | passed | 0.00029 seconds |
115
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:1] | passed | 0.00022 seconds |
116
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:2] | passed | 0.0002 seconds |
117
+ ./spec/aircana/contexts/web_spec.rb[1:3:1:3] | passed | 0.0002 seconds |
118
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:1] | passed | 0.00028 seconds |
119
+ ./spec/aircana/contexts/web_spec.rb[1:3:2:2] | passed | 0.00043 seconds |
120
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:1] | passed | 0.00034 seconds |
121
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:2] | passed | 0.00049 seconds |
122
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:3] | passed | 0.00056 seconds |
123
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:4] | passed | 0.00031 seconds |
124
+ ./spec/aircana/contexts/web_spec.rb[1:3:3:5] | passed | 0.00038 seconds |
125
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:1] | passed | 0.00022 seconds |
126
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:2] | passed | 0.0002 seconds |
127
+ ./spec/aircana/contexts/web_spec.rb[1:3:4:3] | passed | 0.0002 seconds |
128
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:1] | passed | 0.0014 seconds |
129
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:2] | passed | 0.00029 seconds |
130
+ ./spec/aircana/contexts/web_spec.rb[1:3:5:3] | passed | 0.00055 seconds |
131
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:1] | passed | 0.00051 seconds |
132
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:2] | passed | 0.00051 seconds |
133
+ ./spec/aircana/contexts/web_spec.rb[1:3:6:3] | passed | 0.00042 seconds |
134
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:1] | passed | 0.00037 seconds |
135
+ ./spec/aircana/contexts/web_spec.rb[1:3:7:2] | passed | 0.0002 seconds |
136
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:1] | passed | 0.00026 seconds |
137
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:2] | passed | 0.00023 seconds |
138
+ ./spec/aircana/fzf_helper_spec.rb[1:1:1:3] | passed | 0.00028 seconds |
139
+ ./spec/aircana/fzf_helper_spec.rb[1:1:2:1] | passed | 0.00045 seconds |
140
+ ./spec/aircana/fzf_helper_spec.rb[1:1:3:1] | passed | 0.00032 seconds |
141
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:1] | passed | 0.00016 seconds |
142
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:2] | passed | 0.00016 seconds |
143
+ ./spec/aircana/fzf_helper_spec.rb[1:2:1:3] | passed | 0.00015 seconds |
144
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:1] | passed | 0.00015 seconds |
145
+ ./spec/aircana/fzf_helper_spec.rb[1:2:2:2] | passed | 0.00011 seconds |
146
+ ./spec/aircana/generators/agents_generator_spec.rb[1:1:1] | passed | 0.00005 seconds |
147
+ ./spec/aircana/generators/agents_generator_spec.rb[1:2:1] | passed | 0.00022 seconds |
148
+ ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:1] | passed | 0.00007 seconds |
149
+ ./spec/aircana/generators/agents_generator_spec.rb[1:3:1:2] | passed | 0.00006 seconds |
150
+ ./spec/aircana/generators/agents_generator_spec.rb[1:4:1:1] | passed | 0.00006 seconds |
151
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:1:1] | passed | 0.00004 seconds |
152
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:2:1] | passed | 0.00004 seconds |
153
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:1] | passed | 0.00054 seconds |
154
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:3:2] | passed | 0.00028 seconds |
155
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:4:1] | passed | 0.00013 seconds |
156
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:1:1] | passed | 0.00014 seconds |
157
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:5:2:1] | passed | 0.00005 seconds |
158
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:6:1] | passed | 0.0007 seconds |
159
+ ./spec/aircana/generators/hooks_generator_spec.rb[1:7:1] | passed | 0.0002 seconds |
160
+ ./spec/aircana/human_logger_spec.rb[1:1:1] | passed | 0.00008 seconds |
161
+ ./spec/aircana/human_logger_spec.rb[1:2:1] | passed | 0.00006 seconds |
162
+ ./spec/aircana/human_logger_spec.rb[1:3:1] | passed | 0.00005 seconds |
163
+ ./spec/aircana/human_logger_spec.rb[1:4:1] | passed | 0.00005 seconds |
164
+ ./spec/aircana/human_logger_spec.rb[1:5:1] | passed | 0.00004 seconds |
165
+ ./spec/aircana/human_logger_spec.rb[1:5:2] | passed | 0.00005 seconds |
166
+ ./spec/aircana/human_logger_spec.rb[1:5:3] | passed | 0.00004 seconds |
167
+ ./spec/aircana/human_logger_spec.rb[1:5:4] | passed | 0.00004 seconds |
168
+ ./spec/aircana/human_logger_spec.rb[1:5:5] | passed | 0.00004 seconds |
169
+ ./spec/aircana/human_logger_spec.rb[1:5:6] | passed | 0.00004 seconds |
170
+ ./spec/aircana/human_logger_spec.rb[1:5:7] | passed | 0.00005 seconds |
171
+ ./spec/aircana/human_logger_spec.rb[1:6:1] | passed | 0.00004 seconds |
172
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:1] | passed | 0.00076 seconds |
173
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:2] | passed | 0.00062 seconds |
174
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:3] | passed | 0.00053 seconds |
175
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:1:4] | passed | 0.0005 seconds |
176
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:1] | passed | 0.00052 seconds |
177
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:2:2] | passed | 0.00047 seconds |
178
+ ./spec/aircana/llm/claude_client_spec.rb[1:1:3:1] | passed | 0.0005 seconds |
179
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:1] | passed | 0.00041 seconds |
180
+ ./spec/aircana/llm/claude_client_spec.rb[1:2:2] | passed | 0.0004 seconds |
181
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:1] | passed | 0.00032 seconds |
182
+ ./spec/aircana/llm/claude_client_spec.rb[1:3:1:2] | passed | 0.00032 seconds |
183
+ ./spec/aircana/system_checker_spec.rb[1:1:1:1] | passed | 0.00049 seconds |
184
+ ./spec/aircana/system_checker_spec.rb[1:1:2:1] | passed | 0.0006 seconds |
185
+ ./spec/aircana/system_checker_spec.rb[1:1:3:1] | passed | 0.00089 seconds |
186
+ ./spec/aircana/system_checker_spec.rb[1:2:1] | passed | 0.00029 seconds |
187
+ ./spec/aircana/system_checker_spec.rb[1:2:2] | passed | 0.00043 seconds |
188
+ ./spec/aircana/system_checker_spec.rb[1:3:1] | passed | 0.00028 seconds |
189
+ ./spec/aircana/system_checker_spec.rb[1:3:2] | passed | 0.00029 seconds |
190
+ ./spec/aircana/system_checker_spec.rb[1:3:3] | passed | 0.00031 seconds |
191
+ ./spec/aircana/system_checker_spec.rb[1:3:4] | passed | 0.00047 seconds |
164
192
  ./spec/aircana/system_checker_spec.rb[1:3:5] | passed | 0.00028 seconds |
165
- ./spec/aircana_spec.rb[1:1] | passed | 0.0001 seconds |
166
- ./spec/aircana_spec.rb[1:2] | passed | 0.0012 seconds |
193
+ ./spec/aircana_spec.rb[1:1] | passed | 0.00005 seconds |
194
+ ./spec/aircana_spec.rb[1:2] | passed | 0.00091 seconds |
data/CHANGELOG.md CHANGED
@@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [0.1.0] - 2025-09-03
11
11
 
12
+ ### Added
13
+ - SQS notification integration (re-run `aircana install` to enable and see readme)
14
+ - Better, more concise agent markdown files produced by `aircana agents create`
15
+ - Added uniform naming to default slash commands shipped in aircana. All commands are now prefixed with `air`.
16
+
17
+ ## [0.1.0] - 2025-09-03
18
+
12
19
  ### Added
13
20
  - Initial release
14
21
  - Context management for AI agents
data/CLAUDE.md CHANGED
@@ -33,10 +33,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
33
33
  - `aircana dump-context <agent_name>` - Dump context for specified agent
34
34
  - `aircana generate` - Generate all configured files
35
35
  - `aircana install` - Install generated files to Claude Code config
36
- - `aircana plan` - Launch Claude Code with planner agent (experimental)
37
- - `aircana work` - Launch Claude Code with worker agent (experimental)
38
36
  - `aircana agents create` - Create a new agent interactively
39
- - `aircana agents refresh <agent>` - Refresh agent knowledge from Confluence
37
+ - `aircana agents refresh <agent>` - Refresh agent knowledge from Confluence and web sources
38
+ - `aircana agents add-url <agent> <url>` - Add a web URL to an agent's knowledge base
40
39
  - `aircana hooks list` - List all available hooks
41
40
  - `aircana hooks enable <hook>` - Enable a specific hook
42
41
  - `aircana hooks disable <hook>` - Disable a specific hook
@@ -57,6 +56,7 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
57
56
  - `relevant_files.rb`: Manages current working file set
58
57
  - `confluence.rb`: Handles Confluence page fetching and caching
59
58
  - `confluence_content.rb`: Processes Confluence content
59
+ - `web.rb`: Handles web URL fetching and HTML to Markdown conversion
60
60
  - `local.rb`: Local file context management
61
61
  - **Generators** (`lib/aircana/generators/`): Template generation system
62
62
  - `base_generator.rb`: Base class for all generators
@@ -95,9 +95,21 @@ Aircana is a Ruby gem that provides context management and workflow utilities fo
95
95
  - Rubocop configured with custom rules in `.rubocop.yml`
96
96
  - String style enforced as double quotes
97
97
 
98
- ### Confluence Integration
99
- When configured, agents can sync knowledge from Confluence:
98
+ ### Knowledge Sources
99
+ Agents can sync knowledge from multiple sources:
100
+
101
+ **Confluence Integration:**
100
102
  - Set environment variables: `CONFLUENCE_BASE_URL`, `CONFLUENCE_USERNAME`, `CONFLUENCE_API_TOKEN`
101
103
  - Pages are fetched based on agent name as label
102
104
  - Content cached locally for offline access
103
- - Refresh with `aircana agents refresh <agent>`
105
+
106
+ **Web URL Integration:**
107
+ - Add URLs directly to agent knowledge bases
108
+ - HTML content is automatically converted to Markdown
109
+ - Interactive URL collection during agent creation
110
+ - Add individual URLs: `aircana agents add-url <agent> <url>`
111
+
112
+ **Unified Management:**
113
+ - Both sources tracked in manifest.json for each agent
114
+ - Refresh all sources with `aircana agents refresh <agent>`
115
+ - Content stored as Markdown files in `.aircana/agents/<agent>/knowledge/`
data/README.md CHANGED
@@ -99,7 +99,7 @@ Create Claude Code agents with:
99
99
 
100
100
  Then in Claude Code, include them with whenever you want to reload the files into the current context:
101
101
  ```
102
- /ac-add-relevant-files
102
+ /air-add-relevant-files
103
103
  ```
104
104
 
105
105
  4. **Create an agent** (optional, but powerful with Confluence):
@@ -113,11 +113,13 @@ Create Claude Code agents with:
113
113
  aircana agents list # See all configured agents
114
114
  ```
115
115
 
116
- ## Confluence Setup (Optional)
116
+ ## Configuration (Optional)
117
+
118
+ ### Confluence Setup (Optional)
117
119
 
118
120
  To use agent knowledge sync features, you'll need to configure Confluence integration:
119
121
 
120
- ### 1. Generate Confluence API Token
122
+ #### 1. Generate Confluence API Token
121
123
 
122
124
  1. Go to your Confluence instance
123
125
  2. Click your profile picture → **Account Settings**
@@ -126,7 +128,7 @@ To use agent knowledge sync features, you'll need to configure Confluence integr
126
128
  5. Give it a descriptive name (e.g., "Aircana Integration")
127
129
  6. Copy the generated token
128
130
 
129
- ### 2. Set Environment Variables
131
+ #### 2. Set Environment Variables
130
132
 
131
133
  Add these to your shell profile (`.bashrc`, `.zshrc`, etc.):
132
134
 
@@ -136,15 +138,54 @@ export CONFLUENCE_USERNAME="your.email@company.com"
136
138
  export CONFLUENCE_API_TOKEN="your-generated-token"
137
139
  ```
138
140
 
141
+ ### SQS Notifications Setup (Optional)
142
+
143
+ To enable SQS notifications for Claude Code events (useful for Slack/Teams integration):
144
+
145
+ #### 1. Install AWS CLI
146
+
147
+ Make sure you have the AWS CLI installed:
148
+
149
+ ```bash
150
+ # macOS
151
+ brew install awscli
152
+
153
+ # Ubuntu/Debian
154
+ apt install awscli
155
+
156
+ # Configure AWS credentials
157
+ aws configure
158
+ ```
159
+
160
+ #### 2. Set Environment Variables
161
+
162
+ Add these to your shell profile (`.bashrc`, `.zshrc`, etc.):
163
+
164
+ ```bash
165
+ export AIRCANA_SQS_QUEUE_URL="https://sqs.us-east-1.amazonaws.com/your-account/your-queue"
166
+ export AIRCANA_SQS_MESSAGE_TEMPLATE='{"channel":"changelog","username":"Aircana","text":"{{message}}"}'
167
+ export AWS_REGION="us-east-1"
168
+ ```
169
+
170
+ The message template supports `{{message}}` placeholder which gets replaced with the Claude Code notification text.
171
+
172
+ #### 3. Install and Enable Hook
173
+
174
+ ```bash
175
+ aircana generate
176
+ aircana install
177
+ aircana hooks enable notification_sqs
178
+ ```
179
+
139
180
  Reload your shell or run `source ~/.zshrc` (or your shell config file).
140
181
 
141
- ### 3. Verify Configuration
182
+ ### Verify Configuration
142
183
 
143
184
  ```bash
144
185
  aircana doctor
145
186
  ```
146
187
 
147
- This will check if Confluence is properly configured.
188
+ This will check if Confluence and other integrations are properly configured.
148
189
 
149
190
  ## Agent Workflow Tutorial
150
191
 
@@ -9,8 +9,6 @@ require_relative "commands/doctor"
9
9
  require_relative "commands/dump_context"
10
10
  require_relative "commands/generate"
11
11
  require_relative "commands/install"
12
- require_relative "commands/plan"
13
- require_relative "commands/work"
14
12
 
15
13
  require_relative "subcommand"
16
14
  require_relative "help_formatter"
@@ -88,6 +86,11 @@ module Aircana
88
86
  def list
89
87
  Agents.list
90
88
  end
89
+
90
+ desc "add-url AGENT URL", "Add a web URL to an agent's knowledge base"
91
+ def add_url(agent, url)
92
+ Agents.add_url(agent, url)
93
+ end
91
94
  end
92
95
 
93
96
  class HooksSubcommand < Subcommand