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.
- package/LICENSE +191 -0
- package/README.md +450 -0
- package/dist/analyzer/__tests__/analyzer.test.d.ts +2 -0
- package/dist/analyzer/__tests__/analyzer.test.d.ts.map +1 -0
- package/dist/analyzer/__tests__/analyzer.test.js +258 -0
- package/dist/analyzer/__tests__/analyzer.test.js.map +1 -0
- package/dist/analyzer/index.d.ts +44 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +308 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/bindings/__tests__/bindings.test.d.ts +2 -0
- package/dist/bindings/__tests__/bindings.test.d.ts.map +1 -0
- package/dist/bindings/__tests__/bindings.test.js +2089 -0
- package/dist/bindings/__tests__/bindings.test.js.map +1 -0
- package/dist/bindings/claude-code.d.ts +12 -0
- package/dist/bindings/claude-code.d.ts.map +1 -0
- package/dist/bindings/claude-code.js +2063 -0
- package/dist/bindings/claude-code.js.map +1 -0
- package/dist/bindings/codex.d.ts +18 -0
- package/dist/bindings/codex.d.ts.map +1 -0
- package/dist/bindings/codex.js +1633 -0
- package/dist/bindings/codex.js.map +1 -0
- package/dist/bindings/copilot-cli.d.ts +20 -0
- package/dist/bindings/copilot-cli.d.ts.map +1 -0
- package/dist/bindings/copilot-cli.js +1515 -0
- package/dist/bindings/copilot-cli.js.map +1 -0
- package/dist/bindings/cursor.d.ts +17 -0
- package/dist/bindings/cursor.d.ts.map +1 -0
- package/dist/bindings/cursor.js +1715 -0
- package/dist/bindings/cursor.js.map +1 -0
- package/dist/bindings/gemini-cli.d.ts +18 -0
- package/dist/bindings/gemini-cli.d.ts.map +1 -0
- package/dist/bindings/gemini-cli.js +1327 -0
- package/dist/bindings/gemini-cli.js.map +1 -0
- package/dist/bindings/index.d.ts +20 -0
- package/dist/bindings/index.d.ts.map +1 -0
- package/dist/bindings/index.js +33 -0
- package/dist/bindings/index.js.map +1 -0
- package/dist/bindings/kiro.d.ts +17 -0
- package/dist/bindings/kiro.d.ts.map +1 -0
- package/dist/bindings/kiro.js +1624 -0
- package/dist/bindings/kiro.js.map +1 -0
- package/dist/bindings/openclaw.d.ts +18 -0
- package/dist/bindings/openclaw.d.ts.map +1 -0
- package/dist/bindings/openclaw.js +1578 -0
- package/dist/bindings/openclaw.js.map +1 -0
- package/dist/bindings/types.d.ts +33 -0
- package/dist/bindings/types.d.ts.map +1 -0
- package/dist/bindings/types.js +23 -0
- package/dist/bindings/types.js.map +1 -0
- package/dist/cli/index.d.ts +19 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +679 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/docs/__tests__/docs.test.d.ts +2 -0
- package/dist/docs/__tests__/docs.test.d.ts.map +1 -0
- package/dist/docs/__tests__/docs.test.js +438 -0
- package/dist/docs/__tests__/docs.test.js.map +1 -0
- package/dist/docs/content.d.ts +16 -0
- package/dist/docs/content.d.ts.map +1 -0
- package/dist/docs/content.js +3273 -0
- package/dist/docs/content.js.map +1 -0
- package/dist/docs/index.d.ts +17 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +117 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/exporters/__tests__/exporters.test.d.ts +2 -0
- package/dist/exporters/__tests__/exporters.test.d.ts.map +1 -0
- package/dist/exporters/__tests__/exporters.test.js +731 -0
- package/dist/exporters/__tests__/exporters.test.js.map +1 -0
- package/dist/exporters/index.d.ts +13 -0
- package/dist/exporters/index.d.ts.map +1 -0
- package/dist/exporters/index.js +18 -0
- package/dist/exporters/index.js.map +1 -0
- package/dist/exporters/json.d.ts +8 -0
- package/dist/exporters/json.d.ts.map +1 -0
- package/dist/exporters/json.js +25 -0
- package/dist/exporters/json.js.map +1 -0
- package/dist/exporters/markdown.d.ts +9 -0
- package/dist/exporters/markdown.d.ts.map +1 -0
- package/dist/exporters/markdown.js +686 -0
- package/dist/exporters/markdown.js.map +1 -0
- package/dist/exporters/mermaid.d.ts +11 -0
- package/dist/exporters/mermaid.d.ts.map +1 -0
- package/dist/exporters/mermaid.js +161 -0
- package/dist/exporters/mermaid.js.map +1 -0
- package/dist/exporters/types.d.ts +22 -0
- package/dist/exporters/types.d.ts.map +1 -0
- package/dist/exporters/types.js +10 -0
- package/dist/exporters/types.js.map +1 -0
- package/dist/import/__tests__/import.test.d.ts +2 -0
- package/dist/import/__tests__/import.test.d.ts.map +1 -0
- package/dist/import/__tests__/import.test.js +781 -0
- package/dist/import/__tests__/import.test.js.map +1 -0
- package/dist/import/claude-code.d.ts +38 -0
- package/dist/import/claude-code.d.ts.map +1 -0
- package/dist/import/claude-code.js +897 -0
- package/dist/import/claude-code.js.map +1 -0
- package/dist/import/index.d.ts +18 -0
- package/dist/import/index.d.ts.map +1 -0
- package/dist/import/index.js +28 -0
- package/dist/import/index.js.map +1 -0
- package/dist/import/serializer.d.ts +11 -0
- package/dist/import/serializer.d.ts.map +1 -0
- package/dist/import/serializer.js +960 -0
- package/dist/import/serializer.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/__tests__/parser.test.d.ts +2 -0
- package/dist/parser/__tests__/parser.test.d.ts.map +1 -0
- package/dist/parser/__tests__/parser.test.js +6514 -0
- package/dist/parser/__tests__/parser.test.js.map +1 -0
- package/dist/parser/ast.d.ts +708 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/ast.js +12 -0
- package/dist/parser/ast.js.map +1 -0
- package/dist/parser/index.d.ts +253 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +1985 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/lexer.d.ts +100 -0
- package/dist/parser/lexer.d.ts.map +1 -0
- package/dist/parser/lexer.js +304 -0
- package/dist/parser/lexer.js.map +1 -0
- package/dist/parser/validator.d.ts +42 -0
- package/dist/parser/validator.d.ts.map +1 -0
- package/dist/parser/validator.js +2568 -0
- package/dist/parser/validator.js.map +1 -0
- package/dist/scaffold/__tests__/scaffold.test.d.ts +7 -0
- package/dist/scaffold/__tests__/scaffold.test.d.ts.map +1 -0
- package/dist/scaffold/__tests__/scaffold.test.js +295 -0
- package/dist/scaffold/__tests__/scaffold.test.js.map +1 -0
- package/dist/scaffold/incremental.d.ts +43 -0
- package/dist/scaffold/incremental.d.ts.map +1 -0
- package/dist/scaffold/incremental.js +185 -0
- package/dist/scaffold/incremental.js.map +1 -0
- package/dist/scaffold/index.d.ts +13 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +13 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/manifest.d.ts +30 -0
- package/dist/scaffold/manifest.d.ts.map +1 -0
- package/dist/scaffold/manifest.js +71 -0
- package/dist/scaffold/manifest.js.map +1 -0
- package/dist/scaffold/merge.d.ts +52 -0
- package/dist/scaffold/merge.d.ts.map +1 -0
- package/dist/scaffold/merge.js +134 -0
- package/dist/scaffold/merge.js.map +1 -0
- package/dist/scaffold/types.d.ts +51 -0
- package/dist/scaffold/types.d.ts.map +1 -0
- package/dist/scaffold/types.js +10 -0
- package/dist/scaffold/types.js.map +1 -0
- package/dist/sync/index.d.ts +34 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +392 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/visualizer/index.d.ts +17 -0
- package/dist/visualizer/index.d.ts.map +1 -0
- package/dist/visualizer/index.js +1976 -0
- package/dist/visualizer/index.js.map +1 -0
- package/examples/code-review.at +167 -0
- package/examples/data-processing.at +296 -0
- package/examples/openclaw-assistant.at +142 -0
- package/examples/scheduled-monitor.at +193 -0
- package/examples/simple-pipeline.at +163 -0
- package/package.json +77 -0
- package/skill/SKILL.md +403 -0
- package/skill/scripts/emit.ts +853 -0
- package/skill/scripts/visualize.ts +89 -0
- package/spec/grammar.md +1466 -0
- package/spec/reserved-keywords.md +147 -0
- 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
|
+
}
|