@mandible-ai/mandible 0.3.0 → 0.3.2

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 (30) hide show
  1. package/README.md +109 -44
  2. package/dist/examples/code-pipeline/colonies.d.ts +10 -0
  3. package/dist/examples/code-pipeline/colonies.d.ts.map +1 -0
  4. package/dist/examples/code-pipeline/colonies.js +112 -0
  5. package/dist/examples/code-pipeline/colonies.js.map +1 -0
  6. package/dist/examples/code-pipeline/docker.d.ts +3 -0
  7. package/dist/examples/code-pipeline/docker.d.ts.map +1 -0
  8. package/dist/examples/code-pipeline/docker.js +63 -0
  9. package/dist/examples/code-pipeline/docker.js.map +1 -0
  10. package/dist/examples/code-pipeline/index.js +44 -228
  11. package/dist/examples/code-pipeline/index.js.map +1 -1
  12. package/dist/examples/github-colony/mandible.config.d.ts +1 -10
  13. package/dist/examples/github-colony/mandible.config.d.ts.map +1 -1
  14. package/dist/examples/github-colony/mandible.config.js +16 -24
  15. package/dist/examples/github-colony/mandible.config.js.map +1 -1
  16. package/dist/examples/repo-maintenance/fixer.d.ts +11 -4
  17. package/dist/examples/repo-maintenance/fixer.d.ts.map +1 -1
  18. package/dist/examples/repo-maintenance/fixer.js +130 -123
  19. package/dist/examples/repo-maintenance/fixer.js.map +1 -1
  20. package/dist/examples/repo-maintenance/mandible.config.d.ts +1 -10
  21. package/dist/examples/repo-maintenance/mandible.config.d.ts.map +1 -1
  22. package/dist/examples/repo-maintenance/mandible.config.js +14 -14
  23. package/dist/examples/repo-maintenance/mandible.config.js.map +1 -1
  24. package/dist/examples/repo-maintenance/scout.d.ts +11 -4
  25. package/dist/examples/repo-maintenance/scout.d.ts.map +1 -1
  26. package/dist/examples/repo-maintenance/scout.js +102 -95
  27. package/dist/examples/repo-maintenance/scout.js.map +1 -1
  28. package/dist/examples/repo-maintenance/seed.js +19 -37
  29. package/dist/examples/repo-maintenance/seed.js.map +1 -1
  30. package/package.json +2 -7
@@ -1,143 +1,150 @@
1
1
  // PURPOSE: Fixer colony — claims issue:detected signals and attempts to fix them using a Claude agent.
2
2
  // PURPOSE: Deposits fix:proposed on success or fix:failed on failure.
3
- import { colony } from '../../src/dsl/builder.js';
4
3
  import { withClaudeCode } from '../../src/providers/claude-code.js';
5
4
  // ----------------------------------------------------------
6
- // Fixer colony factory
5
+ // Fixer colony configurator
7
6
  // ----------------------------------------------------------
