aether-colony 3.1.5 → 3.1.16
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.
- package/.claude/commands/ant/archaeology.md +12 -0
- package/.claude/commands/ant/build.md +382 -319
- package/.claude/commands/ant/chaos.md +23 -1
- package/.claude/commands/ant/colonize.md +147 -87
- package/.claude/commands/ant/continue.md +213 -23
- package/.claude/commands/ant/council.md +22 -0
- package/.claude/commands/ant/dream.md +18 -0
- package/.claude/commands/ant/entomb.md +178 -6
- package/.claude/commands/ant/init.md +87 -13
- package/.claude/commands/ant/lay-eggs.md +45 -5
- package/.claude/commands/ant/oracle.md +82 -9
- package/.claude/commands/ant/organize.md +2 -2
- package/.claude/commands/ant/pause-colony.md +86 -28
- package/.claude/commands/ant/phase.md +26 -0
- package/.claude/commands/ant/plan.md +204 -111
- package/.claude/commands/ant/resume-colony.md +23 -1
- package/.claude/commands/ant/resume.md +159 -0
- package/.claude/commands/ant/seal.md +177 -3
- package/.claude/commands/ant/swarm.md +78 -97
- package/.claude/commands/ant/verify-castes.md +7 -7
- package/.claude/commands/ant/watch.md +17 -0
- package/.opencode/agents/aether-ambassador.md +97 -0
- package/.opencode/agents/aether-archaeologist.md +91 -0
- package/.opencode/agents/aether-architect.md +66 -0
- package/.opencode/agents/aether-auditor.md +111 -0
- package/.opencode/agents/aether-builder.md +28 -10
- package/.opencode/agents/aether-chaos.md +98 -0
- package/.opencode/agents/aether-chronicler.md +80 -0
- package/.opencode/agents/aether-gatekeeper.md +107 -0
- package/.opencode/agents/aether-guardian.md +107 -0
- package/.opencode/agents/aether-includer.md +108 -0
- package/.opencode/agents/aether-keeper.md +106 -0
- package/.opencode/agents/aether-measurer.md +119 -0
- package/.opencode/agents/aether-probe.md +91 -0
- package/.opencode/agents/aether-queen.md +72 -19
- package/.opencode/agents/aether-route-setter.md +85 -0
- package/.opencode/agents/aether-sage.md +98 -0
- package/.opencode/agents/aether-scout.md +33 -15
- package/.opencode/agents/aether-surveyor-disciplines.md +334 -0
- package/.opencode/agents/aether-surveyor-nest.md +272 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +209 -0
- package/.opencode/agents/aether-surveyor-provisions.md +277 -0
- package/.opencode/agents/aether-tracker.md +91 -0
- package/.opencode/agents/aether-watcher.md +30 -12
- package/.opencode/agents/aether-weaver.md +87 -0
- package/.opencode/agents/workers.md +1034 -0
- package/.opencode/commands/ant/archaeology.md +44 -26
- package/.opencode/commands/ant/build.md +326 -294
- package/.opencode/commands/ant/chaos.md +32 -4
- package/.opencode/commands/ant/colonize.md +119 -93
- package/.opencode/commands/ant/continue.md +98 -10
- package/.opencode/commands/ant/council.md +28 -0
- package/.opencode/commands/ant/dream.md +24 -0
- package/.opencode/commands/ant/entomb.md +73 -1
- package/.opencode/commands/ant/feedback.md +8 -2
- package/.opencode/commands/ant/flag.md +9 -3
- package/.opencode/commands/ant/flags.md +8 -2
- package/.opencode/commands/ant/focus.md +8 -2
- package/.opencode/commands/ant/help.md +12 -0
- package/.opencode/commands/ant/init.md +49 -4
- package/.opencode/commands/ant/lay-eggs.md +30 -2
- package/.opencode/commands/ant/oracle.md +39 -7
- package/.opencode/commands/ant/organize.md +8 -2
- package/.opencode/commands/ant/pause-colony.md +54 -1
- package/.opencode/commands/ant/phase.md +36 -4
- package/.opencode/commands/ant/plan.md +224 -116
- package/.opencode/commands/ant/redirect.md +8 -2
- package/.opencode/commands/ant/resume-colony.md +51 -26
- package/.opencode/commands/ant/seal.md +76 -0
- package/.opencode/commands/ant/status.md +50 -20
- package/.opencode/commands/ant/swarm.md +108 -104
- package/.opencode/commands/ant/tunnels.md +107 -2
- package/CHANGELOG.md +16 -0
- package/README.md +199 -86
- package/bin/cli.js +142 -25
- package/bin/generate-commands.sh +100 -16
- package/bin/lib/caste-colors.js +5 -5
- package/bin/lib/errors.js +16 -0
- package/bin/lib/file-lock.js +279 -44
- package/bin/lib/state-sync.js +206 -23
- package/bin/lib/update-transaction.js +206 -24
- package/bin/sync-to-runtime.sh +138 -0
- package/package.json +2 -2
- package/runtime/CONTEXT.md +160 -0
- package/runtime/aether-utils.sh +1421 -55
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +1343 -0
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +2642 -0
- package/runtime/docs/PHEROMONE-INJECTION.md +240 -0
- package/runtime/docs/PHEROMONE-INTEGRATION.md +192 -0
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +426 -0
- package/runtime/docs/README.md +94 -0
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +219 -0
- package/runtime/docs/biological-reference.md +272 -0
- package/runtime/docs/codebase-review.md +399 -0
- package/runtime/docs/command-sync.md +164 -0
- package/runtime/docs/implementation-learnings.md +89 -0
- package/runtime/docs/known-issues.md +217 -0
- package/runtime/docs/namespace.md +148 -0
- package/runtime/docs/planning-discipline.md +159 -0
- package/runtime/exchange/pheromone-xml.sh +574 -0
- package/runtime/exchange/registry-xml.sh +269 -0
- package/runtime/exchange/wisdom-xml.sh +312 -0
- package/runtime/lib/queen-utils.sh +729 -0
- package/runtime/model-profiles.yaml +100 -0
- package/runtime/recover.sh +136 -0
- package/runtime/schemas/aether-types.xsd +255 -0
- package/runtime/schemas/colony-registry.xsd +309 -0
- package/runtime/schemas/pheromone.xsd +163 -0
- package/runtime/schemas/prompt.xsd +416 -0
- package/runtime/schemas/queen-wisdom.xsd +325 -0
- package/runtime/schemas/worker-priming.xsd +276 -0
- package/runtime/templates/QUEEN.md.template +79 -0
- package/runtime/utils/atomic-write.sh +5 -5
- package/runtime/utils/chamber-utils.sh +6 -3
- package/runtime/utils/error-handler.sh +200 -0
- package/runtime/utils/queen-to-md.xsl +395 -0
- package/runtime/utils/spawn-tree.sh +428 -0
- package/runtime/utils/spawn-with-model.sh +56 -0
- package/runtime/utils/state-loader.sh +215 -0
- package/runtime/utils/swarm-display.sh +5 -5
- package/runtime/utils/watch-spawn-tree.sh +90 -22
- package/runtime/utils/xml-compose.sh +247 -0
- package/runtime/utils/xml-core.sh +186 -0
- package/runtime/utils/xml-utils.sh +2196 -0
- package/runtime/verification-loop.md +1 -1
- package/runtime/workers-new-castes.md +516 -0
- package/runtime/workers.md +18 -6
- package/.aether/visualizations/anthill-stages/brood-stable.txt +0 -26
- package/.aether/visualizations/anthill-stages/crowned-anthill.txt +0 -30
- package/.aether/visualizations/anthill-stages/first-mound.txt +0 -18
- package/.aether/visualizations/anthill-stages/open-chambers.txt +0 -24
- package/.aether/visualizations/anthill-stages/sealed-chambers.txt +0 -28
- package/.aether/visualizations/anthill-stages/ventilated-nest.txt +0 -27
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
Aether Colony Registry Schema
|
|
4
|
+
|
|
5
|
+
Defines the structure for multi-colony registry XML documents.
|
|
6
|
+
Used for tracking colony lineage, ancestry, and cross-colony relationships.
|
|
7
|
+
|
|
8
|
+
Version: 1.0.0
|
|
9
|
+
Purpose: Eternal memory - colony registry with pheromone inheritance tracking
|
|
10
|
+
-->
|
|
11
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
12
|
+
elementFormDefault="qualified">
|
|
13
|
+
|
|
14
|
+
<!-- ============================================ -->
|
|
15
|
+
<!-- Simple Types -->
|
|
16
|
+
<!-- ============================================ -->
|
|
17
|
+
|
|
18
|
+
<!-- Colony ID: alphanumeric with hyphens, 3-64 chars -->
|
|
19
|
+
<xs:simpleType name="colonyIdType">
|
|
20
|
+
<xs:restriction base="xs:string">
|
|
21
|
+
<xs:pattern value="[a-zA-Z0-9][a-zA-Z0-9-]{2,63}"/>
|
|
22
|
+
<xs:minLength value="3"/>
|
|
23
|
+
<xs:maxLength value="64"/>
|
|
24
|
+
</xs:restriction>
|
|
25
|
+
</xs:simpleType>
|
|
26
|
+
|
|
27
|
+
<!-- Colony Status: active, paused, or archived -->
|
|
28
|
+
<xs:simpleType name="colonyStatusType">
|
|
29
|
+
<xs:restriction base="xs:string">
|
|
30
|
+
<xs:enumeration value="active"/>
|
|
31
|
+
<xs:enumeration value="paused"/>
|
|
32
|
+
<xs:enumeration value="archived"/>
|
|
33
|
+
</xs:restriction>
|
|
34
|
+
</xs:simpleType>
|
|
35
|
+
|
|
36
|
+
<!-- ISO 8601 timestamp -->
|
|
37
|
+
<xs:simpleType name="timestampType">
|
|
38
|
+
<xs:restriction base="xs:string">
|
|
39
|
+
<xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?"/>
|
|
40
|
+
</xs:restriction>
|
|
41
|
+
</xs:simpleType>
|
|
42
|
+
|
|
43
|
+
<!-- Semantic version string -->
|
|
44
|
+
<xs:simpleType name="versionType">
|
|
45
|
+
<xs:restriction base="xs:string">
|
|
46
|
+
<xs:pattern value="\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?"/>
|
|
47
|
+
</xs:restriction>
|
|
48
|
+
</xs:simpleType>
|
|
49
|
+
|
|
50
|
+
<!-- Pheromone strength: 0.0 to 1.0 -->
|
|
51
|
+
<xs:simpleType name="pheromoneStrengthType">
|
|
52
|
+
<xs:restriction base="xs:decimal">
|
|
53
|
+
<xs:minInclusive value="0.0"/>
|
|
54
|
+
<xs:maxInclusive value="1.0"/>
|
|
55
|
+
<xs:fractionDigits value="3"/>
|
|
56
|
+
</xs:restriction>
|
|
57
|
+
</xs:simpleType>
|
|
58
|
+
|
|
59
|
+
<!-- Relationship type between colonies -->
|
|
60
|
+
<xs:simpleType name="relationshipType">
|
|
61
|
+
<xs:restriction base="xs:string">
|
|
62
|
+
<xs:enumeration value="parent"/>
|
|
63
|
+
<xs:enumeration value="child"/>
|
|
64
|
+
<xs:enumeration value="sibling"/>
|
|
65
|
+
<xs:enumeration value="fork"/>
|
|
66
|
+
<xs:enumeration value="merge"/>
|
|
67
|
+
<xs:enumeration value="reference"/>
|
|
68
|
+
</xs:restriction>
|
|
69
|
+
</xs:simpleType>
|
|
70
|
+
|
|
71
|
+
<!-- Pheromone type classification -->
|
|
72
|
+
<xs:simpleType name="pheromoneTypeEnum">
|
|
73
|
+
<xs:restriction base="xs:string">
|
|
74
|
+
<xs:enumeration value="focus"/>
|
|
75
|
+
<xs:enumeration value="redirect"/>
|
|
76
|
+
<xs:enumeration value="feedback"/>
|
|
77
|
+
</xs:restriction>
|
|
78
|
+
</xs:simpleType>
|
|
79
|
+
|
|
80
|
+
<!-- ============================================ -->
|
|
81
|
+
<!-- Complex Types -->
|
|
82
|
+
<!-- ============================================ -->
|
|
83
|
+
|
|
84
|
+
<!-- Pheromone entry: inherited wisdom from parent colony -->
|
|
85
|
+
<xs:complexType name="pheromoneType">
|
|
86
|
+
<xs:sequence>
|
|
87
|
+
<xs:element name="key" type="xs:string"/>
|
|
88
|
+
<xs:element name="value" type="xs:string"/>
|
|
89
|
+
<xs:element name="strength" type="pheromoneStrengthType"/>
|
|
90
|
+
<xs:element name="inherited-at" type="timestampType"/>
|
|
91
|
+
<xs:element name="source-colony" type="colonyIdType"/>
|
|
92
|
+
</xs:sequence>
|
|
93
|
+
<xs:attribute name="type" type="pheromoneTypeEnum" use="optional" default="feedback"/>
|
|
94
|
+
</xs:complexType>
|
|
95
|
+
|
|
96
|
+
<!-- Ancestor entry for ancestry chain -->
|
|
97
|
+
<xs:complexType name="ancestorType">
|
|
98
|
+
<xs:simpleContent>
|
|
99
|
+
<xs:extension base="colonyIdType">
|
|
100
|
+
<xs:attribute name="generation" type="xs:nonNegativeInteger" use="required"/>
|
|
101
|
+
<xs:attribute name="relationship" type="relationshipType" use="optional" default="parent"/>
|
|
102
|
+
</xs:extension>
|
|
103
|
+
</xs:simpleContent>
|
|
104
|
+
</xs:complexType>
|
|
105
|
+
|
|
106
|
+
<!-- Lineage entry: ancestry tracking -->
|
|
107
|
+
<xs:complexType name="lineageType">
|
|
108
|
+
<xs:sequence>
|
|
109
|
+
<xs:element name="parent-colony" type="colonyIdType" minOccurs="0" maxOccurs="unbounded"/>
|
|
110
|
+
<xs:element name="forked-from" type="colonyIdType" minOccurs="0"/>
|
|
111
|
+
<xs:element name="generation" type="xs:positiveInteger" minOccurs="0"/>
|
|
112
|
+
<xs:element name="ancestry-chain" minOccurs="0">
|
|
113
|
+
<xs:complexType>
|
|
114
|
+
<xs:sequence>
|
|
115
|
+
<xs:element name="ancestor" type="ancestorType" maxOccurs="unbounded"/>
|
|
116
|
+
</xs:sequence>
|
|
117
|
+
</xs:complexType>
|
|
118
|
+
</xs:element>
|
|
119
|
+
</xs:sequence>
|
|
120
|
+
</xs:complexType>
|
|
121
|
+
|
|
122
|
+
<!-- Metadata entry key-value pair -->
|
|
123
|
+
<xs:complexType name="metadataEntryType">
|
|
124
|
+
<xs:sequence>
|
|
125
|
+
<xs:element name="key" type="xs:string"/>
|
|
126
|
+
<xs:element name="value" type="xs:string"/>
|
|
127
|
+
</xs:sequence>
|
|
128
|
+
</xs:complexType>
|
|
129
|
+
|
|
130
|
+
<!-- Relationship entry: connections to other colonies -->
|
|
131
|
+
<xs:complexType name="relationshipEntryType">
|
|
132
|
+
<xs:sequence>
|
|
133
|
+
<xs:element name="target-colony" type="colonyIdType"/>
|
|
134
|
+
<xs:element name="relationship" type="relationshipType"/>
|
|
135
|
+
<xs:element name="established-at" type="timestampType"/>
|
|
136
|
+
<xs:element name="metadata" minOccurs="0">
|
|
137
|
+
<xs:complexType>
|
|
138
|
+
<xs:sequence>
|
|
139
|
+
<xs:element name="entry" type="metadataEntryType" maxOccurs="unbounded"/>
|
|
140
|
+
</xs:sequence>
|
|
141
|
+
</xs:complexType>
|
|
142
|
+
</xs:element>
|
|
143
|
+
</xs:sequence>
|
|
144
|
+
</xs:complexType>
|
|
145
|
+
|
|
146
|
+
<!-- Pheromones container -->
|
|
147
|
+
<xs:complexType name="pheromonesContainerType">
|
|
148
|
+
<xs:sequence>
|
|
149
|
+
<xs:element name="pheromone" type="pheromoneType" minOccurs="0" maxOccurs="unbounded"/>
|
|
150
|
+
</xs:sequence>
|
|
151
|
+
<xs:attribute name="count" type="xs:nonNegativeInteger" use="optional"/>
|
|
152
|
+
</xs:complexType>
|
|
153
|
+
|
|
154
|
+
<!-- Relationships container -->
|
|
155
|
+
<xs:complexType name="relationshipsContainerType">
|
|
156
|
+
<xs:sequence>
|
|
157
|
+
<xs:element name="relationship" type="relationshipEntryType" maxOccurs="unbounded"/>
|
|
158
|
+
</xs:sequence>
|
|
159
|
+
</xs:complexType>
|
|
160
|
+
|
|
161
|
+
<!-- Tags container -->
|
|
162
|
+
<xs:complexType name="tagsContainerType">
|
|
163
|
+
<xs:sequence>
|
|
164
|
+
<xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
|
|
165
|
+
</xs:sequence>
|
|
166
|
+
</xs:complexType>
|
|
167
|
+
|
|
168
|
+
<!-- Attributes container -->
|
|
169
|
+
<xs:complexType name="attributesContainerType">
|
|
170
|
+
<xs:sequence>
|
|
171
|
+
<xs:element name="attribute" type="metadataEntryType" maxOccurs="unbounded"/>
|
|
172
|
+
</xs:sequence>
|
|
173
|
+
</xs:complexType>
|
|
174
|
+
|
|
175
|
+
<!-- Colony metadata -->
|
|
176
|
+
<xs:complexType name="colonyMetadataType">
|
|
177
|
+
<xs:sequence>
|
|
178
|
+
<xs:element name="schema-version" type="versionType"/>
|
|
179
|
+
<xs:element name="tags" type="tagsContainerType" minOccurs="0"/>
|
|
180
|
+
<xs:element name="attributes" type="attributesContainerType" minOccurs="0"/>
|
|
181
|
+
</xs:sequence>
|
|
182
|
+
</xs:complexType>
|
|
183
|
+
|
|
184
|
+
<!-- Colony entry: single colony definition -->
|
|
185
|
+
<xs:complexType name="colonyType">
|
|
186
|
+
<xs:sequence>
|
|
187
|
+
<!-- Identity -->
|
|
188
|
+
<xs:element name="id" type="colonyIdType"/>
|
|
189
|
+
<xs:element name="name" type="xs:string"/>
|
|
190
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
191
|
+
|
|
192
|
+
<!-- Location -->
|
|
193
|
+
<xs:element name="path" type="xs:string"/>
|
|
194
|
+
<xs:element name="repository-url" type="xs:anyURI" minOccurs="0"/>
|
|
195
|
+
|
|
196
|
+
<!-- Status -->
|
|
197
|
+
<xs:element name="status" type="colonyStatusType"/>
|
|
198
|
+
<xs:element name="created-at" type="timestampType"/>
|
|
199
|
+
<xs:element name="last-active" type="timestampType"/>
|
|
200
|
+
|
|
201
|
+
<!-- Lineage -->
|
|
202
|
+
<xs:element name="lineage" type="lineageType" minOccurs="0"/>
|
|
203
|
+
|
|
204
|
+
<!-- Inherited pheromones -->
|
|
205
|
+
<xs:element name="pheromones-inherited" type="pheromonesContainerType" minOccurs="0"/>
|
|
206
|
+
|
|
207
|
+
<!-- Relationships to other colonies -->
|
|
208
|
+
<xs:element name="relationships" type="relationshipsContainerType" minOccurs="0"/>
|
|
209
|
+
|
|
210
|
+
<!-- Metadata -->
|
|
211
|
+
<xs:element name="metadata" type="colonyMetadataType" minOccurs="0"/>
|
|
212
|
+
</xs:sequence>
|
|
213
|
+
</xs:complexType>
|
|
214
|
+
|
|
215
|
+
<!-- Registry info -->
|
|
216
|
+
<xs:complexType name="registryInfoType">
|
|
217
|
+
<xs:sequence>
|
|
218
|
+
<xs:element name="name" type="xs:string"/>
|
|
219
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
220
|
+
<xs:element name="version" type="versionType"/>
|
|
221
|
+
<xs:element name="created-at" type="timestampType"/>
|
|
222
|
+
<xs:element name="updated-at" type="timestampType"/>
|
|
223
|
+
<xs:element name="total-colonies" type="xs:nonNegativeInteger"/>
|
|
224
|
+
</xs:sequence>
|
|
225
|
+
</xs:complexType>
|
|
226
|
+
|
|
227
|
+
<!-- Colonies container -->
|
|
228
|
+
<xs:complexType name="coloniesContainerType">
|
|
229
|
+
<xs:sequence>
|
|
230
|
+
<xs:element name="colony" type="colonyType" maxOccurs="unbounded"/>
|
|
231
|
+
</xs:sequence>
|
|
232
|
+
</xs:complexType>
|
|
233
|
+
|
|
234
|
+
<!-- Global relationship entry -->
|
|
235
|
+
<xs:complexType name="globalRelationshipType">
|
|
236
|
+
<xs:sequence>
|
|
237
|
+
<xs:element name="from-colony" type="colonyIdType"/>
|
|
238
|
+
<xs:element name="to-colony" type="colonyIdType"/>
|
|
239
|
+
<xs:element name="type" type="relationshipType"/>
|
|
240
|
+
<xs:element name="description" type="xs:string" minOccurs="0"/>
|
|
241
|
+
</xs:sequence>
|
|
242
|
+
</xs:complexType>
|
|
243
|
+
|
|
244
|
+
<!-- Global relationships container -->
|
|
245
|
+
<xs:complexType name="globalRelationshipsContainerType">
|
|
246
|
+
<xs:sequence>
|
|
247
|
+
<xs:element name="relationship" type="globalRelationshipType" maxOccurs="unbounded"/>
|
|
248
|
+
</xs:sequence>
|
|
249
|
+
</xs:complexType>
|
|
250
|
+
|
|
251
|
+
<!-- ============================================ -->
|
|
252
|
+
<!-- Root Element -->
|
|
253
|
+
<!-- ============================================ -->
|
|
254
|
+
|
|
255
|
+
<xs:element name="colony-registry">
|
|
256
|
+
<xs:complexType>
|
|
257
|
+
<xs:sequence>
|
|
258
|
+
<!-- Registry metadata -->
|
|
259
|
+
<xs:element name="registry-info" type="registryInfoType"/>
|
|
260
|
+
|
|
261
|
+
<!-- Colony entries -->
|
|
262
|
+
<xs:element name="colonies" type="coloniesContainerType"/>
|
|
263
|
+
|
|
264
|
+
<!-- Global relationships (optional) -->
|
|
265
|
+
<xs:element name="global-relationships" type="globalRelationshipsContainerType" minOccurs="0"/>
|
|
266
|
+
</xs:sequence>
|
|
267
|
+
<xs:attribute name="version" type="versionType" use="required"/>
|
|
268
|
+
</xs:complexType>
|
|
269
|
+
|
|
270
|
+
<!-- Key constraints - colony IDs must be unique -->
|
|
271
|
+
<xs:key name="colonyIdKey">
|
|
272
|
+
<xs:selector xpath="colonies/colony"/>
|
|
273
|
+
<xs:field xpath="id"/>
|
|
274
|
+
</xs:key>
|
|
275
|
+
|
|
276
|
+
<!-- Reference constraints for lineage - parent colonies must exist -->
|
|
277
|
+
<xs:keyref name="parentColonyRef" refer="colonyIdKey">
|
|
278
|
+
<xs:selector xpath="colonies/colony/lineage/parent-colony"/>
|
|
279
|
+
<xs:field xpath="."/>
|
|
280
|
+
</xs:keyref>
|
|
281
|
+
|
|
282
|
+
<xs:keyref name="forkedFromRef" refer="colonyIdKey">
|
|
283
|
+
<xs:selector xpath="colonies/colony/lineage/forked-from"/>
|
|
284
|
+
<xs:field xpath="."/>
|
|
285
|
+
</xs:keyref>
|
|
286
|
+
|
|
287
|
+
<xs:keyref name="ancestorRef" refer="colonyIdKey">
|
|
288
|
+
<xs:selector xpath="colonies/colony/lineage/ancestry-chain/ancestor"/>
|
|
289
|
+
<xs:field xpath="."/>
|
|
290
|
+
</xs:keyref>
|
|
291
|
+
|
|
292
|
+
<!-- Reference constraints for relationships -->
|
|
293
|
+
<xs:keyref name="relationshipTargetRef" refer="colonyIdKey">
|
|
294
|
+
<xs:selector xpath="colonies/colony/relationships/relationship/target-colony"/>
|
|
295
|
+
<xs:field xpath="."/>
|
|
296
|
+
</xs:keyref>
|
|
297
|
+
|
|
298
|
+
<xs:keyref name="globalFromRef" refer="colonyIdKey">
|
|
299
|
+
<xs:selector xpath="global-relationships/relationship/from-colony"/>
|
|
300
|
+
<xs:field xpath="."/>
|
|
301
|
+
</xs:keyref>
|
|
302
|
+
|
|
303
|
+
<xs:keyref name="globalToRef" refer="colonyIdKey">
|
|
304
|
+
<xs:selector xpath="global-relationships/relationship/to-colony"/>
|
|
305
|
+
<xs:field xpath="."/>
|
|
306
|
+
</xs:keyref>
|
|
307
|
+
</xs:element>
|
|
308
|
+
|
|
309
|
+
</xs:schema>
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
3
|
+
xmlns:ph="http://aether.colony/schemas/pheromones"
|
|
4
|
+
xmlns:types="http://aether.colony/schemas/types/1.0"
|
|
5
|
+
targetNamespace="http://aether.colony/schemas/pheromones"
|
|
6
|
+
elementFormDefault="qualified"
|
|
7
|
+
attributeFormDefault="unqualified">
|
|
8
|
+
|
|
9
|
+
<!-- Import shared types from aether-types.xsd -->
|
|
10
|
+
<xs:import namespace="http://aether.colony/schemas/types/1.0"
|
|
11
|
+
schemaLocation="aether-types.xsd"/>
|
|
12
|
+
|
|
13
|
+
<xs:annotation>
|
|
14
|
+
<xs:documentation>
|
|
15
|
+
Aether Colony Pheromone Exchange Format Schema
|
|
16
|
+
|
|
17
|
+
Defines the XML structure for pheromone signals used in colony
|
|
18
|
+
communication. Pheromones are directional signals that guide
|
|
19
|
+
worker behavior without direct command chains.
|
|
20
|
+
|
|
21
|
+
Signal Types:
|
|
22
|
+
- FOCUS: Direct attention to specific area (normal priority)
|
|
23
|
+
- REDIRECT: Hard constraint, avoid this path (high priority)
|
|
24
|
+
- FEEDBACK: Gentle adjustment based on observation (low priority)
|
|
25
|
+
|
|
26
|
+
Version: 1.0.0
|
|
27
|
+
</xs:documentation>
|
|
28
|
+
</xs:annotation>
|
|
29
|
+
|
|
30
|
+
<!-- Root element: container for all pheromone signals -->
|
|
31
|
+
<xs:element name="pheromones" type="ph:PheromonesType">
|
|
32
|
+
<xs:annotation>
|
|
33
|
+
<xs:documentation>
|
|
34
|
+
Root element containing a collection of pheromone signals.
|
|
35
|
+
Signals are processed in priority order (high to low) then
|
|
36
|
+
by creation time (newest first).
|
|
37
|
+
</xs:documentation>
|
|
38
|
+
</xs:annotation>
|
|
39
|
+
</xs:element>
|
|
40
|
+
|
|
41
|
+
<!-- Complex type for the root pheromones container -->
|
|
42
|
+
<xs:complexType name="PheromonesType">
|
|
43
|
+
<xs:sequence>
|
|
44
|
+
<xs:element name="metadata" type="ph:MetadataType" minOccurs="0" maxOccurs="1"/>
|
|
45
|
+
<xs:element name="signal" type="ph:SignalType" minOccurs="0" maxOccurs="unbounded"/>
|
|
46
|
+
</xs:sequence>
|
|
47
|
+
<xs:attribute name="version" type="types:VersionType" use="required"/>
|
|
48
|
+
<xs:attribute name="generated_at" type="xs:dateTime" use="required"/>
|
|
49
|
+
<xs:attribute name="colony_id" type="types:IdentifierType" use="optional"/>
|
|
50
|
+
<xs:anyAttribute namespace="##any" processContents="lax"/>
|
|
51
|
+
</xs:complexType>
|
|
52
|
+
|
|
53
|
+
<!-- Metadata for the pheromone collection -->
|
|
54
|
+
<xs:complexType name="MetadataType">
|
|
55
|
+
<xs:sequence>
|
|
56
|
+
<xs:element name="source" type="ph:SourceType" minOccurs="0" maxOccurs="1"/>
|
|
57
|
+
<xs:element name="context" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
|
58
|
+
</xs:sequence>
|
|
59
|
+
</xs:complexType>
|
|
60
|
+
|
|
61
|
+
<!-- Source information for traceability -->
|
|
62
|
+
<xs:complexType name="SourceType">
|
|
63
|
+
<xs:simpleContent>
|
|
64
|
+
<xs:extension base="xs:string">
|
|
65
|
+
<xs:attribute name="type" type="types:SourceTypeEnum" use="required"/>
|
|
66
|
+
<xs:attribute name="version" type="types:VersionType" use="optional"/>
|
|
67
|
+
</xs:extension>
|
|
68
|
+
</xs:simpleContent>
|
|
69
|
+
</xs:complexType>
|
|
70
|
+
|
|
71
|
+
<!-- Individual pheromone signal -->
|
|
72
|
+
<xs:complexType name="SignalType">
|
|
73
|
+
<xs:sequence>
|
|
74
|
+
<xs:element name="content" type="ph:ContentType"/>
|
|
75
|
+
<xs:element name="tags" type="ph:TagsType" minOccurs="0" maxOccurs="1"/>
|
|
76
|
+
<xs:element name="scope" type="ph:ScopeType" minOccurs="0" maxOccurs="1"/>
|
|
77
|
+
</xs:sequence>
|
|
78
|
+
<xs:attribute name="id" type="types:IdentifierType" use="required"/>
|
|
79
|
+
<xs:attribute name="type" type="ph:SignalTypeEnum" use="required"/>
|
|
80
|
+
<xs:attribute name="priority" type="types:PriorityType" use="required"/>
|
|
81
|
+
<xs:attribute name="source" type="types:IdentifierType" use="required"/>
|
|
82
|
+
<xs:attribute name="created_at" type="xs:dateTime" use="required"/>
|
|
83
|
+
<xs:attribute name="expires_at" type="xs:dateTime" use="optional"/>
|
|
84
|
+
<xs:attribute name="active" type="xs:boolean" use="optional" default="true"/>
|
|
85
|
+
</xs:complexType>
|
|
86
|
+
|
|
87
|
+
<!-- Signal content with optional structured data -->
|
|
88
|
+
<xs:complexType name="ContentType" mixed="true">
|
|
89
|
+
<xs:sequence>
|
|
90
|
+
<xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
|
91
|
+
<xs:element name="data" type="ph:DataType" minOccurs="0" maxOccurs="1"/>
|
|
92
|
+
</xs:sequence>
|
|
93
|
+
</xs:complexType>
|
|
94
|
+
|
|
95
|
+
<!-- Structured data attachment -->
|
|
96
|
+
<xs:complexType name="DataType">
|
|
97
|
+
<xs:sequence>
|
|
98
|
+
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
|
99
|
+
</xs:sequence>
|
|
100
|
+
<xs:attribute name="format" type="types:DataFormatEnum" use="optional" default="json"/>
|
|
101
|
+
</xs:complexType>
|
|
102
|
+
|
|
103
|
+
<!-- Tags for categorization and filtering -->
|
|
104
|
+
<xs:complexType name="TagsType">
|
|
105
|
+
<xs:sequence>
|
|
106
|
+
<xs:element name="tag" type="ph:TagType" minOccurs="0" maxOccurs="unbounded"/>
|
|
107
|
+
</xs:sequence>
|
|
108
|
+
</xs:complexType>
|
|
109
|
+
|
|
110
|
+
<!-- Individual tag with optional weight -->
|
|
111
|
+
<xs:complexType name="TagType">
|
|
112
|
+
<xs:simpleContent>
|
|
113
|
+
<xs:extension base="xs:string">
|
|
114
|
+
<xs:attribute name="weight" type="types:WeightType" use="optional" default="1.0"/>
|
|
115
|
+
<xs:attribute name="category" type="xs:string" use="optional"/>
|
|
116
|
+
</xs:extension>
|
|
117
|
+
</xs:simpleContent>
|
|
118
|
+
</xs:complexType>
|
|
119
|
+
|
|
120
|
+
<!-- Scope definition for signal applicability -->
|
|
121
|
+
<xs:complexType name="ScopeType">
|
|
122
|
+
<xs:sequence>
|
|
123
|
+
<xs:element name="castes" type="ph:CastesType" minOccurs="0" maxOccurs="1"/>
|
|
124
|
+
<xs:element name="paths" type="ph:PathsType" minOccurs="0" maxOccurs="1"/>
|
|
125
|
+
<xs:element name="phases" type="ph:PhasesType" minOccurs="0" maxOccurs="1"/>
|
|
126
|
+
</xs:sequence>
|
|
127
|
+
<xs:attribute name="global" type="xs:boolean" use="optional" default="false"/>
|
|
128
|
+
</xs:complexType>
|
|
129
|
+
|
|
130
|
+
<!-- Target castes -->
|
|
131
|
+
<xs:complexType name="CastesType">
|
|
132
|
+
<xs:sequence>
|
|
133
|
+
<xs:element name="caste" type="types:CasteEnum" minOccurs="0" maxOccurs="unbounded"/>
|
|
134
|
+
</xs:sequence>
|
|
135
|
+
<xs:attribute name="match" type="types:MatchEnum" use="optional" default="any"/>
|
|
136
|
+
</xs:complexType>
|
|
137
|
+
|
|
138
|
+
<!-- Target file paths (glob patterns supported) -->
|
|
139
|
+
<xs:complexType name="PathsType">
|
|
140
|
+
<xs:sequence>
|
|
141
|
+
<xs:element name="path" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
142
|
+
</xs:sequence>
|
|
143
|
+
<xs:attribute name="match" type="types:MatchEnum" use="optional" default="any"/>
|
|
144
|
+
</xs:complexType>
|
|
145
|
+
|
|
146
|
+
<!-- Target phases -->
|
|
147
|
+
<xs:complexType name="PhasesType">
|
|
148
|
+
<xs:sequence>
|
|
149
|
+
<xs:element name="phase" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
150
|
+
</xs:sequence>
|
|
151
|
+
<xs:attribute name="match" type="types:MatchEnum" use="optional" default="any"/>
|
|
152
|
+
</xs:complexType>
|
|
153
|
+
|
|
154
|
+
<!-- Signal type enumeration (pheromone-specific, not in shared types) -->
|
|
155
|
+
<xs:simpleType name="SignalTypeEnum">
|
|
156
|
+
<xs:restriction base="xs:string">
|
|
157
|
+
<xs:enumeration value="FOCUS"/>
|
|
158
|
+
<xs:enumeration value="REDIRECT"/>
|
|
159
|
+
<xs:enumeration value="FEEDBACK"/>
|
|
160
|
+
</xs:restriction>
|
|
161
|
+
</xs:simpleType>
|
|
162
|
+
|
|
163
|
+
</xs:schema>
|