oh-my-claude-sisyphus 3.8.16 → 3.9.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/agents/analyst.md +41 -0
- package/agents/architect.md +45 -0
- package/agents/critic.md +42 -0
- package/agents/deep-executor.md +193 -0
- package/agents/planner.md +82 -0
- package/bridge/mcp-server.cjs +181 -181
- package/dist/__tests__/agent-registry.test.js +1 -1
- package/dist/__tests__/installer.test.js +8 -8
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/__tests__/omc-tools-server.test.js +2 -2
- package/dist/__tests__/omc-tools-server.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +5 -4
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/agents/deep-executor.d.ts +15 -0
- package/dist/agents/deep-executor.d.ts.map +1 -0
- package/dist/agents/deep-executor.js +47 -0
- package/dist/agents/deep-executor.js.map +1 -0
- package/dist/agents/definitions.d.ts +15 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +25 -0
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/commands/doctor-conflicts.d.ts +55 -0
- package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -0
- package/dist/cli/commands/doctor-conflicts.js +261 -0
- package/dist/cli/commands/doctor-conflicts.js.map +1 -0
- package/dist/cli/index.js +16 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/features/auto-update.d.ts +12 -0
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +4 -1
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/context-injector/types.d.ts +1 -1
- package/dist/features/context-injector/types.d.ts.map +1 -1
- package/dist/hooks/__tests__/bridge.test.d.ts +2 -0
- package/dist/hooks/__tests__/bridge.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/bridge.test.js +199 -0
- package/dist/hooks/__tests__/bridge.test.js.map +1 -0
- package/dist/hooks/beads-context/__tests__/index.test.d.ts +2 -0
- package/dist/hooks/beads-context/__tests__/index.test.d.ts.map +1 -0
- package/dist/hooks/beads-context/__tests__/index.test.js +150 -0
- package/dist/hooks/beads-context/__tests__/index.test.js.map +1 -0
- package/dist/hooks/beads-context/constants.d.ts +3 -0
- package/dist/hooks/beads-context/constants.d.ts.map +1 -0
- package/dist/hooks/beads-context/constants.js +35 -0
- package/dist/hooks/beads-context/constants.js.map +1 -0
- package/dist/hooks/beads-context/index.d.ts +21 -0
- package/dist/hooks/beads-context/index.d.ts.map +1 -0
- package/dist/hooks/beads-context/index.js +62 -0
- package/dist/hooks/beads-context/index.js.map +1 -0
- package/dist/hooks/beads-context/types.d.ts +7 -0
- package/dist/hooks/beads-context/types.d.ts.map +1 -0
- package/dist/hooks/beads-context/types.js +2 -0
- package/dist/hooks/beads-context/types.js.map +1 -0
- package/dist/hooks/bridge.d.ts +4 -0
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +76 -23
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/clear-suggestions/constants.d.ts +54 -0
- package/dist/hooks/clear-suggestions/constants.d.ts.map +1 -0
- package/dist/hooks/clear-suggestions/constants.js +102 -0
- package/dist/hooks/clear-suggestions/constants.js.map +1 -0
- package/dist/hooks/clear-suggestions/index.d.ts +61 -0
- package/dist/hooks/clear-suggestions/index.d.ts.map +1 -0
- package/dist/hooks/clear-suggestions/index.js +282 -0
- package/dist/hooks/clear-suggestions/index.js.map +1 -0
- package/dist/hooks/clear-suggestions/triggers.d.ts +65 -0
- package/dist/hooks/clear-suggestions/triggers.d.ts.map +1 -0
- package/dist/hooks/clear-suggestions/triggers.js +222 -0
- package/dist/hooks/clear-suggestions/triggers.js.map +1 -0
- package/dist/hooks/clear-suggestions/types.d.ts +92 -0
- package/dist/hooks/clear-suggestions/types.d.ts.map +1 -0
- package/dist/hooks/clear-suggestions/types.js +9 -0
- package/dist/hooks/clear-suggestions/types.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/permission-handler/index.d.ts.map +1 -1
- package/dist/hooks/permission-handler/index.js +3 -1
- package/dist/hooks/permission-handler/index.js.map +1 -1
- package/dist/hooks/setup/index.d.ts.map +1 -1
- package/dist/hooks/setup/index.js +12 -5
- package/dist/hooks/setup/index.js.map +1 -1
- package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
- package/dist/hooks/subagent-tracker/index.js +25 -9
- package/dist/hooks/subagent-tracker/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/__tests__/claude-md-merge.test.d.ts +6 -0
- package/dist/installer/__tests__/claude-md-merge.test.d.ts.map +1 -0
- package/dist/installer/__tests__/claude-md-merge.test.js +220 -0
- package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -0
- package/dist/installer/__tests__/safe-installer.test.d.ts +6 -0
- package/dist/installer/__tests__/safe-installer.test.d.ts.map +1 -0
- package/dist/installer/__tests__/safe-installer.test.js +172 -0
- package/dist/installer/__tests__/safe-installer.test.js.map +1 -0
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +3 -1
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +27 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +209 -85
- package/dist/installer/index.js.map +1 -1
- package/dist/mcp/omc-tools-server.d.ts +1 -1
- package/dist/mcp/omc-tools-server.d.ts.map +1 -1
- package/dist/mcp/omc-tools-server.js +3 -3
- package/dist/mcp/omc-tools-server.js.map +1 -1
- package/dist/mcp/standalone-server.js +1 -1
- package/dist/mcp/standalone-server.js.map +1 -1
- package/dist/verification/tier-selector.d.ts +40 -0
- package/dist/verification/tier-selector.d.ts.map +1 -0
- package/dist/verification/tier-selector.js +95 -0
- package/dist/verification/tier-selector.js.map +1 -0
- package/dist/verification/tier-selector.test.d.ts +2 -0
- package/dist/verification/tier-selector.test.d.ts.map +1 -0
- package/dist/verification/tier-selector.test.js +282 -0
- package/dist/verification/tier-selector.test.js.map +1 -0
- package/docs/AGENTS.md +1 -1
- package/docs/CLAUDE.md +90 -378
- package/docs/partials/agent-tiers.md +165 -0
- package/docs/partials/features.md +131 -0
- package/docs/partials/mode-hierarchy.md +120 -0
- package/docs/partials/mode-selection-guide.md +82 -0
- package/docs/partials/verification-tiers.md +107 -0
- package/docs/shared/agent-tiers.md +165 -0
- package/docs/shared/features.md +131 -0
- package/docs/shared/mode-hierarchy.md +120 -0
- package/docs/shared/mode-selection-guide.md +82 -0
- package/docs/shared/verification-tiers.md +107 -0
- package/package.json +4 -3
- package/scripts/compose-docs.mjs +44 -0
- package/scripts/keyword-detector.mjs +13 -3
- package/skills/deep-executor/SKILL.md +50 -0
- package/skills/ecomode/SKILL.md +58 -103
- package/skills/omc-setup/SKILL.md +197 -20
- package/skills/plan/SKILL.md +62 -0
- package/skills/project-session-manager/SKILL.md +87 -4
- package/skills/project-session-manager/lib/config.sh +54 -5
- package/skills/project-session-manager/lib/parse.sh +65 -11
- package/skills/project-session-manager/lib/providers/github.sh +52 -0
- package/skills/project-session-manager/lib/providers/interface.sh +76 -0
- package/skills/project-session-manager/lib/providers/jira.sh +79 -0
- package/skills/project-session-manager/lib/session.sh +49 -12
- package/skills/project-session-manager/lib/worktree.sh +37 -4
- package/skills/project-session-manager/psm.sh +116 -51
- package/skills/ralph/SKILL.md +41 -27
- package/skills/ultrawork/SKILL.md +56 -66
- package/templates/hooks/keyword-detector.mjs +21 -13
- package/templates/hooks/lib/stdin.mjs +62 -0
- package/templates/hooks/persistent-mode.mjs +7 -8
- package/templates/hooks/post-tool-use.mjs +8 -10
- package/templates/hooks/pre-tool-use.mjs +9 -6
- package/templates/hooks/session-start.mjs +7 -8
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { processHook, resetSkipHooksCache } from '../bridge.js';
|
|
3
|
+
describe('processHook - Environment Kill-Switches', () => {
|
|
4
|
+
const originalEnv = process.env;
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
// Reset environment and cache before each test
|
|
7
|
+
process.env = { ...originalEnv };
|
|
8
|
+
delete process.env.DISABLE_OMC;
|
|
9
|
+
delete process.env.OMC_SKIP_HOOKS;
|
|
10
|
+
resetSkipHooksCache();
|
|
11
|
+
});
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
// Restore original environment
|
|
14
|
+
process.env = originalEnv;
|
|
15
|
+
resetSkipHooksCache();
|
|
16
|
+
});
|
|
17
|
+
describe('DISABLE_OMC flag', () => {
|
|
18
|
+
it('should return continue:true when DISABLE_OMC=1', async () => {
|
|
19
|
+
process.env.DISABLE_OMC = '1';
|
|
20
|
+
const input = {
|
|
21
|
+
sessionId: 'test-session',
|
|
22
|
+
prompt: 'test prompt',
|
|
23
|
+
directory: '/tmp/test'
|
|
24
|
+
};
|
|
25
|
+
const result = await processHook('keyword-detector', input);
|
|
26
|
+
expect(result).toEqual({ continue: true });
|
|
27
|
+
});
|
|
28
|
+
it('should return continue:true when DISABLE_OMC=true (string)', async () => {
|
|
29
|
+
process.env.DISABLE_OMC = 'true';
|
|
30
|
+
const input = {
|
|
31
|
+
sessionId: 'test-session',
|
|
32
|
+
prompt: 'test prompt',
|
|
33
|
+
directory: '/tmp/test'
|
|
34
|
+
};
|
|
35
|
+
const result = await processHook('persistent-mode', input);
|
|
36
|
+
expect(result).toEqual({ continue: true });
|
|
37
|
+
});
|
|
38
|
+
it('should process normally when DISABLE_OMC is not set', async () => {
|
|
39
|
+
const input = {
|
|
40
|
+
sessionId: 'test-session',
|
|
41
|
+
prompt: 'hello world',
|
|
42
|
+
directory: '/tmp/test'
|
|
43
|
+
};
|
|
44
|
+
const result = await processHook('keyword-detector', input);
|
|
45
|
+
// Should process normally (keyword-detector returns continue:true for non-keyword prompts)
|
|
46
|
+
expect(result.continue).toBe(true);
|
|
47
|
+
// No message because 'hello world' doesn't contain keywords
|
|
48
|
+
});
|
|
49
|
+
it('should process normally when DISABLE_OMC=false', async () => {
|
|
50
|
+
process.env.DISABLE_OMC = 'false';
|
|
51
|
+
const input = {
|
|
52
|
+
sessionId: 'test-session',
|
|
53
|
+
prompt: 'hello world',
|
|
54
|
+
directory: '/tmp/test'
|
|
55
|
+
};
|
|
56
|
+
const result = await processHook('keyword-detector', input);
|
|
57
|
+
// Should process normally (not disabled)
|
|
58
|
+
expect(result.continue).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('OMC_SKIP_HOOKS flag', () => {
|
|
62
|
+
it('should skip single hook type when specified', async () => {
|
|
63
|
+
process.env.OMC_SKIP_HOOKS = 'pre-tool-use';
|
|
64
|
+
const input = {
|
|
65
|
+
sessionId: 'test-session',
|
|
66
|
+
toolName: 'Write',
|
|
67
|
+
toolInput: { file_path: '/test/file.ts', content: 'test' },
|
|
68
|
+
directory: '/tmp/test'
|
|
69
|
+
};
|
|
70
|
+
const result = await processHook('pre-tool-use', input);
|
|
71
|
+
expect(result).toEqual({ continue: true });
|
|
72
|
+
});
|
|
73
|
+
it('should skip multiple hook types when comma-separated', async () => {
|
|
74
|
+
process.env.OMC_SKIP_HOOKS = 'pre-tool-use,persistent-mode';
|
|
75
|
+
const preToolInput = {
|
|
76
|
+
sessionId: 'test-session',
|
|
77
|
+
toolName: 'Write',
|
|
78
|
+
directory: '/tmp/test'
|
|
79
|
+
};
|
|
80
|
+
const persistentModeInput = {
|
|
81
|
+
sessionId: 'test-session',
|
|
82
|
+
directory: '/tmp/test'
|
|
83
|
+
};
|
|
84
|
+
const preToolResult = await processHook('pre-tool-use', preToolInput);
|
|
85
|
+
const persistentResult = await processHook('persistent-mode', persistentModeInput);
|
|
86
|
+
expect(preToolResult).toEqual({ continue: true });
|
|
87
|
+
expect(persistentResult).toEqual({ continue: true });
|
|
88
|
+
});
|
|
89
|
+
it('should handle whitespace in OMC_SKIP_HOOKS', async () => {
|
|
90
|
+
process.env.OMC_SKIP_HOOKS = ' pre-tool-use , persistent-mode ';
|
|
91
|
+
const input = {
|
|
92
|
+
sessionId: 'test-session',
|
|
93
|
+
toolName: 'Write',
|
|
94
|
+
directory: '/tmp/test'
|
|
95
|
+
};
|
|
96
|
+
const result = await processHook('pre-tool-use', input);
|
|
97
|
+
expect(result).toEqual({ continue: true });
|
|
98
|
+
});
|
|
99
|
+
it('should process normally when hook type is not in skip list', async () => {
|
|
100
|
+
process.env.OMC_SKIP_HOOKS = 'persistent-mode';
|
|
101
|
+
const input = {
|
|
102
|
+
sessionId: 'test-session',
|
|
103
|
+
prompt: 'hello world',
|
|
104
|
+
directory: '/tmp/test'
|
|
105
|
+
};
|
|
106
|
+
const result = await processHook('keyword-detector', input);
|
|
107
|
+
// Should process normally (keyword-detector not in skip list)
|
|
108
|
+
expect(result.continue).toBe(true);
|
|
109
|
+
});
|
|
110
|
+
it('should process normally when OMC_SKIP_HOOKS is empty', async () => {
|
|
111
|
+
process.env.OMC_SKIP_HOOKS = '';
|
|
112
|
+
const input = {
|
|
113
|
+
sessionId: 'test-session',
|
|
114
|
+
prompt: 'hello world',
|
|
115
|
+
directory: '/tmp/test'
|
|
116
|
+
};
|
|
117
|
+
const result = await processHook('keyword-detector', input);
|
|
118
|
+
expect(result.continue).toBe(true);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('Combined flags', () => {
|
|
122
|
+
it('should respect DISABLE_OMC even if OMC_SKIP_HOOKS is set', async () => {
|
|
123
|
+
process.env.DISABLE_OMC = '1';
|
|
124
|
+
process.env.OMC_SKIP_HOOKS = 'keyword-detector';
|
|
125
|
+
const input = {
|
|
126
|
+
sessionId: 'test-session',
|
|
127
|
+
prompt: 'test',
|
|
128
|
+
directory: '/tmp/test'
|
|
129
|
+
};
|
|
130
|
+
const result = await processHook('keyword-detector', input);
|
|
131
|
+
// DISABLE_OMC takes precedence
|
|
132
|
+
expect(result).toEqual({ continue: true });
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe('Performance', () => {
|
|
136
|
+
it('should have no performance impact when flags are not set', async () => {
|
|
137
|
+
const input = {
|
|
138
|
+
sessionId: 'test-session',
|
|
139
|
+
prompt: 'hello world',
|
|
140
|
+
directory: '/tmp/test'
|
|
141
|
+
};
|
|
142
|
+
const start = Date.now();
|
|
143
|
+
await processHook('keyword-detector', input);
|
|
144
|
+
const duration = Date.now() - start;
|
|
145
|
+
// Should complete in under 100ms (very generous threshold)
|
|
146
|
+
// The actual overhead should be negligible (< 1ms)
|
|
147
|
+
expect(duration).toBeLessThan(100);
|
|
148
|
+
});
|
|
149
|
+
it('should have minimal overhead when DISABLE_OMC=1', async () => {
|
|
150
|
+
process.env.DISABLE_OMC = '1';
|
|
151
|
+
const input = {
|
|
152
|
+
sessionId: 'test-session',
|
|
153
|
+
prompt: 'test',
|
|
154
|
+
directory: '/tmp/test'
|
|
155
|
+
};
|
|
156
|
+
const start = Date.now();
|
|
157
|
+
await processHook('keyword-detector', input);
|
|
158
|
+
const duration = Date.now() - start;
|
|
159
|
+
// Should be even faster when disabled (immediate return)
|
|
160
|
+
expect(duration).toBeLessThan(50);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
describe('All hook types', () => {
|
|
164
|
+
// Ensure this list stays in sync with HookType.
|
|
165
|
+
// NOTE: `satisfies HookType[]` catches invalid values (typos, removed types),
|
|
166
|
+
// but does NOT enforce exhaustiveness -- if a new HookType variant is added,
|
|
167
|
+
// TypeScript will not error here until a test exercises the missing variant.
|
|
168
|
+
const hookTypes = [
|
|
169
|
+
'keyword-detector',
|
|
170
|
+
'stop-continuation',
|
|
171
|
+
'ralph',
|
|
172
|
+
'persistent-mode',
|
|
173
|
+
'session-start',
|
|
174
|
+
'session-end',
|
|
175
|
+
'pre-tool-use',
|
|
176
|
+
'post-tool-use',
|
|
177
|
+
'autopilot',
|
|
178
|
+
'subagent-start',
|
|
179
|
+
'subagent-stop',
|
|
180
|
+
'pre-compact',
|
|
181
|
+
'setup-init',
|
|
182
|
+
'setup-maintenance',
|
|
183
|
+
'permission-request'
|
|
184
|
+
];
|
|
185
|
+
it('should disable all hook types when DISABLE_OMC=1', async () => {
|
|
186
|
+
process.env.DISABLE_OMC = '1';
|
|
187
|
+
const input = {
|
|
188
|
+
sessionId: 'test-session',
|
|
189
|
+
prompt: 'test',
|
|
190
|
+
directory: '/tmp/test'
|
|
191
|
+
};
|
|
192
|
+
for (const hookType of hookTypes) {
|
|
193
|
+
const result = await processHook(hookType, input);
|
|
194
|
+
expect(result).toEqual({ continue: true });
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
//# sourceMappingURL=bridge.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/bridge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/hooks/beads-context/__tests__/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
+
// Mock dependencies
|
|
3
|
+
vi.mock('../../../features/auto-update.js', () => ({
|
|
4
|
+
getSisyphusConfig: vi.fn(() => ({ silentAutoUpdate: false })),
|
|
5
|
+
}));
|
|
6
|
+
vi.mock('../../../features/context-injector/index.js', () => ({
|
|
7
|
+
contextCollector: {
|
|
8
|
+
register: vi.fn(),
|
|
9
|
+
removeEntry: vi.fn(),
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
12
|
+
import { getBeadsInstructions, getBeadsContextConfig, registerBeadsContext, clearBeadsContext, BEADS_INSTRUCTIONS, BEADS_RUST_INSTRUCTIONS, } from '../index.js';
|
|
13
|
+
import { getSisyphusConfig } from '../../../features/auto-update.js';
|
|
14
|
+
import { contextCollector } from '../../../features/context-injector/index.js';
|
|
15
|
+
const mockGetSisyphusConfig = vi.mocked(getSisyphusConfig);
|
|
16
|
+
const mockRegister = vi.mocked(contextCollector.register);
|
|
17
|
+
const mockRemoveEntry = vi.mocked(contextCollector.removeEntry);
|
|
18
|
+
describe('beads-context', () => {
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
vi.clearAllMocks();
|
|
21
|
+
mockGetSisyphusConfig.mockReturnValue({ silentAutoUpdate: false });
|
|
22
|
+
});
|
|
23
|
+
describe('getBeadsInstructions', () => {
|
|
24
|
+
it('should return beads instructions for beads tool', () => {
|
|
25
|
+
const result = getBeadsInstructions('beads');
|
|
26
|
+
expect(result).toBe(BEADS_INSTRUCTIONS);
|
|
27
|
+
expect(result).toContain('bd');
|
|
28
|
+
expect(result).toContain('Task Management: Beads');
|
|
29
|
+
});
|
|
30
|
+
it('should return beads-rust instructions for beads-rust tool', () => {
|
|
31
|
+
const result = getBeadsInstructions('beads-rust');
|
|
32
|
+
expect(result).toBe(BEADS_RUST_INSTRUCTIONS);
|
|
33
|
+
expect(result).toContain('br');
|
|
34
|
+
expect(result).toContain('Task Management: Beads-Rust');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('getBeadsContextConfig', () => {
|
|
38
|
+
it('should return defaults when no config', () => {
|
|
39
|
+
mockGetSisyphusConfig.mockReturnValue({ silentAutoUpdate: false });
|
|
40
|
+
const config = getBeadsContextConfig();
|
|
41
|
+
expect(config).toEqual({
|
|
42
|
+
taskTool: 'builtin',
|
|
43
|
+
injectInstructions: true,
|
|
44
|
+
useMcp: false,
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
it('should read taskTool from config', () => {
|
|
48
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
49
|
+
silentAutoUpdate: false,
|
|
50
|
+
taskTool: 'beads',
|
|
51
|
+
});
|
|
52
|
+
const config = getBeadsContextConfig();
|
|
53
|
+
expect(config.taskTool).toBe('beads');
|
|
54
|
+
});
|
|
55
|
+
it('should read taskToolConfig from config', () => {
|
|
56
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
57
|
+
silentAutoUpdate: false,
|
|
58
|
+
taskTool: 'beads-rust',
|
|
59
|
+
taskToolConfig: {
|
|
60
|
+
injectInstructions: false,
|
|
61
|
+
useMcp: true,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const config = getBeadsContextConfig();
|
|
65
|
+
expect(config).toEqual({
|
|
66
|
+
taskTool: 'beads-rust',
|
|
67
|
+
injectInstructions: false,
|
|
68
|
+
useMcp: true,
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('registerBeadsContext', () => {
|
|
73
|
+
it('should return false when taskTool is builtin', () => {
|
|
74
|
+
mockGetSisyphusConfig.mockReturnValue({ silentAutoUpdate: false });
|
|
75
|
+
const result = registerBeadsContext('session-1');
|
|
76
|
+
expect(result).toBe(false);
|
|
77
|
+
expect(mockRegister).not.toHaveBeenCalled();
|
|
78
|
+
});
|
|
79
|
+
it('should return false when injectInstructions is false', () => {
|
|
80
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
81
|
+
silentAutoUpdate: false,
|
|
82
|
+
taskTool: 'beads',
|
|
83
|
+
taskToolConfig: { injectInstructions: false },
|
|
84
|
+
});
|
|
85
|
+
const result = registerBeadsContext('session-1');
|
|
86
|
+
expect(result).toBe(false);
|
|
87
|
+
expect(mockRegister).not.toHaveBeenCalled();
|
|
88
|
+
});
|
|
89
|
+
it('should register context for beads tool', () => {
|
|
90
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
91
|
+
silentAutoUpdate: false,
|
|
92
|
+
taskTool: 'beads',
|
|
93
|
+
});
|
|
94
|
+
const result = registerBeadsContext('session-1');
|
|
95
|
+
expect(result).toBe(true);
|
|
96
|
+
expect(mockRegister).toHaveBeenCalledWith('session-1', {
|
|
97
|
+
id: 'beads-instructions',
|
|
98
|
+
source: 'beads',
|
|
99
|
+
content: BEADS_INSTRUCTIONS,
|
|
100
|
+
priority: 'normal',
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
it('should register context for beads-rust tool', () => {
|
|
104
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
105
|
+
silentAutoUpdate: false,
|
|
106
|
+
taskTool: 'beads-rust',
|
|
107
|
+
});
|
|
108
|
+
const result = registerBeadsContext('session-2');
|
|
109
|
+
expect(result).toBe(true);
|
|
110
|
+
expect(mockRegister).toHaveBeenCalledWith('session-2', {
|
|
111
|
+
id: 'beads-instructions',
|
|
112
|
+
source: 'beads',
|
|
113
|
+
content: BEADS_RUST_INSTRUCTIONS,
|
|
114
|
+
priority: 'normal',
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it('should return false for invalid taskTool value', () => {
|
|
118
|
+
mockGetSisyphusConfig.mockReturnValue({
|
|
119
|
+
silentAutoUpdate: false,
|
|
120
|
+
taskTool: 'invalid-tool',
|
|
121
|
+
});
|
|
122
|
+
const result = registerBeadsContext('session-1');
|
|
123
|
+
expect(result).toBe(false);
|
|
124
|
+
expect(mockRegister).not.toHaveBeenCalled();
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe('clearBeadsContext', () => {
|
|
128
|
+
it('should remove beads entry from collector', () => {
|
|
129
|
+
clearBeadsContext('session-1');
|
|
130
|
+
expect(mockRemoveEntry).toHaveBeenCalledWith('session-1', 'beads', 'beads-instructions');
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe('constants', () => {
|
|
134
|
+
it('BEADS_INSTRUCTIONS should contain beads CLI commands', () => {
|
|
135
|
+
expect(BEADS_INSTRUCTIONS).toContain('bd create');
|
|
136
|
+
expect(BEADS_INSTRUCTIONS).toContain('bd list');
|
|
137
|
+
expect(BEADS_INSTRUCTIONS).toContain('bd show');
|
|
138
|
+
expect(BEADS_INSTRUCTIONS).toContain('bd update');
|
|
139
|
+
expect(BEADS_INSTRUCTIONS).toContain('bd deps');
|
|
140
|
+
});
|
|
141
|
+
it('BEADS_RUST_INSTRUCTIONS should contain beads-rust CLI commands', () => {
|
|
142
|
+
expect(BEADS_RUST_INSTRUCTIONS).toContain('br create');
|
|
143
|
+
expect(BEADS_RUST_INSTRUCTIONS).toContain('br list');
|
|
144
|
+
expect(BEADS_RUST_INSTRUCTIONS).toContain('br show');
|
|
145
|
+
expect(BEADS_RUST_INSTRUCTIONS).toContain('br update');
|
|
146
|
+
expect(BEADS_RUST_INSTRUCTIONS).toContain('br deps');
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/hooks/beads-context/__tests__/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const BEADS_INSTRUCTIONS = "## Task Management: Beads\n\nYou have access to the `bd` (beads) CLI for persistent task tracking.\n\n### Commands\n- `bd create \"title\"` - Create new task\n- `bd list` - List all tasks\n- `bd show <id>` - Show task details\n- `bd update <id> --status done` - Mark task done\n- `bd deps <id> --add <other-id>` - Add dependency\n\n### Usage Pattern\n1. Create tasks for work items: `bd create \"Implement feature X\"`\n2. Track progress: `bd update abc123 --status in_progress`\n3. Mark complete: `bd update abc123 --status done`\n\nPrefer using beads over built-in TaskCreate/TodoWrite for persistent tracking.";
|
|
2
|
+
export declare const BEADS_RUST_INSTRUCTIONS = "## Task Management: Beads-Rust\n\nYou have access to the `br` (beads-rust) CLI for persistent task tracking.\n\n### Commands\n- `br create \"title\"` - Create new task\n- `br list` - List all tasks\n- `br show <id>` - Show task details\n- `br update <id> --status done` - Mark task done\n- `br deps <id> --add <other-id>` - Add dependency\n\n### Usage Pattern\n1. Create tasks for work items: `br create \"Implement feature X\"`\n2. Track progress: `br update abc123 --status in_progress`\n3. Mark complete: `br update abc123 --status done`\n\nPrefer using beads-rust over built-in TaskCreate/TodoWrite for persistent tracking.";
|
|
3
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/hooks/beads-context/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,ymBAgBgD,CAAC;AAEhF,eAAO,MAAM,uBAAuB,wnBAgBgD,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const BEADS_INSTRUCTIONS = `## Task Management: Beads
|
|
2
|
+
|
|
3
|
+
You have access to the \`bd\` (beads) CLI for persistent task tracking.
|
|
4
|
+
|
|
5
|
+
### Commands
|
|
6
|
+
- \`bd create "title"\` - Create new task
|
|
7
|
+
- \`bd list\` - List all tasks
|
|
8
|
+
- \`bd show <id>\` - Show task details
|
|
9
|
+
- \`bd update <id> --status done\` - Mark task done
|
|
10
|
+
- \`bd deps <id> --add <other-id>\` - Add dependency
|
|
11
|
+
|
|
12
|
+
### Usage Pattern
|
|
13
|
+
1. Create tasks for work items: \`bd create "Implement feature X"\`
|
|
14
|
+
2. Track progress: \`bd update abc123 --status in_progress\`
|
|
15
|
+
3. Mark complete: \`bd update abc123 --status done\`
|
|
16
|
+
|
|
17
|
+
Prefer using beads over built-in TaskCreate/TodoWrite for persistent tracking.`;
|
|
18
|
+
export const BEADS_RUST_INSTRUCTIONS = `## Task Management: Beads-Rust
|
|
19
|
+
|
|
20
|
+
You have access to the \`br\` (beads-rust) CLI for persistent task tracking.
|
|
21
|
+
|
|
22
|
+
### Commands
|
|
23
|
+
- \`br create "title"\` - Create new task
|
|
24
|
+
- \`br list\` - List all tasks
|
|
25
|
+
- \`br show <id>\` - Show task details
|
|
26
|
+
- \`br update <id> --status done\` - Mark task done
|
|
27
|
+
- \`br deps <id> --add <other-id>\` - Add dependency
|
|
28
|
+
|
|
29
|
+
### Usage Pattern
|
|
30
|
+
1. Create tasks for work items: \`br create "Implement feature X"\`
|
|
31
|
+
2. Track progress: \`br update abc123 --status in_progress\`
|
|
32
|
+
3. Mark complete: \`br update abc123 --status done\`
|
|
33
|
+
|
|
34
|
+
Prefer using beads-rust over built-in TaskCreate/TodoWrite for persistent tracking.`;
|
|
35
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/hooks/beads-context/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;+EAgB6C,CAAC;AAEhF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;oFAgB6C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TaskTool, BeadsContextConfig } from './types.js';
|
|
2
|
+
export type { TaskTool, BeadsContextConfig } from './types.js';
|
|
3
|
+
export { BEADS_INSTRUCTIONS, BEADS_RUST_INSTRUCTIONS } from './constants.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get beads instructions for the given tool variant.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getBeadsInstructions(tool: Exclude<TaskTool, 'builtin'>): string;
|
|
8
|
+
/**
|
|
9
|
+
* Read beads context config from omc-config.json.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getBeadsContextConfig(): BeadsContextConfig;
|
|
12
|
+
/**
|
|
13
|
+
* Register beads context for a session.
|
|
14
|
+
* Called from setup hook on session init.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerBeadsContext(sessionId: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Clear beads context for a session.
|
|
19
|
+
*/
|
|
20
|
+
export declare function clearBeadsContext(sessionId: string): void;
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/beads-context/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/D,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAU7E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAM/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAO1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAuB/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { contextCollector } from '../../features/context-injector/index.js';
|
|
2
|
+
import { getSisyphusConfig } from '../../features/auto-update.js';
|
|
3
|
+
import { BEADS_INSTRUCTIONS, BEADS_RUST_INSTRUCTIONS } from './constants.js';
|
|
4
|
+
export { BEADS_INSTRUCTIONS, BEADS_RUST_INSTRUCTIONS } from './constants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Instructions map for each task tool variant.
|
|
7
|
+
*/
|
|
8
|
+
const INSTRUCTIONS_MAP = {
|
|
9
|
+
'beads': BEADS_INSTRUCTIONS,
|
|
10
|
+
'beads-rust': BEADS_RUST_INSTRUCTIONS,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Get beads instructions for the given tool variant.
|
|
14
|
+
*/
|
|
15
|
+
export function getBeadsInstructions(tool) {
|
|
16
|
+
const instructions = INSTRUCTIONS_MAP[tool];
|
|
17
|
+
if (!instructions) {
|
|
18
|
+
throw new Error(`Unknown task tool: ${tool}`);
|
|
19
|
+
}
|
|
20
|
+
return instructions;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read beads context config from omc-config.json.
|
|
24
|
+
*/
|
|
25
|
+
export function getBeadsContextConfig() {
|
|
26
|
+
const config = getSisyphusConfig();
|
|
27
|
+
return {
|
|
28
|
+
taskTool: config.taskTool ?? 'builtin',
|
|
29
|
+
injectInstructions: config.taskToolConfig?.injectInstructions ?? true,
|
|
30
|
+
useMcp: config.taskToolConfig?.useMcp ?? false,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Register beads context for a session.
|
|
35
|
+
* Called from setup hook on session init.
|
|
36
|
+
*/
|
|
37
|
+
export function registerBeadsContext(sessionId) {
|
|
38
|
+
const config = getBeadsContextConfig();
|
|
39
|
+
if (config.taskTool === 'builtin' || !config.injectInstructions) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// Validate taskTool is a known value
|
|
43
|
+
if (!['beads', 'beads-rust'].includes(config.taskTool)) {
|
|
44
|
+
// Unknown tool value - don't inject wrong instructions
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
const instructions = getBeadsInstructions(config.taskTool);
|
|
48
|
+
contextCollector.register(sessionId, {
|
|
49
|
+
id: 'beads-instructions',
|
|
50
|
+
source: 'beads',
|
|
51
|
+
content: instructions,
|
|
52
|
+
priority: 'normal',
|
|
53
|
+
});
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clear beads context for a session.
|
|
58
|
+
*/
|
|
59
|
+
export function clearBeadsContext(sessionId) {
|
|
60
|
+
contextCollector.removeEntry(sessionId, 'beads', 'beads-instructions');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/beads-context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAI7E,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;GAEG;AACH,MAAM,gBAAgB,GAAiD;IACrE,OAAO,EAAE,kBAAkB;IAC3B,YAAY,EAAE,uBAAuB;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAkC;IACrE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,IAAI,IAAI;QACrE,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,IAAI,KAAK;KAC/C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IAEvC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,uDAAuD;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3D,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE;QACnC,EAAE,EAAE,oBAAoB;QACxB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,gBAAgB,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/beads-context/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/beads-context/types.ts"],"names":[],"mappings":""}
|
package/dist/hooks/bridge.d.ts
CHANGED
|
@@ -55,6 +55,10 @@ export interface HookOutput {
|
|
|
55
55
|
* Hook types that can be processed
|
|
56
56
|
*/
|
|
57
57
|
export type HookType = 'keyword-detector' | 'stop-continuation' | 'ralph' | 'persistent-mode' | 'session-start' | 'session-end' | 'pre-tool-use' | 'post-tool-use' | 'autopilot' | 'subagent-start' | 'subagent-stop' | 'pre-compact' | 'setup-init' | 'setup-maintenance' | 'permission-request';
|
|
58
|
+
/**
|
|
59
|
+
* Reset the skip hooks cache (for testing only)
|
|
60
|
+
*/
|
|
61
|
+
export declare function resetSkipHooksCache(): void;
|
|
58
62
|
/**
|
|
59
63
|
* Main hook processor
|
|
60
64
|
* Routes to specific hook handler based on type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,kBAAkB,GAClB,mBAAmB,GACnB,OAAO,GACP,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,eAAe,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,YAAY,GACZ,mBAAmB,GACnB,oBAAoB,CAAC;AAqZzB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,UAAU,CAAC,CAkGrB;AAED;;;GAGG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1C"}
|