8
- export function createFixerColony(env, repoRoot, options = {}) {
9
- const { senseTypes = 'issue:detected', name = 'fixer', model = 'claude-sonnet-4-5-20250929', maxBudgetUsd = 3.00, maxTurns = 80, allowedTools = ['Read', 'Edit', 'Write', 'Bash', 'Glob', 'Grep'], disallowedTools = [], concurrency = 2, claimLeaseDuration = 600_000, bedrock, } = options;
7
+ /**
8
+ * Returns a colony configurator for use with the mandible() DSL.
9
+ *
10
+ * @example
11
+ * await mandible('repo-maintenance')
12
+ * .environment(env)
13
+ * .colony('fixer', configureFixer(repoRoot))
14
+ * .start();
15
+ */
16
+ export function configureFixer(repoRoot, options = {}) {
17
+ const { senseTypes = 'issue:detected', model = 'claude-sonnet-4-5-20250929', maxBudgetUsd = 3.00, maxTurns = 80, allowedTools = ['Read', 'Edit', 'Write', 'Bash', 'Glob', 'Grep'], disallowedTools = [], concurrency = 2, claimLeaseDuration = 600_000, bedrock, } = options;
10
18
  const types = Array.isArray(senseTypes) ? senseTypes : [senseTypes];
11
- let builder = colony(name).in(env);
12
- for (const t of types) {
13
- builder = builder.sense(t, { unclaimed: true });
14
- }
15
- const def = builder
16
- .do('fix-issue', withClaudeCode({
17
- model,
18
- systemPrompt: [
19
- 'You are a Fixer agent in a repo-maintenance colony.',
20
- 'Your job is to claim a detected issue and produce a minimal, correct fix.',
21
- '',
22
- 'Workflow:',
23
- '1. Create a branch named `mandible/fix-{category}-{short-hash}` from the current HEAD.',
24
- ' Use the first 6 chars of a random hex string for the short hash.',
25
- '2. Analyze the issue description and affected files.',
26
- '3. Make the MINIMAL change needed to resolve the issue.',
27
- '4. Run tests (`npm test` or `npx vitest run`) to verify the fix does not break anything.',
28
- '5. Output a JSON result block (see below).',
29
- '',
30
- 'Constraints:',
31
- '- Do NOT merge to main. Only work on the fix branch.',
32
- '- Do NOT make changes beyond what is needed for this specific issue.',
33
- '- If a previous_feedback field is present, it means a prior fix attempt was rejected.',
34
- ' Use that feedback to improve your approach.',
35
- '- If you cannot fix the issue, output a failure result instead.',
36
- '',
37
- 'Output format — wrap in a ```json code block:',
38
- '```json',
39
- '{',
40
- ' "status": "success",',
41
- ' "issue_title": "Short title of the issue",',
42
- ' "branch": "mandible/fix-category-abc123",',
43
- ' "diff_summary": "What changed and why",',
44
- ' "files_changed": ["file1.ts", "file2.ts"],',
45
- ' "tests_passed": true,',
46
- ' "confidence": "high"',
47
- '}',
48
- '```',
49
- '',
50
- 'On failure:',
51
- '```json',
52
- '{',
53
- ' "status": "failure",',
54
- ' "issue_title": "Short title of the issue",',
55
- ' "reason": "Why the fix could not be applied",',
56
- ' "attempted_approach": "What was tried"',
57
- '}',
58
- '```',
59
- ].join('\n'),
60
- prompt: (signal) => {
61
- const p = signal.payload;
62
- const lines = [
63
- '## Fix Request',
19
+ return (c) => {
20
+ for (const t of types) {
21
+ c = c.sense(t, { unclaimed: true });
22
+ }
23
+ return c
24
+ .do('fix-issue', withClaudeCode({
25
+ model,
26
+ systemPrompt: [
27
+ 'You are a Fixer agent in a repo-maintenance colony.',
28
+ 'Your job is to claim a detected issue and produce a minimal, correct fix.',
64
29
  '',
65
- `**Category:** ${p.category ?? 'unknown'}`,
66
- `**Severity:** ${p.severity ?? 'medium'}`,
67
- `**Title:** ${p.title ?? 'Untitled issue'}`,
30
+ 'Workflow:',
31
+ '1. Create a branch named `mandible/fix-{category}-{short-hash}` from the current HEAD.',
32
+ ' Use the first 6 chars of a random hex string for the short hash.',
33
+ '2. Analyze the issue description and affected files.',
34
+ '3. Make the MINIMAL change needed to resolve the issue.',
35
+ '4. Run tests (`npm test` or `npx vitest run`) to verify the fix does not break anything.',
36
+ '5. Output a JSON result block (see below).',
68
37
  '',
69
- '### Description',
70
- String(p.description ?? 'No description provided.'),
38
+ 'Constraints:',
39
+ '- Do NOT merge to main. Only work on the fix branch.',
40
+ '- Do NOT make changes beyond what is needed for this specific issue.',
41
+ '- If a previous_feedback field is present, it means a prior fix attempt was rejected.',
42
+ ' Use that feedback to improve your approach.',
43
+ '- If you cannot fix the issue, output a failure result instead.',
71
44
  '',
72
- ];
73
- const files = p.files;
74
- if (files && files.length > 0) {
75
- lines.push('### Affected Files');
76
- for (const f of files) {
77
- lines.push(`- ${f}`);
45
+ 'Output format — wrap in a ```json code block:',
46
+ '```json',
47
+ '{',
48
+ ' "status": "success",',
49
+ ' "issue_title": "Short title of the issue",',
50
+ ' "branch": "mandible/fix-category-abc123",',
51
+ ' "diff_summary": "What changed and why",',
52
+ ' "files_changed": ["file1.ts", "file2.ts"],',
53
+ ' "tests_passed": true,',
54
+ ' "confidence": "high"',
55
+ '}',
56
+ '```',
57
+ '',
58
+ 'On failure:',
59
+ '```json',
60
+ '{',
61
+ ' "status": "failure",',
62
+ ' "issue_title": "Short title of the issue",',
63
+ ' "reason": "Why the fix could not be applied",',
64
+ ' "attempted_approach": "What was tried"',
65
+ '}',
66
+ '```',
67
+ ].join('\n'),
68
+ prompt: (signal) => {
69
+ const p = signal.payload;
70
+ const lines = [
71
+ '## Fix Request',
72
+ '',
73
+ `**Category:** ${p.category ?? 'unknown'}`,
74
+ `**Severity:** ${p.severity ?? 'medium'}`,
75
+ `**Title:** ${p.title ?? 'Untitled issue'}`,
76
+ '',
77
+ '### Description',
78
+ String(p.description ?? 'No description provided.'),
79
+ '',
80
+ ];
81
+ const files = p.files;
82
+ if (files && files.length > 0) {
83
+ lines.push('### Affected Files');
84
+ for (const f of files) {
85
+ lines.push(`- ${f}`);
86
+ }
87
+ lines.push('');
88
+ }
89
+ if (p.suggested_fix) {
90
+ lines.push('### Suggested Fix');
91
+ lines.push(String(p.suggested_fix));
92
+ lines.push('');
93
+ }
94
+ if (p.previous_feedback) {
95
+ lines.push('### Previous Feedback (from rejected attempt)');
96
+ lines.push(String(p.previous_feedback));
97
+ lines.push('');
98
+ lines.push('Use this feedback to improve your fix approach.');
99
+ lines.push('');
100
+ }
101
+ lines.push('Apply the fix, run tests, and output the JSON result block.');
102
+ return lines.join('\n');
103
+ },
104
+ allowedTools,
105
+ disallowedTools,
106
+ workingDirectory: repoRoot,
107
+ maxBudgetUsd,
108
+ maxTurns,
109
+ bedrock,
110
+ output: (result, signal) => {
111
+ const parsed = parseFixerOutput(result.text);
112
+ const issuePayload = signal.payload;
113
+ const issueTitle = String(issuePayload.title ?? 'Unknown issue');
114
+ if (parsed.status === 'failure') {
115
+ return [{
116
+ type: 'fix:failed',
117
+ payload: {
118
+ issue_title: parsed.issue_title || issueTitle,
119
+ reason: parsed.reason || 'Agent did not produce a valid result',
120
+ attempted_approach: parsed.attempted_approach,
121
+ costUsd: result.costUsd,
122
+ durationMs: result.durationMs,
123
+ },
124
+ tags: ['failure'],
125
+ }];
78
126
  }
79
- lines.push('');
80
- }
81
- if (p.suggested_fix) {
82
- lines.push('### Suggested Fix');
83
- lines.push(String(p.suggested_fix));
84
- lines.push('');
85
- }
86
- if (p.previous_feedback) {
87
- lines.push('### Previous Feedback (from rejected attempt)');
88
- lines.push(String(p.previous_feedback));
89
- lines.push('');
90
- lines.push('Use this feedback to improve your fix approach.');
91
- lines.push('');
92
- }
93
- lines.push('Apply the fix, run tests, and output the JSON result block.');
94
- return lines.join('\n');
95
- },
96
- allowedTools,
97
- disallowedTools,
98
- workingDirectory: repoRoot,
99
- maxBudgetUsd,
100
- maxTurns,
101
- bedrock,
102
- output: (result, signal) => {
103
- const parsed = parseFixerOutput(result.text);
104
- const issuePayload = signal.payload;
105
- const issueTitle = String(issuePayload.title ?? 'Unknown issue');
106
- if (parsed.status === 'failure') {
107
127
  return [{
108
- type: 'fix:failed',
128
+ type: 'fix:proposed',
109
129
  payload: {
110
130
  issue_title: parsed.issue_title || issueTitle,
111
- reason: parsed.reason || 'Agent did not produce a valid result',
112
- attempted_approach: parsed.attempted_approach,
131
+ branch: parsed.branch || 'unknown',
132
+ diff_summary: parsed.diff_summary || '',
133
+ files_changed: parsed.files_changed || [],
134
+ tests_passed: parsed.tests_passed ?? false,
135
+ confidence: parsed.confidence || 'low',
113
136
  costUsd: result.costUsd,
114
137
  durationMs: result.durationMs,
115
138
  },
116
- tags: ['failure'],
139
+ tags: [parsed.confidence || 'low', parsed.tests_passed ? 'tests-pass' : 'tests-fail'],
117
140
  }];
118
- }
119
- return [{
120
- type: 'fix:proposed',
121
- payload: {
122
- issue_title: parsed.issue_title || issueTitle,
123
- branch: parsed.branch || 'unknown',
124
- diff_summary: parsed.diff_summary || '',
125
- files_changed: parsed.files_changed || [],
126
- tests_passed: parsed.tests_passed ?? false,
127
- confidence: parsed.confidence || 'low',
128
- costUsd: result.costUsd,
129
- durationMs: result.durationMs,
130
- },
131
- tags: [parsed.confidence || 'low', parsed.tests_passed ? 'tests-pass' : 'tests-fail'],
132
- }];
133
- },
134
- autoWithdraw: true,
135
- }))
136
- .concurrency(concurrency)
137
- .claim('lease', claimLeaseDuration)
138
- .poll(3000)
139
- .build();
140
- return def;
141
+ },
142
+ autoWithdraw: true,
143
+ }))
144
+ .concurrency(concurrency)
145
+ .claim('lease', claimLeaseDuration)
146
+ .poll(3000);
147
+ };
141
148
  }
142
149
  /**
143
150
  * Extracts JSON result from the agent's markdown-formatted output.
@@ -1 +1 @@
1
- {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../examples/repo-maintenance/fixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../examples/repo-maintenance/fixer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,2 @@
1
- import { FilesystemEnvironment } from '../../src/environments/filesystem/index.js';
2
- declare const _default: {
3
- environment: FilesystemEnvironment;
4
- colonies: import("../../src/index.js").ColonyDefinition<Record<string, unknown>>[];
5
- dashboard: {
6
- port: number;
7
- open: boolean;
8
- };
9
- };
10
- export default _default;
1
+ export {};
11
2
  //# sourceMappingURL=mandible.config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mandible.config.d.ts","sourceRoot":"","sources":["../../../examples/repo-maintenance/mandible.config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;;;;;;;;;AAiCnF,wBAIE"}
1
+ {"version":3,"file":"mandible.config.d.ts","sourceRoot":"","sources":["../../../examples/repo-maintenance/mandible.config.ts"],"names":[],"mappings":""}
@@ -1,20 +1,25 @@
1
- // PURPOSE: Dashboard config for repo-maintenance colonies (Scout + Fixer).
2
- // PURPOSE: Run: npx tsx src/cli/index.ts dev examples/repo-maintenance/mandible.config.ts
1
+ // PURPOSE: Repo-maintenance example Scout + Fixer colonies.
2
+ // PURPOSE: Run: npx tsx examples/repo-maintenance/mandible.config.ts
3
3
  import { resolve } from 'node:path';
4
4
  import { rm, mkdir } from 'node:fs/promises';
5
+ import { mandible } from '../../src/dsl/mandible.js';
5
6
  import { FilesystemEnvironment } from '../../src/environments/filesystem/index.js';
6
- import { createScoutColony } from './scout.js';
7
- import { createFixerColony } from './fixer.js';
7
+ import { configureScout } from './scout.js';
8
+ import { configureFixer } from './fixer.js';
8
9
  const ENV_ROOT = resolve('/tmp/mandible-repo-maintenance');
9
10
  const TARGET_REPO = resolve(process.env.TARGET_REPO ?? process.cwd());
10
11
  // Clean slate on startup
11
12
  await rm(ENV_ROOT, { recursive: true, force: true });
12
13
  await mkdir(ENV_ROOT, { recursive: true });
13
14
  const env = new FilesystemEnvironment({ root: ENV_ROOT, name: 'repo-maintenance' });
14
- // ── Colonies ────────────────────────────────────────────────
15
- const scout = createScoutColony(env, TARGET_REPO);
16
- const fixer = createFixerColony(env, TARGET_REPO);
17
- // ── Seed scan trigger after a short delay ───────────────────
15
+ // ── Start colonies via mandible DSL ───────────────────────
16
+ const host = await mandible('repo-maintenance')
17
+ .environment(env)
18
+ .colony('scout', configureScout(TARGET_REPO))
19
+ .colony('fixer', configureFixer(TARGET_REPO))
20
+ .start();
21
+ console.log(`Started ${host.colonies.length} colonies (id: ${host.metadata.id})`);
22
+ // ── Seed scan trigger after a short delay ─────────────────
18
23
  setTimeout(async () => {
19
24
  await env.deposit({
20
25
  type: 'scan:trigger',
@@ -25,10 +30,5 @@ setTimeout(async () => {
25
30
  meta: { deposited_by: 'seed', ttl: 10 * 60_000 },
26
31
  });
27
32
  }, 2000);
28
- // ── Export config for mandible dev ──────────────────────────
29
- export default {
30
- environment: env,
31
- colonies: [scout, fixer],
32
- dashboard: { port: 4040, open: true },
33
- };
33
+ await host.dashboard({ port: 4040 });
34
34
  //# sourceMappingURL=mandible.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mandible.config.js","sourceRoot":"","sources":["../../../examples/repo-maintenance/mandible.config.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0FAA0F;AAE1F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,QAAQ,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEtE,yBAAyB;AACzB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3C,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEpF,+DAA+D;AAE/D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAClD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAElD,+DAA+D;AAE/D,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,CAAC,OAAO,CAAC;QAChB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,WAAW;SAC1B;QACD,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE;KACjD,CAAC,CAAC;AACL,CAAC,EAAE,IAAI,CAAC,CAAC;AAET,+DAA+D;AAE/D,eAAe;IACb,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACxB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;CACtC,CAAC"}
1
+ {"version":3,"file":"mandible.config.js","sourceRoot":"","sources":["../../../examples/repo-maintenance/mandible.config.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,qEAAqE;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,QAAQ,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEtE,yBAAyB;AACzB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrD,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3C,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEpF,6DAA6D;AAE7D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC;KAC5C,WAAW,CAAC,GAAG,CAAC;KAChB,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;KAC5C,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;KAC5C,KAAK,EAAE,CAAC;AAEX,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,kBAAkB,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;AAElF,6DAA6D;AAE7D,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,MAAM,GAAG,CAAC,OAAO,CAAC;QAChB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,WAAW;SAC1B;QACD,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE;KACjD,CAAC,CAAC;AACL,CAAC,EAAE,IAAI,CAAC,CAAC;AAET,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Environment } from '../../src/core/types.js';
2
1
  import type { BedrockConfig } from '../../src/providers/types.js';
2
+ import type { ColonyBuilder } from '../../src/dsl/builder.js';
3
3
  export interface ScanTriggerPayload {
4
4
  scope: 'full' | 'incremental';
5
5
  triggered_by: string;
@@ -15,8 +15,6 @@ export interface IssueDetectedPayload {
15
15
  export interface ScoutColonyOptions {
16
16
  /** Signal types to sense. Defaults to ['scan:trigger']. */
17
17
  senseTypes?: string | string[];
18
- /** Colony name. Defaults to 'scout'. */
19
- name?: string;
20
18
  /** Model to use. Defaults to 'claude-sonnet-4-5-20250929'. */
21
19
  model?: string;
22
20
  /** Max budget per scan in USD. Defaults to 0.50. */
@@ -30,7 +28,16 @@ export interface ScoutColonyOptions {
30
28
  /** Route through AWS Bedrock instead of direct Anthropic API. */
31
29
  bedrock?: BedrockConfig;
32
30
  }
33
- export declare function createScoutColony(env: Environment, repoRoot: string, options?: ScoutColonyOptions): import("../../src/index.js").ColonyDefinition<Record<string, unknown>>;
31
+ /**
32
+ * Returns a colony configurator for use with the mandible() DSL.
33
+ *
34
+ * @example
35
+ * await mandible('repo-maintenance')
36
+ * .environment(env)
37
+ * .colony('scout', configureScout(repoRoot))
38
+ * .start();
39
+ */
40
+ export declare function configureScout(repoRoot: string, options?: ScoutColonyOptions): (c: ColonyBuilder) => ColonyBuilder<Record<string, unknown>>;
34
41
  /**
35
42
  * Extracts JSON issue array from the agent's markdown-formatted output.
36
43
  * Looks for a ```json code block, parses it, and validates the shape.
@@ -1 +1 @@
1
- {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../../../examples/repo-maintenance/scout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAU,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAA8B,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQ9F,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;IACvG,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAMD,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,0EAuHjC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAkDrE"}
1
+ {"version":3,"file":"scout.d.ts","sourceRoot":"","sources":["../../../examples/repo-maintenance/scout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA8B,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC;IACvG,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,IAcxB,GAAG,aAAa,4CAsGzB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAkDrE"}