agentopology 0.1.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 (174) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +450 -0
  3. package/dist/analyzer/__tests__/analyzer.test.d.ts +2 -0
  4. package/dist/analyzer/__tests__/analyzer.test.d.ts.map +1 -0
  5. package/dist/analyzer/__tests__/analyzer.test.js +258 -0
  6. package/dist/analyzer/__tests__/analyzer.test.js.map +1 -0
  7. package/dist/analyzer/index.d.ts +44 -0
  8. package/dist/analyzer/index.d.ts.map +1 -0
  9. package/dist/analyzer/index.js +308 -0
  10. package/dist/analyzer/index.js.map +1 -0
  11. package/dist/bindings/__tests__/bindings.test.d.ts +2 -0
  12. package/dist/bindings/__tests__/bindings.test.d.ts.map +1 -0
  13. package/dist/bindings/__tests__/bindings.test.js +2089 -0
  14. package/dist/bindings/__tests__/bindings.test.js.map +1 -0
  15. package/dist/bindings/claude-code.d.ts +12 -0
  16. package/dist/bindings/claude-code.d.ts.map +1 -0
  17. package/dist/bindings/claude-code.js +2063 -0
  18. package/dist/bindings/claude-code.js.map +1 -0
  19. package/dist/bindings/codex.d.ts +18 -0
  20. package/dist/bindings/codex.d.ts.map +1 -0
  21. package/dist/bindings/codex.js +1633 -0
  22. package/dist/bindings/codex.js.map +1 -0
  23. package/dist/bindings/copilot-cli.d.ts +20 -0
  24. package/dist/bindings/copilot-cli.d.ts.map +1 -0
  25. package/dist/bindings/copilot-cli.js +1515 -0
  26. package/dist/bindings/copilot-cli.js.map +1 -0
  27. package/dist/bindings/cursor.d.ts +17 -0
  28. package/dist/bindings/cursor.d.ts.map +1 -0
  29. package/dist/bindings/cursor.js +1715 -0
  30. package/dist/bindings/cursor.js.map +1 -0
  31. package/dist/bindings/gemini-cli.d.ts +18 -0
  32. package/dist/bindings/gemini-cli.d.ts.map +1 -0
  33. package/dist/bindings/gemini-cli.js +1327 -0
  34. package/dist/bindings/gemini-cli.js.map +1 -0
  35. package/dist/bindings/index.d.ts +20 -0
  36. package/dist/bindings/index.d.ts.map +1 -0
  37. package/dist/bindings/index.js +33 -0
  38. package/dist/bindings/index.js.map +1 -0
  39. package/dist/bindings/kiro.d.ts +17 -0
  40. package/dist/bindings/kiro.d.ts.map +1 -0
  41. package/dist/bindings/kiro.js +1624 -0
  42. package/dist/bindings/kiro.js.map +1 -0
  43. package/dist/bindings/openclaw.d.ts +18 -0
  44. package/dist/bindings/openclaw.d.ts.map +1 -0
  45. package/dist/bindings/openclaw.js +1578 -0
  46. package/dist/bindings/openclaw.js.map +1 -0
  47. package/dist/bindings/types.d.ts +33 -0
  48. package/dist/bindings/types.d.ts.map +1 -0
  49. package/dist/bindings/types.js +23 -0
  50. package/dist/bindings/types.js.map +1 -0
  51. package/dist/cli/index.d.ts +19 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +679 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/docs/__tests__/docs.test.d.ts +2 -0
  56. package/dist/docs/__tests__/docs.test.d.ts.map +1 -0
  57. package/dist/docs/__tests__/docs.test.js +438 -0
  58. package/dist/docs/__tests__/docs.test.js.map +1 -0
  59. package/dist/docs/content.d.ts +16 -0
  60. package/dist/docs/content.d.ts.map +1 -0
  61. package/dist/docs/content.js +3273 -0
  62. package/dist/docs/content.js.map +1 -0
  63. package/dist/docs/index.d.ts +17 -0
  64. package/dist/docs/index.d.ts.map +1 -0
  65. package/dist/docs/index.js +117 -0
  66. package/dist/docs/index.js.map +1 -0
  67. package/dist/exporters/__tests__/exporters.test.d.ts +2 -0
  68. package/dist/exporters/__tests__/exporters.test.d.ts.map +1 -0
  69. package/dist/exporters/__tests__/exporters.test.js +731 -0
  70. package/dist/exporters/__tests__/exporters.test.js.map +1 -0
  71. package/dist/exporters/index.d.ts +13 -0
  72. package/dist/exporters/index.d.ts.map +1 -0
  73. package/dist/exporters/index.js +18 -0
  74. package/dist/exporters/index.js.map +1 -0
  75. package/dist/exporters/json.d.ts +8 -0
  76. package/dist/exporters/json.d.ts.map +1 -0
  77. package/dist/exporters/json.js +25 -0
  78. package/dist/exporters/json.js.map +1 -0
  79. package/dist/exporters/markdown.d.ts +9 -0
  80. package/dist/exporters/markdown.d.ts.map +1 -0
  81. package/dist/exporters/markdown.js +686 -0
  82. package/dist/exporters/markdown.js.map +1 -0
  83. package/dist/exporters/mermaid.d.ts +11 -0
  84. package/dist/exporters/mermaid.d.ts.map +1 -0
  85. package/dist/exporters/mermaid.js +161 -0
  86. package/dist/exporters/mermaid.js.map +1 -0
  87. package/dist/exporters/types.d.ts +22 -0
  88. package/dist/exporters/types.d.ts.map +1 -0
  89. package/dist/exporters/types.js +10 -0
  90. package/dist/exporters/types.js.map +1 -0
  91. package/dist/import/__tests__/import.test.d.ts +2 -0
  92. package/dist/import/__tests__/import.test.d.ts.map +1 -0
  93. package/dist/import/__tests__/import.test.js +781 -0
  94. package/dist/import/__tests__/import.test.js.map +1 -0
  95. package/dist/import/claude-code.d.ts +38 -0
  96. package/dist/import/claude-code.d.ts.map +1 -0
  97. package/dist/import/claude-code.js +897 -0
  98. package/dist/import/claude-code.js.map +1 -0
  99. package/dist/import/index.d.ts +18 -0
  100. package/dist/import/index.d.ts.map +1 -0
  101. package/dist/import/index.js +28 -0
  102. package/dist/import/index.js.map +1 -0
  103. package/dist/import/serializer.d.ts +11 -0
  104. package/dist/import/serializer.d.ts.map +1 -0
  105. package/dist/import/serializer.js +960 -0
  106. package/dist/import/serializer.js.map +1 -0
  107. package/dist/index.d.ts +26 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +21 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/parser/__tests__/parser.test.d.ts +2 -0
  112. package/dist/parser/__tests__/parser.test.d.ts.map +1 -0
  113. package/dist/parser/__tests__/parser.test.js +6514 -0
  114. package/dist/parser/__tests__/parser.test.js.map +1 -0
  115. package/dist/parser/ast.d.ts +708 -0
  116. package/dist/parser/ast.d.ts.map +1 -0
  117. package/dist/parser/ast.js +12 -0
  118. package/dist/parser/ast.js.map +1 -0
  119. package/dist/parser/index.d.ts +253 -0
  120. package/dist/parser/index.d.ts.map +1 -0
  121. package/dist/parser/index.js +1985 -0
  122. package/dist/parser/index.js.map +1 -0
  123. package/dist/parser/lexer.d.ts +100 -0
  124. package/dist/parser/lexer.d.ts.map +1 -0
  125. package/dist/parser/lexer.js +304 -0
  126. package/dist/parser/lexer.js.map +1 -0
  127. package/dist/parser/validator.d.ts +42 -0
  128. package/dist/parser/validator.d.ts.map +1 -0
  129. package/dist/parser/validator.js +2568 -0
  130. package/dist/parser/validator.js.map +1 -0
  131. package/dist/scaffold/__tests__/scaffold.test.d.ts +7 -0
  132. package/dist/scaffold/__tests__/scaffold.test.d.ts.map +1 -0
  133. package/dist/scaffold/__tests__/scaffold.test.js +295 -0
  134. package/dist/scaffold/__tests__/scaffold.test.js.map +1 -0
  135. package/dist/scaffold/incremental.d.ts +43 -0
  136. package/dist/scaffold/incremental.d.ts.map +1 -0
  137. package/dist/scaffold/incremental.js +185 -0
  138. package/dist/scaffold/incremental.js.map +1 -0
  139. package/dist/scaffold/index.d.ts +13 -0
  140. package/dist/scaffold/index.d.ts.map +1 -0
  141. package/dist/scaffold/index.js +13 -0
  142. package/dist/scaffold/index.js.map +1 -0
  143. package/dist/scaffold/manifest.d.ts +30 -0
  144. package/dist/scaffold/manifest.d.ts.map +1 -0
  145. package/dist/scaffold/manifest.js +71 -0
  146. package/dist/scaffold/manifest.js.map +1 -0
  147. package/dist/scaffold/merge.d.ts +52 -0
  148. package/dist/scaffold/merge.d.ts.map +1 -0
  149. package/dist/scaffold/merge.js +134 -0
  150. package/dist/scaffold/merge.js.map +1 -0
  151. package/dist/scaffold/types.d.ts +51 -0
  152. package/dist/scaffold/types.d.ts.map +1 -0
  153. package/dist/scaffold/types.js +10 -0
  154. package/dist/scaffold/types.js.map +1 -0
  155. package/dist/sync/index.d.ts +34 -0
  156. package/dist/sync/index.d.ts.map +1 -0
  157. package/dist/sync/index.js +392 -0
  158. package/dist/sync/index.js.map +1 -0
  159. package/dist/visualizer/index.d.ts +17 -0
  160. package/dist/visualizer/index.d.ts.map +1 -0
  161. package/dist/visualizer/index.js +1976 -0
  162. package/dist/visualizer/index.js.map +1 -0
  163. package/examples/code-review.at +167 -0
  164. package/examples/data-processing.at +296 -0
  165. package/examples/openclaw-assistant.at +142 -0
  166. package/examples/scheduled-monitor.at +193 -0
  167. package/examples/simple-pipeline.at +163 -0
  168. package/package.json +77 -0
  169. package/skill/SKILL.md +403 -0
  170. package/skill/scripts/emit.ts +853 -0
  171. package/skill/scripts/visualize.ts +89 -0
  172. package/spec/grammar.md +1466 -0
  173. package/spec/reserved-keywords.md +147 -0
  174. package/spec/validation.md +535 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/visualizer/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAm6CV,CAAC;AAEF,8EAA8E"}
@@ -0,0 +1,167 @@
1
+ # code-review.at — Automated code review with fan-out
2
+ #
3
+ # Demonstrates: fan-out pattern, advisory agents, skip conditions,
4
+ # multiple output enums, parallel execution
5
+
6
+ topology code-review : [pipeline, fan-out, human-gate] {
7
+
8
+ meta {
9
+ version: "1.0.0"
10
+ description: "Automated code review — analyze, scan, review, and approve"
11
+ }
12
+
13
+ providers {
14
+ anthropic {
15
+ api-key: "${ANTHROPIC_API_KEY}"
16
+ models: [opus, sonnet, haiku]
17
+ default: true
18
+ }
19
+ }
20
+
21
+ orchestrator {
22
+ model: opus
23
+ generates: "commands/review.md"
24
+ handles: [intake, create-report]
25
+ }
26
+
27
+ roles {
28
+ analyzer: "Static analysis — complexity, dependencies, blast radius"
29
+ security: "Security vulnerability scanning and OWASP checks"
30
+ reviewer: "Holistic code review — logic, style, test coverage"
31
+ reporter: "Compile findings into a structured review report"
32
+ }
33
+
34
+ # --- Actions ---
35
+
36
+ action intake {
37
+ kind: external
38
+ source: "github-pr"
39
+ description: "Fetch PR diff and metadata from GitHub"
40
+ }
41
+
42
+ action create-report {
43
+ kind: report
44
+ description: "Compile all findings into final review report"
45
+ }
46
+
47
+ # --- Agents ---
48
+
49
+ agent analyzer {
50
+ role: analyzer
51
+ model: sonnet
52
+ permissions: supervised
53
+ prompt: "prompts/analyzer.md"
54
+ phase: 1
55
+ tools: [Read, Grep, Glob]
56
+ reads: ["workspace/pr-diff.md"]
57
+ writes: ["workspace/analysis.md"]
58
+ outputs: {
59
+ risk-level: low | medium | high | critical
60
+ }
61
+ }
62
+
63
+ agent security-scanner {
64
+ role: security
65
+ model: sonnet
66
+ permissions: supervised
67
+ prompt: "prompts/security-scanner.md"
68
+ phase: 1
69
+ tools: [Read, Grep, Glob]
70
+ reads: ["workspace/pr-diff.md"]
71
+ writes: ["workspace/security.md"]
72
+ behavior: advisory
73
+ outputs: {
74
+ has-vulnerabilities: yes | no
75
+ }
76
+ }
77
+
78
+ agent reviewer {
79
+ role: reviewer
80
+ model: opus
81
+ permissions: supervised
82
+ prompt: "prompts/reviewer.md"
83
+ phase: 2
84
+ tools: [Read, Grep, Glob]
85
+ reads: ["workspace/pr-diff.md", "workspace/analysis.md", "workspace/security.md"]
86
+ writes: ["workspace/review.md"]
87
+ outputs: {
88
+ verdict: approve | request-changes | reject
89
+ }
90
+ }
91
+
92
+ agent reporter {
93
+ role: reporter
94
+ model: haiku
95
+ permissions: autonomous
96
+ prompt: "prompts/reporter.md"
97
+ phase: 3
98
+ tools: [Read, Write, Glob]
99
+ reads: ["workspace/analysis.md", "workspace/security.md", "workspace/review.md"]
100
+ writes: ["workspace/final-report.md"]
101
+ }
102
+
103
+ # --- Flow ---
104
+ #
105
+ # Fan-out: analyzer and security-scanner run in parallel after intake.
106
+ # Both feed into reviewer. Reporter compiles the final output.
107
+
108
+ flow {
109
+ intake -> [analyzer, security-scanner]
110
+ analyzer -> reviewer
111
+ security-scanner -> reviewer
112
+ reviewer -> reporter [when reviewer.verdict == approve]
113
+ reviewer -> reporter [when reviewer.verdict == request-changes]
114
+ reviewer -> create-report [when reviewer.verdict == reject]
115
+ reporter -> create-report
116
+ }
117
+
118
+ # --- Gates ---
119
+
120
+ gates {
121
+ gate human-approval {
122
+ after: reviewer
123
+ before: reporter
124
+ run: "scripts/human-approve.sh"
125
+ on-fail: halt
126
+ }
127
+ }
128
+
129
+ # --- Memory ---
130
+
131
+ memory {
132
+ workspace {
133
+ path: "workspace/"
134
+ structure: [pr-diff, analysis, security, review, reports]
135
+ }
136
+ }
137
+
138
+ # --- Triggers ---
139
+
140
+ triggers {
141
+ command review {
142
+ pattern: "/review <PR_URL>"
143
+ argument: PR_URL
144
+ }
145
+
146
+ command audit {
147
+ pattern: "/audit"
148
+ }
149
+ }
150
+
151
+ # --- Hooks ---
152
+
153
+ hooks {
154
+ hook log-findings {
155
+ on: AgentStop
156
+ run: "scripts/log-findings.sh"
157
+ type: command
158
+ }
159
+ }
160
+
161
+ # --- Settings ---
162
+
163
+ settings {
164
+ allow: ["Read", "Grep", "Glob"]
165
+ deny: ["Write", "Edit", "Bash"]
166
+ }
167
+ }
@@ -0,0 +1,296 @@
1
+ # data-processing.at — Batch data processing pipeline
2
+ #
3
+ # Demonstrates: scale blocks, custom tools, batch processing, metering,
4
+ # parallel extractors, MCP servers, environments
5
+
6
+ topology data-processing : [pipeline, fan-out] {
7
+
8
+ meta {
9
+ version: "1.0.0"
10
+ description: "Batch data processing — ingest, extract, classify, and generate reports"
11
+ }
12
+
13
+ providers {
14
+ anthropic {
15
+ api-key: "${ANTHROPIC_API_KEY}"
16
+ models: [opus, sonnet, haiku]
17
+ default: true
18
+ }
19
+ }
20
+
21
+ orchestrator {
22
+ model: opus
23
+ generates: "commands/process.md"
24
+ handles: [ingest, validate-batch, deliver]
25
+ outputs: {
26
+ batch-mode: streaming | bulk
27
+ }
28
+ }
29
+
30
+ roles {
31
+ extractor: "Multi-format text extraction from raw documents"
32
+ classifier: "Score and categorize extracted documents"
33
+ synthesizer: "Merge classified results into structured output"
34
+ reporter: "Generate human-readable reports from synthesis"
35
+ }
36
+
37
+ # --- Custom Tools ---
38
+
39
+ tools {
40
+ tool extract-pdf {
41
+ script: "scripts/extract-pdf.py"
42
+ args: [input-path, output-path]
43
+ lang: python
44
+ description: "Extract text from PDF documents"
45
+ }
46
+
47
+ tool extract-doc {
48
+ script: "scripts/extract-doc.py"
49
+ args: [input-path, output-path]
50
+ lang: python
51
+ description: "Extract text from DOC/DOCX files"
52
+ }
53
+
54
+ tool merge-results {
55
+ script: "scripts/merge-results.sh"
56
+ args: [input-dir, output-file]
57
+ lang: bash
58
+ description: "Merge classified results into a single output"
59
+ }
60
+
61
+ tool validate-output {
62
+ script: "scripts/validate-output.py"
63
+ args: [output-file, schema-path]
64
+ lang: python
65
+ description: "Validate output against expected schema"
66
+ }
67
+ }
68
+
69
+ # --- Skills ---
70
+
71
+ skill extraction {
72
+ description: "Document extraction -- PDF, DOC, images"
73
+ scripts: [extract-pdf, extract-doc]
74
+ }
75
+
76
+ skill classification {
77
+ description: "Document scoring and categorization"
78
+ scripts: [validate-output]
79
+ domains: ["domains/scoring-rubric.md"]
80
+ }
81
+
82
+ # --- Actions ---
83
+
84
+ action ingest {
85
+ kind: external
86
+ source: "s3-bucket"
87
+ description: "Pull raw documents from the input bucket"
88
+ }
89
+
90
+ action validate-batch {
91
+ kind: inline
92
+ description: "Validate batch completeness before synthesis"
93
+ }
94
+
95
+ action deliver {
96
+ kind: report
97
+ description: "Deliver final reports to output bucket"
98
+ }
99
+
100
+ # --- Agents ---
101
+
102
+ agent extractor {
103
+ role: extractor
104
+ model: sonnet
105
+ permissions: autonomous
106
+ prompt: "prompts/extractor.md"
107
+ phase: 1
108
+ tools: [Read, Write, extract-pdf, extract-doc]
109
+ skills: [extraction]
110
+ reads: ["workspace/raw/"]
111
+ writes: ["workspace/extracted/"]
112
+ background: true
113
+ scale {
114
+ mode: auto
115
+ by: doc-count
116
+ min: 2
117
+ max: 8
118
+ batch-size: 50
119
+ }
120
+ }
121
+
122
+ agent classifier {
123
+ role: classifier
124
+ model: haiku
125
+ permissions: autonomous
126
+ prompt: "prompts/classifier.md"
127
+ phase: 2
128
+ tools: [Read, Write, validate-output]
129
+ skills: [classification]
130
+ reads: ["workspace/extracted/"]
131
+ writes: ["workspace/classified/"]
132
+ background: true
133
+ scale {
134
+ mode: auto
135
+ by: batch-count
136
+ min: 2
137
+ max: 12
138
+ batch-size: 25
139
+ }
140
+ }
141
+
142
+ agent synthesizer {
143
+ role: synthesizer
144
+ model: opus
145
+ permissions: autonomous
146
+ prompt: "prompts/synthesizer.md"
147
+ phase: 3
148
+ tools: [Read, Write, merge-results]
149
+ reads: ["workspace/classified/"]
150
+ writes: ["workspace/synthesis.json"]
151
+ }
152
+
153
+ agent reporter {
154
+ role: reporter
155
+ model: sonnet
156
+ permissions: autonomous
157
+ prompt: "prompts/reporter.md"
158
+ phase: 4
159
+ tools: [Read, Write]
160
+ reads: ["workspace/synthesis.json"]
161
+ writes: ["workspace/report.md", "workspace/report.pdf"]
162
+ outputs: {
163
+ quality: complete | partial | failed
164
+ }
165
+ }
166
+
167
+ # --- Flow ---
168
+
169
+ flow {
170
+ ingest -> extractor
171
+ extractor -> classifier
172
+ classifier -> validate-batch
173
+ validate-batch -> synthesizer
174
+ synthesizer -> reporter
175
+ reporter -> deliver [when reporter.quality == complete]
176
+ reporter -> deliver [when reporter.quality == partial]
177
+ reporter -> synthesizer [when reporter.quality == failed, max 2]
178
+ }
179
+
180
+ # --- Gates ---
181
+
182
+ gates {
183
+ gate schema-validation {
184
+ after: synthesizer
185
+ before: reporter
186
+ run: "scripts/validate-schema.sh"
187
+ checks: [schema, completeness, consistency]
188
+ retry: 2
189
+ on-fail: bounce-back
190
+ }
191
+ }
192
+
193
+ # --- Batch ---
194
+
195
+ batch {
196
+ parallel: true
197
+ per: ticket
198
+ conflicts: {
199
+ detect: ["workspace/synthesis.json"]
200
+ resolve: sequential-rebase
201
+ }
202
+ workspace: "runs/_batch/{BATCH_ID}/"
203
+ }
204
+
205
+ # --- Memory ---
206
+
207
+ memory {
208
+ workspace {
209
+ path: "workspace/"
210
+ protocol: "workspace-protocol.md"
211
+ structure: [raw, extracted, classified, synthesis, reports]
212
+ }
213
+
214
+ metrics {
215
+ path: "metrics/processing.jsonl"
216
+ mode: append-only
217
+ }
218
+ }
219
+
220
+ # --- Metering ---
221
+
222
+ metering {
223
+ track: [tokens-in, tokens-out, cost, wall-time, agent-count]
224
+ per: [phase, agent, run]
225
+ output: "metrics/"
226
+ format: jsonl
227
+ pricing: none
228
+ }
229
+
230
+ # --- Environments ---
231
+
232
+ environments {
233
+ development {
234
+ bucket: "dev-input-bucket"
235
+ output-bucket: "dev-output-bucket"
236
+ }
237
+
238
+ production {
239
+ bucket: "prod-input-bucket"
240
+ output-bucket: "prod-output-bucket"
241
+ }
242
+ }
243
+
244
+ # --- Triggers ---
245
+
246
+ triggers {
247
+ command process {
248
+ pattern: "/process <BATCH_ID>"
249
+ argument: BATCH_ID
250
+ }
251
+
252
+ command status {
253
+ pattern: "/status"
254
+ }
255
+ }
256
+
257
+ # --- Hooks ---
258
+
259
+ hooks {
260
+ hook track-progress {
261
+ on: AgentStop
262
+ run: "scripts/track-progress.sh"
263
+ type: command
264
+ }
265
+
266
+ hook security-check {
267
+ on: ToolUse
268
+ matcher: "Bash"
269
+ run: "scripts/security-check.sh"
270
+ type: command
271
+ }
272
+ }
273
+
274
+ # --- MCP Servers ---
275
+
276
+ mcp-servers {
277
+ storage {
278
+ type: stdio
279
+ command: "npx"
280
+ args: ["-y", "storage-mcp-server"]
281
+ }
282
+
283
+ monitoring {
284
+ type: http
285
+ url: "https://mcp.monitoring.example.com"
286
+ }
287
+ }
288
+
289
+ # --- Settings ---
290
+
291
+ settings {
292
+ allow: ["Read", "Write", "Glob", "Grep"]
293
+ deny: ["Bash(rm -rf *)"]
294
+ ask: ["Bash(aws s3 *)"]
295
+ }
296
+ }
@@ -0,0 +1,142 @@
1
+ # OpenClaw showcase — personal assistant with multi-channel support
2
+
3
+ topology personal-assistant : [supervisor, fan-out] {
4
+
5
+ meta {
6
+ version: "1.0.0"
7
+ description: "Multi-channel personal assistant with research, writing, and scheduling capabilities"
8
+ domain: "productivity"
9
+ }
10
+
11
+ orchestrator {
12
+ model: opus
13
+ handles: [intake, route]
14
+ outputs: {
15
+ task-type: research | write | schedule | general
16
+ }
17
+ }
18
+
19
+ roles {
20
+ researcher: "Deep research using web search and document analysis"
21
+ writer: "Draft emails, messages, and documents in user's voice"
22
+ scheduler: "Manage calendar and schedule meetings"
23
+ responder: "Handle general questions and conversation"
24
+ }
25
+
26
+ action intake {
27
+ kind: inline
28
+ description: "Parse user request — extract task type"
29
+ }
30
+
31
+ action route {
32
+ kind: inline
33
+ description: "Route to appropriate specialist agent based on task-type"
34
+ }
35
+
36
+ agent researcher {
37
+ role: researcher
38
+ model: sonnet
39
+ phase: 1
40
+ tools: [Read, Write, Bash, Glob, Grep, WebSearch, WebFetch]
41
+ reads: ["workspace/queries/"]
42
+ writes: ["workspace/research/"]
43
+ max-turns: 15
44
+ description: "Research agent — searches web, reads docs, produces summaries"
45
+ }
46
+
47
+ agent writer {
48
+ role: writer
49
+ model: sonnet
50
+ phase: 1
51
+ tools: [Read, Write, Edit]
52
+ writes: ["workspace/drafts/"]
53
+ description: "Writing agent — drafts in user's voice using research output"
54
+ }
55
+
56
+ agent scheduler {
57
+ role: scheduler
58
+ model: haiku
59
+ phase: 1
60
+ tools: [Read, Write]
61
+ skills: [google-calendar]
62
+ reads: ["workspace/requests/"]
63
+ writes: ["workspace/scheduled/"]
64
+ description: "Calendar agent — checks availability, proposes meeting times"
65
+ extensions {
66
+ openclaw {
67
+ calendar-integration: true
68
+ }
69
+ }
70
+ }
71
+
72
+ agent responder {
73
+ role: responder
74
+ model: sonnet
75
+ phase: 1
76
+ tools: [Read, Write]
77
+ reads: ["domains/"]
78
+ writes: ["workspace/responses/"]
79
+ description: "General responder for conversation and simple questions"
80
+ }
81
+
82
+ flow {
83
+ intake -> route
84
+ route -> researcher [when orchestrator.task-type == research]
85
+ route -> writer [when orchestrator.task-type == write]
86
+ route -> scheduler [when orchestrator.task-type == schedule]
87
+ route -> responder [when orchestrator.task-type == general]
88
+ }
89
+
90
+ memory {
91
+ domains {
92
+ path: "domains/"
93
+ routing: "FILE_MAP.md"
94
+ }
95
+ workspace {
96
+ path: "workspace/"
97
+ structure: [queries, research, drafts, requests, scheduled, responses]
98
+ }
99
+ metrics {
100
+ path: "metrics.jsonl"
101
+ mode: append-only
102
+ }
103
+ }
104
+
105
+ providers {
106
+ anthropic {
107
+ api-key: "${ANTHROPIC_API_KEY}"
108
+ models: [opus, sonnet, haiku]
109
+ default: true
110
+ }
111
+ }
112
+
113
+ settings {
114
+ allow: [Read, Write, Edit, Glob, Grep]
115
+ deny: []
116
+ }
117
+
118
+ metering {
119
+ track: [tokens-in, tokens-out, cost, wall-time]
120
+ per: [agent, run]
121
+ output: "metrics/"
122
+ format: jsonl
123
+ pricing: anthropic-current
124
+ }
125
+
126
+ extensions {
127
+ openclaw {
128
+ gateway-port: 18789
129
+ auth-tokens: ["${OPENCLAW_AUTH_TOKEN}"]
130
+ channels: [telegram, slack]
131
+ telegram: {
132
+ bot-token: "${TELEGRAM_BOT_TOKEN}"
133
+ dm-policy: "pairing"
134
+ }
135
+ slack: {
136
+ app-token: "${SLACK_APP_TOKEN}"
137
+ bot-token: "${SLACK_BOT_TOKEN}"
138
+ }
139
+ model-fallback-chain: ["opus", "sonnet", "haiku"]
140
+ }
141
+ }
142
+ }