@plazmodium/odin 0.3.3-beta → 0.3.5-beta

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 (133) hide show
  1. package/README.md +25 -10
  2. package/builtin/ODIN.md +1067 -0
  3. package/builtin/agent-definitions/README.md +170 -0
  4. package/builtin/agent-definitions/_shared-context.md +377 -0
  5. package/builtin/agent-definitions/architect.md +627 -0
  6. package/builtin/agent-definitions/builder.md +713 -0
  7. package/builtin/agent-definitions/discovery.md +293 -0
  8. package/builtin/agent-definitions/documenter.md +238 -0
  9. package/builtin/agent-definitions/guardian.md +1049 -0
  10. package/builtin/agent-definitions/integrator.md +189 -0
  11. package/builtin/agent-definitions/planning.md +236 -0
  12. package/builtin/agent-definitions/product.md +405 -0
  13. package/builtin/agent-definitions/release.md +205 -0
  14. package/builtin/agent-definitions/reviewer.md +447 -0
  15. package/builtin/agent-definitions/watcher.md +402 -0
  16. package/builtin/skills/api/graphql/SKILL.md +548 -0
  17. package/builtin/skills/api/grpc/SKILL.md +554 -0
  18. package/builtin/skills/api/rest-api/SKILL.md +469 -0
  19. package/builtin/skills/api/trpc/SKILL.md +503 -0
  20. package/builtin/skills/architecture/clean-architecture/SKILL.md +141 -0
  21. package/builtin/skills/architecture/domain-driven-design/SKILL.md +129 -0
  22. package/builtin/skills/architecture/event-driven/SKILL.md +145 -0
  23. package/builtin/skills/architecture/microservices/SKILL.md +143 -0
  24. package/builtin/skills/architecture/tla-precheck/SKILL.md +171 -0
  25. package/builtin/skills/backend/golang-gin/SKILL.md +141 -0
  26. package/builtin/skills/backend/nodejs-express/SKILL.md +277 -0
  27. package/builtin/skills/backend/nodejs-fastify/SKILL.md +152 -0
  28. package/builtin/skills/backend/python-django/SKILL.md +128 -0
  29. package/builtin/skills/backend/python-fastapi/SKILL.md +140 -0
  30. package/builtin/skills/database/mongodb/SKILL.md +132 -0
  31. package/builtin/skills/database/postgresql/SKILL.md +120 -0
  32. package/builtin/skills/database/prisma-orm/SKILL.md +366 -0
  33. package/builtin/skills/database/redis/SKILL.md +140 -0
  34. package/builtin/skills/database/supabase/SKILL.md +416 -0
  35. package/builtin/skills/devops/aws/SKILL.md +382 -0
  36. package/builtin/skills/devops/docker/SKILL.md +359 -0
  37. package/builtin/skills/devops/github-actions/SKILL.md +435 -0
  38. package/builtin/skills/devops/kubernetes/SKILL.md +459 -0
  39. package/builtin/skills/devops/terraform/SKILL.md +453 -0
  40. package/builtin/skills/frontend/alpine-dev/SKILL.md +27 -0
  41. package/builtin/skills/frontend/angular-dev/SKILL.md +28 -0
  42. package/builtin/skills/frontend/astro-dev/SKILL.md +28 -0
  43. package/builtin/skills/frontend/htmx-dev/SKILL.md +28 -0
  44. package/builtin/skills/frontend/nextjs-dev/SKILL.md +470 -0
  45. package/builtin/skills/frontend/react-patterns/SKILL.md +166 -0
  46. package/builtin/skills/frontend/svelte-dev/SKILL.md +28 -0
  47. package/builtin/skills/frontend/tailwindcss/SKILL.md +131 -0
  48. package/builtin/skills/frontend/vuejs-dev/SKILL.md +28 -0
  49. package/builtin/skills/generic-dev/SKILL.md +307 -0
  50. package/builtin/skills/testing/cypress/SKILL.md +372 -0
  51. package/builtin/skills/testing/jest/SKILL.md +176 -0
  52. package/builtin/skills/testing/playwright/SKILL.md +341 -0
  53. package/builtin/skills/testing/unit-tests-eval-sdd/SKILL.md +73 -0
  54. package/builtin/skills/testing/unit-tests-sdd/SKILL.md +83 -0
  55. package/builtin/skills/testing/vitest/SKILL.md +249 -0
  56. package/dist/adapters/skills/filesystem.d.ts +1 -0
  57. package/dist/adapters/skills/filesystem.d.ts.map +1 -1
  58. package/dist/adapters/skills/filesystem.js +6 -18
  59. package/dist/adapters/skills/filesystem.js.map +1 -1
  60. package/dist/adapters/skills/types.d.ts +1 -0
  61. package/dist/adapters/skills/types.d.ts.map +1 -1
  62. package/dist/adapters/workflow-state/in-memory.d.ts +10 -2
  63. package/dist/adapters/workflow-state/in-memory.d.ts.map +1 -1
  64. package/dist/adapters/workflow-state/in-memory.js +98 -5
  65. package/dist/adapters/workflow-state/in-memory.js.map +1 -1
  66. package/dist/adapters/workflow-state/supabase.d.ts +8 -2
  67. package/dist/adapters/workflow-state/supabase.d.ts.map +1 -1
  68. package/dist/adapters/workflow-state/supabase.js +204 -0
  69. package/dist/adapters/workflow-state/supabase.js.map +1 -1
  70. package/dist/adapters/workflow-state/types.d.ts +15 -1
  71. package/dist/adapters/workflow-state/types.d.ts.map +1 -1
  72. package/dist/builtin-assets.d.ts +8 -0
  73. package/dist/builtin-assets.d.ts.map +1 -0
  74. package/dist/builtin-assets.js +90 -0
  75. package/dist/builtin-assets.js.map +1 -0
  76. package/dist/domain/skill-draft-validation.d.ts +18 -0
  77. package/dist/domain/skill-draft-validation.d.ts.map +1 -0
  78. package/dist/domain/skill-draft-validation.js +100 -0
  79. package/dist/domain/skill-draft-validation.js.map +1 -0
  80. package/dist/domain/skill-proposals.d.ts +11 -0
  81. package/dist/domain/skill-proposals.d.ts.map +1 -0
  82. package/dist/domain/skill-proposals.js +103 -0
  83. package/dist/domain/skill-proposals.js.map +1 -0
  84. package/dist/init.js +69 -11
  85. package/dist/init.js.map +1 -1
  86. package/dist/schemas.d.ts +39 -1
  87. package/dist/schemas.d.ts.map +1 -1
  88. package/dist/schemas.js +30 -1
  89. package/dist/schemas.js.map +1 -1
  90. package/dist/server.js +38 -2
  91. package/dist/server.js.map +1 -1
  92. package/dist/tools/apply-migrations.d.ts +10 -0
  93. package/dist/tools/apply-migrations.d.ts.map +1 -1
  94. package/dist/tools/apply-migrations.js +10 -26
  95. package/dist/tools/apply-migrations.js.map +1 -1
  96. package/dist/tools/capture-learning.d.ts.map +1 -1
  97. package/dist/tools/capture-learning.js +14 -1
  98. package/dist/tools/capture-learning.js.map +1 -1
  99. package/dist/tools/get-skill-proposal-queue.d.ts +5 -0
  100. package/dist/tools/get-skill-proposal-queue.d.ts.map +1 -0
  101. package/dist/tools/get-skill-proposal-queue.js +21 -0
  102. package/dist/tools/get-skill-proposal-queue.js.map +1 -0
  103. package/dist/tools/get-skill-proposals.d.ts +4 -0
  104. package/dist/tools/get-skill-proposals.d.ts.map +1 -0
  105. package/dist/tools/get-skill-proposals.js +11 -0
  106. package/dist/tools/get-skill-proposals.js.map +1 -0
  107. package/dist/tools/prepare-phase-context.d.ts.map +1 -1
  108. package/dist/tools/prepare-phase-context.js +5 -0
  109. package/dist/tools/prepare-phase-context.js.map +1 -1
  110. package/dist/tools/publish-skill-proposal.d.ts +5 -0
  111. package/dist/tools/publish-skill-proposal.d.ts.map +1 -0
  112. package/dist/tools/publish-skill-proposal.js +57 -0
  113. package/dist/tools/publish-skill-proposal.js.map +1 -0
  114. package/dist/tools/record-skill-proposal-decision.d.ts +4 -0
  115. package/dist/tools/record-skill-proposal-decision.d.ts.map +1 -0
  116. package/dist/tools/record-skill-proposal-decision.js +22 -0
  117. package/dist/tools/record-skill-proposal-decision.js.map +1 -0
  118. package/dist/tools/record-skill-proposal-draft.d.ts +5 -0
  119. package/dist/tools/record-skill-proposal-draft.d.ts.map +1 -0
  120. package/dist/tools/record-skill-proposal-draft.js +65 -0
  121. package/dist/tools/record-skill-proposal-draft.js.map +1 -0
  122. package/dist/tools/sync-skill-proposal-candidates.d.ts +5 -0
  123. package/dist/tools/sync-skill-proposal-candidates.d.ts.map +1 -0
  124. package/dist/tools/sync-skill-proposal-candidates.js +20 -0
  125. package/dist/tools/sync-skill-proposal-candidates.js.map +1 -0
  126. package/dist/types.d.ts +41 -0
  127. package/dist/types.d.ts.map +1 -1
  128. package/dist/types.js +2 -0
  129. package/dist/types.js.map +1 -1
  130. package/migrations/009_skill_proposal_candidates.sql +124 -0
  131. package/migrations/010_skill_proposals.sql +36 -0
  132. package/migrations/README.md +6 -0
  133. package/package.json +5 -3
@@ -0,0 +1,249 @@
1
+ ---
2
+ name: vitest
3
+ description: Vitest testing framework expertise for modern JavaScript/TypeScript testing. Covers Vite-native testing, ESM support, component testing, and fast HMR-based test runs. Use for Vite, Vue, React, or any modern ESM-first project.
4
+ category: testing
5
+ compatible_with:
6
+ - vuejs-dev
7
+ - svelte-dev
8
+ - react-patterns
9
+ - github-actions
10
+ ---
11
+
12
+ # Vitest Testing Framework
13
+
14
+ ## Instructions
15
+
16
+ 1. **Assess the project**: Vitest is ideal for Vite-based projects and ESM-first codebases.
17
+ 2. **Follow Vitest conventions**:
18
+ - Test files: `*.test.ts`, `*.spec.ts`
19
+ - API is Jest-compatible but with modern ESM imports
20
+ - Leverages Vite's transform pipeline for fast tests
21
+ 3. **Provide complete examples**: Include proper ESM imports and TypeScript types.
22
+ 4. **Highlight Vitest features**: In-source testing, browser mode, UI.
23
+ 5. **Guide on migration**: Help users migrating from Jest.
24
+
25
+ ## Test Structure
26
+
27
+ ```typescript
28
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
29
+ import { myFunction } from './myModule';
30
+
31
+ describe('myFunction', () => {
32
+ beforeEach(() => {
33
+ vi.clearAllMocks();
34
+ });
35
+
36
+ it('should return expected value', () => {
37
+ expect(myFunction('input')).toBe('output');
38
+ });
39
+
40
+ it('should handle async operations', async () => {
41
+ const result = await myFunction('async');
42
+ expect(result).toBe('done');
43
+ });
44
+ });
45
+ ```
46
+
47
+ ## Mocking with `vi`
48
+
49
+ ### Mock a module
50
+ ```typescript
51
+ vi.mock('./database', () => ({
52
+ query: vi.fn().mockResolvedValue([{ id: 1 }]),
53
+ }));
54
+ ```
55
+
56
+ ### Mock a function
57
+ ```typescript
58
+ const mockFn = vi.fn((x: number) => x + 1);
59
+ expect(mockFn(1)).toBe(2);
60
+ expect(mockFn).toHaveBeenCalledWith(1);
61
+ ```
62
+
63
+ ### Spy on methods
64
+ ```typescript
65
+ const spy = vi.spyOn(object, 'method');
66
+ object.method();
67
+ expect(spy).toHaveBeenCalled();
68
+ spy.mockRestore();
69
+ ```
70
+
71
+ ### Mock timers
72
+ ```typescript
73
+ vi.useFakeTimers();
74
+ setTimeout(callback, 1000);
75
+ vi.advanceTimersByTime(1000);
76
+ expect(callback).toHaveBeenCalled();
77
+ vi.useRealTimers();
78
+ ```
79
+
80
+ ### Mock globals
81
+ ```typescript
82
+ vi.stubGlobal('fetch', vi.fn().mockResolvedValue({
83
+ json: () => Promise.resolve({ data: 'mocked' }),
84
+ }));
85
+ ```
86
+
87
+ ## In-Source Testing
88
+
89
+ Vitest supports tests directly in source files:
90
+
91
+ ```typescript
92
+ // src/utils.ts
93
+ export function add(a: number, b: number): number {
94
+ return a + b;
95
+ }
96
+
97
+ if (import.meta.vitest) {
98
+ const { describe, it, expect } = import.meta.vitest;
99
+
100
+ describe('add', () => {
101
+ it('adds two numbers', () => {
102
+ expect(add(1, 2)).toBe(3);
103
+ });
104
+ });
105
+ }
106
+ ```
107
+
108
+ ## Configuration (vitest.config.ts)
109
+
110
+ ```typescript
111
+ import { defineConfig } from 'vitest/config';
112
+ import react from '@vitejs/plugin-react';
113
+
114
+ export default defineConfig({
115
+ plugins: [react()],
116
+ test: {
117
+ globals: true, // Use global expect, describe, etc.
118
+ environment: 'jsdom', // or 'node', 'happy-dom'
119
+ include: ['src/**/*.{test,spec}.{js,ts,jsx,tsx}'],
120
+ coverage: {
121
+ provider: 'v8', // or 'istanbul'
122
+ reporter: ['text', 'html'],
123
+ exclude: ['node_modules/', 'src/**/*.d.ts'],
124
+ thresholds: {
125
+ branches: 80,
126
+ functions: 80,
127
+ lines: 80,
128
+ },
129
+ },
130
+ setupFiles: ['./vitest.setup.ts'],
131
+ alias: {
132
+ '@/': new URL('./src/', import.meta.url).pathname,
133
+ },
134
+ },
135
+ });
136
+ ```
137
+
138
+ ## Snapshot Testing
139
+
140
+ ```typescript
141
+ import { expect, it } from 'vitest';
142
+
143
+ it('matches snapshot', () => {
144
+ const result = generateOutput();
145
+ expect(result).toMatchSnapshot();
146
+ });
147
+
148
+ it('matches inline snapshot', () => {
149
+ expect({ foo: 'bar' }).toMatchInlineSnapshot(`
150
+ {
151
+ "foo": "bar",
152
+ }
153
+ `);
154
+ });
155
+ ```
156
+
157
+ ## Component Testing (Vue/React)
158
+
159
+ ### Vue with @vue/test-utils
160
+ ```typescript
161
+ import { mount } from '@vue/test-utils';
162
+ import { describe, it, expect } from 'vitest';
163
+ import MyComponent from './MyComponent.vue';
164
+
165
+ describe('MyComponent', () => {
166
+ it('renders correctly', () => {
167
+ const wrapper = mount(MyComponent, {
168
+ props: { msg: 'Hello' },
169
+ });
170
+ expect(wrapper.text()).toContain('Hello');
171
+ });
172
+ });
173
+ ```
174
+
175
+ ### React with @testing-library/react
176
+ ```typescript
177
+ import { render, screen } from '@testing-library/react';
178
+ import { describe, it, expect, vi } from 'vitest';
179
+ import Button from './Button';
180
+
181
+ describe('Button', () => {
182
+ it('calls onClick', async () => {
183
+ const onClick = vi.fn();
184
+ render(<Button onClick={onClick}>Click</Button>);
185
+
186
+ await screen.getByRole('button').click();
187
+
188
+ expect(onClick).toHaveBeenCalled();
189
+ });
190
+ });
191
+ ```
192
+
193
+ ## Concurrent Tests
194
+
195
+ ```typescript
196
+ import { describe, it, expect } from 'vitest';
197
+
198
+ describe.concurrent('math operations', () => {
199
+ it('adds', async () => {
200
+ expect(1 + 1).toBe(2);
201
+ });
202
+
203
+ it('subtracts', async () => {
204
+ expect(2 - 1).toBe(1);
205
+ });
206
+ });
207
+ ```
208
+
209
+ ## Type Testing
210
+
211
+ ```typescript
212
+ import { expectTypeOf, describe, it } from 'vitest';
213
+
214
+ describe('types', () => {
215
+ it('checks return type', () => {
216
+ expectTypeOf(myFunction).returns.toBeString();
217
+ });
218
+
219
+ it('checks parameter type', () => {
220
+ expectTypeOf(myFunction).parameter(0).toBeNumber();
221
+ });
222
+ });
223
+ ```
224
+
225
+ ## Best Practices
226
+
227
+ - **Use `vi` instead of `jest`** - Vitest's mocking API
228
+ - **Enable globals** for cleaner test files (no imports needed)
229
+ - **Use happy-dom** for faster DOM tests than jsdom
230
+ - **Leverage watch mode** - Vitest re-runs on file changes instantly
231
+ - **Use workspace mode** for monorepos
232
+ - **Type-check tests** - Vitest runs TypeScript natively
233
+ - **Use browser mode** for real browser testing when needed
234
+
235
+ ## Migration from Jest
236
+
237
+ | Jest | Vitest |
238
+ |------|--------|
239
+ | `jest.fn()` | `vi.fn()` |
240
+ | `jest.mock()` | `vi.mock()` |
241
+ | `jest.spyOn()` | `vi.spyOn()` |
242
+ | `jest.useFakeTimers()` | `vi.useFakeTimers()` |
243
+ | `@jest/globals` | `vitest` |
244
+
245
+ ## References
246
+
247
+ - Vitest Documentation: https://vitest.dev/
248
+ - Migration from Jest: https://vitest.dev/guide/migration.html
249
+ - Vitest UI: https://vitest.dev/guide/ui.html
@@ -11,6 +11,7 @@ export declare class FilesystemSkillAdapter implements SkillAdapter {
11
11
  private merged_cache;
12
12
  private domains_cache;
13
13
  constructor(projectRoot: string, config: RuntimeConfig);
14
+ invalidateCaches(): void;
14
15
  private getMergedSkillDefinitions;
15
16
  listKnowledgeDomains(): Promise<KnowledgeDomain[]>;
16
17
  resolveSkills(input: ResolveSkillsInput): Promise<ResolveSkillsResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/adapters/skills/filesystem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAiB,eAAe,EAAyC,MAAM,gBAAgB,CAAC;AAC5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyXxF,qBAAa,sBAAuB,YAAW,YAAY;IAKvD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,aAAa,CAAkC;gBAGpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa;YAG1B,yBAAyB;IA8BjC,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBlD,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA+C7E"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../../src/adapters/skills/filesystem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAiB,eAAe,EAAyC,MAAM,gBAAgB,CAAC;AAC5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoWxF,qBAAa,sBAAuB,YAAW,YAAY;IAKvD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,aAAa,CAAkC;gBAGpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa;IAGxC,gBAAgB,IAAI,IAAI;YAKV,yBAAyB;IA8BjC,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBlD,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA+C7E"}
@@ -4,9 +4,9 @@
4
4
  */
5
5
  import { readdir, readFile } from 'node:fs/promises';
6
6
  import { existsSync } from 'node:fs';
7
- import { dirname, join, relative, resolve } from 'node:path';
8
- import { fileURLToPath } from 'node:url';
7
+ import { join, relative } from 'node:path';
9
8
  import YAML from 'yaml';
9
+ import { getBuiltInSkillRoots } from '../../builtin-assets.js';
10
10
  const PACKAGE_SKILL_MAP = {
11
11
  '@supabase/supabase-js': ['supabase'],
12
12
  prisma: ['prisma-orm'],
@@ -39,22 +39,6 @@ const PHASE_REQUIRED_SKILLS = {
39
39
  '6': ['unit-tests-eval-sdd'],
40
40
  };
41
41
  const TECH_AWARE_PHASES = new Set(['2', '3', '4', '5', '6', '7']);
42
- function getBuiltInSkillRoots() {
43
- const current_file = fileURLToPath(import.meta.url);
44
- const package_root = resolve(dirname(current_file), '..', '..', '..');
45
- const candidates = [];
46
- let cursor = package_root;
47
- for (let depth = 0; depth < 5; depth++) {
48
- candidates.push(join(cursor, 'skills'));
49
- candidates.push(join(cursor, 'agents', 'skills'));
50
- const parent = resolve(cursor, '..');
51
- if (parent === cursor) {
52
- break;
53
- }
54
- cursor = parent;
55
- }
56
- return candidates.filter((path, index, values) => existsSync(path) && values.indexOf(path) === index);
57
- }
58
42
  async function collectSkillFiles(root) {
59
43
  if (!existsSync(root)) {
60
44
  return [];
@@ -319,6 +303,10 @@ export class FilesystemSkillAdapter {
319
303
  this.projectRoot = projectRoot;
320
304
  this.config = config;
321
305
  }
306
+ invalidateCaches() {
307
+ this.merged_cache = null;
308
+ this.domains_cache = null;
309
+ }
322
310
  async getMergedSkillDefinitions() {
323
311
  if (this.merged_cache != null) {
324
312
  return this.merged_cache;
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/adapters/skills/filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../../src/adapters/skills/filesystem.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,6 @@ export interface ResolveSkillsResult {
15
15
  export interface SkillAdapter {
16
16
  resolveSkills(input: ResolveSkillsInput): Promise<ResolveSkillsResult>;
17
17
  listKnowledgeDomains(): Promise<KnowledgeDomain[]>;
18
+ invalidateCaches(): void;
18
19
  }
19
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/skills/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5G,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACpD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/skills/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5G,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACnD,gBAAgB,IAAI,IAAI,CAAC;CAC1B"}
@@ -2,8 +2,8 @@
2
2
  * In-Memory Workflow State Adapter
3
3
  * Version: 0.1.0
4
4
  */
5
- import type { AgentInvocationRecord, AgentClaimRecord, ClaimVerificationSummary, FeatureCommitRecord, FeatureEvalSummary, FeatureRecord, LearningRecord, PolicyCheckResult, PersistedTargetType, PhaseArtifact, PhaseId, PhaseResultRecord, QualityGateRecord, RelatedLearningRecord, ReviewCheckRecord, ReviewFinding, WatcherQueueClaim, WatcherReviewRecord } from '../../types.js';
6
- import type { ListAllLearningsFilter, WorkflowStateAdapter } from './types.js';
5
+ import type { AgentInvocationRecord, AgentClaimRecord, ClaimVerificationSummary, FeatureCommitRecord, FeatureEvalSummary, FeatureRecord, LearningRecord, PolicyCheckResult, PersistedTargetType, PhaseArtifact, PhaseId, PhaseResultRecord, QualityGateRecord, RelatedLearningRecord, ReviewCheckRecord, ReviewFinding, SkillProposalCandidate, SkillProposalRecord, WatcherQueueClaim, WatcherReviewRecord } from '../../types.js';
6
+ import type { ListAllLearningsFilter, ListSkillProposalCandidatesFilter, ListSkillProposalsFilter, WorkflowStateAdapter } from './types.js';
7
7
  export declare class InMemoryWorkflowStateAdapter implements WorkflowStateAdapter {
8
8
  private readonly features;
9
9
  private readonly artifacts;
@@ -17,6 +17,8 @@ export declare class InMemoryWorkflowStateAdapter implements WorkflowStateAdapte
17
17
  private readonly watcher_reviews;
18
18
  private readonly invocations;
19
19
  private readonly propagation_targets;
20
+ private readonly skill_proposals;
21
+ private readonly skill_proposal_records;
20
22
  private invocation_counter;
21
23
  startFeature(feature: Omit<FeatureRecord, 'created_at' | 'updated_at' | 'status' | 'current_phase'>): Promise<FeatureRecord>;
22
24
  getFeature(feature_id: string): Promise<FeatureRecord | null>;
@@ -60,6 +62,12 @@ export declare class InMemoryWorkflowStateAdapter implements WorkflowStateAdapte
60
62
  declarePropagationTarget(learning_id: string, target_type: PersistedTargetType, target_path: string | null, relevance: number): Promise<void>;
61
63
  listRelatedLearnings(feature_id: string, limit?: number): Promise<RelatedLearningRecord[]>;
62
64
  listAllLearnings(filter?: ListAllLearningsFilter): Promise<LearningRecord[]>;
65
+ replaceSkillProposalCandidates(candidates: SkillProposalCandidate[]): Promise<void>;
66
+ listSkillProposalCandidates(filter?: ListSkillProposalCandidatesFilter): Promise<SkillProposalCandidate[]>;
67
+ upsertSkillProposalDraft(proposal: Omit<SkillProposalRecord, 'created_at' | 'updated_at' | 'approved_by' | 'approved_at' | 'published_by' | 'published_at'>): Promise<SkillProposalRecord>;
68
+ listSkillProposals(filter?: ListSkillProposalsFilter): Promise<SkillProposalRecord[]>;
69
+ recordSkillProposalDecision(topic_key: string, status: 'APPROVED' | 'REJECTED', actor: string, notes?: string): Promise<SkillProposalRecord>;
70
+ markSkillProposalPublished(topic_key: string, published_by: string, published_path: string): Promise<SkillProposalRecord>;
63
71
  private touchFeature;
64
72
  private findClaim;
65
73
  private getLatestPolicyVerdict;
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../../src/adapters/workflow-state/in-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../../src/adapters/workflow-state/in-memory.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ export class InMemoryWorkflowStateAdapter {
18
18
  watcher_reviews = new Map();
19
19
  invocations = new Map();
20
20
  propagation_targets = [];
21
+ skill_proposals = new Map();
22
+ skill_proposal_records = new Map();
21
23
  invocation_counter = 0;
22
24
  async startFeature(feature) {
23
25
  const now = new Date().toISOString();
@@ -256,7 +258,7 @@ export class InMemoryWorkflowStateAdapter {
256
258
  }
257
259
  async completeAgentInvocation(invocation_id) {
258
260
  const record = this.invocations.get(invocation_id);
259
- if (record == null) {
261
+ if (record == null || record.ended_at != null) {
260
262
  throw new Error(`Invocation not found or already ended: ${invocation_id}`);
261
263
  }
262
264
  const ended_at = new Date();
@@ -322,11 +324,9 @@ export class InMemoryWorkflowStateAdapter {
322
324
  this.propagation_targets.push({ learning_id, target_type, target_path, relevance });
323
325
  }
324
326
  async listRelatedLearnings(feature_id, limit = 5) {
325
- // Get all propagation targets for this feature's learnings
326
327
  const feature_learnings = this.learnings.get(feature_id) ?? [];
327
328
  const feature_learning_ids = new Set(feature_learnings.map((l) => l.id));
328
329
  const feature_targets = this.propagation_targets.filter((t) => feature_learning_ids.has(t.learning_id));
329
- // Collect all learnings across all features
330
330
  const all_learnings = [];
331
331
  for (const [fid, learnings] of this.learnings.entries()) {
332
332
  if (fid !== feature_id) {
@@ -334,7 +334,6 @@ export class InMemoryWorkflowStateAdapter {
334
334
  }
335
335
  }
336
336
  if (feature_targets.length > 0) {
337
- // Primary path: shared propagation targets
338
337
  const target_keys = new Set(feature_targets.map((t) => `${t.target_type}:${t.target_path ?? ''}`));
339
338
  const candidates = [];
340
339
  for (const learning of all_learnings) {
@@ -359,7 +358,6 @@ export class InMemoryWorkflowStateAdapter {
359
358
  .sort((a, b) => b.shared_domain_count - a.shared_domain_count || b.confidence_score - a.confidence_score)
360
359
  .slice(0, limit);
361
360
  }
362
- // Fallback: tag intersection (>= 2 shared tags)
363
361
  const feature_tags = new Set(feature_learnings.flatMap((l) => l.tags));
364
362
  if (feature_tags.size === 0) {
365
363
  return [];
@@ -397,8 +395,103 @@ export class InMemoryWorkflowStateAdapter {
397
395
  if (filter?.category != null) {
398
396
  all = all.filter((l) => l.category === filter.category);
399
397
  }
398
+ if (filter?.min_confidence != null) {
399
+ const in_memory_confidence = 0.5;
400
+ all = all.filter(() => in_memory_confidence >= filter.min_confidence);
401
+ }
400
402
  return all.sort((a, b) => b.created_at.localeCompare(a.created_at));
401
403
  }
404
+ async replaceSkillProposalCandidates(candidates) {
405
+ this.skill_proposals.clear();
406
+ for (const candidate of candidates) {
407
+ this.skill_proposals.set(candidate.topic_key, candidate);
408
+ }
409
+ }
410
+ async listSkillProposalCandidates(filter) {
411
+ let proposals = Array.from(this.skill_proposals.values());
412
+ if (filter?.statuses != null && filter.statuses.length > 0) {
413
+ const allowed = new Set(filter.statuses);
414
+ proposals = proposals.filter((proposal) => allowed.has(proposal.status));
415
+ }
416
+ proposals.sort((left, right) => {
417
+ if (left.status !== right.status) {
418
+ return left.status === 'DRAFT_READY' ? -1 : 1;
419
+ }
420
+ if (left.feature_count !== right.feature_count) {
421
+ return right.feature_count - left.feature_count;
422
+ }
423
+ if (left.evidence_count !== right.evidence_count) {
424
+ return right.evidence_count - left.evidence_count;
425
+ }
426
+ const recency = right.latest_learning_at.localeCompare(left.latest_learning_at);
427
+ if (recency !== 0) {
428
+ return recency;
429
+ }
430
+ return left.topic_key.localeCompare(right.topic_key);
431
+ });
432
+ return filter?.limit == null ? proposals : proposals.slice(0, filter.limit);
433
+ }
434
+ async upsertSkillProposalDraft(proposal) {
435
+ const existing = this.skill_proposal_records.get(proposal.topic_key);
436
+ const now = new Date().toISOString();
437
+ const next = {
438
+ ...proposal,
439
+ created_at: existing?.created_at ?? now,
440
+ updated_at: now,
441
+ approved_by: null,
442
+ approved_at: null,
443
+ published_by: null,
444
+ published_at: null,
445
+ };
446
+ this.skill_proposal_records.set(proposal.topic_key, next);
447
+ return next;
448
+ }
449
+ async listSkillProposals(filter) {
450
+ let proposals = Array.from(this.skill_proposal_records.values());
451
+ if (filter?.statuses != null && filter.statuses.length > 0) {
452
+ const allowed = new Set(filter.statuses);
453
+ proposals = proposals.filter((proposal) => allowed.has(proposal.status));
454
+ }
455
+ proposals.sort((left, right) => right.updated_at.localeCompare(left.updated_at) || left.topic_key.localeCompare(right.topic_key));
456
+ return filter?.limit == null ? proposals : proposals.slice(0, filter.limit);
457
+ }
458
+ async recordSkillProposalDecision(topic_key, status, actor, notes) {
459
+ const existing = this.skill_proposal_records.get(topic_key);
460
+ if (existing == null) {
461
+ throw new Error(`Skill proposal not found: ${topic_key}`);
462
+ }
463
+ const now = new Date().toISOString();
464
+ const next = {
465
+ ...existing,
466
+ status,
467
+ decision_notes: notes ?? null,
468
+ updated_at: now,
469
+ approved_by: status === 'APPROVED' ? actor : null,
470
+ approved_at: status === 'APPROVED' ? now : null,
471
+ published_by: status === 'REJECTED' ? null : existing.published_by,
472
+ published_at: status === 'REJECTED' ? null : existing.published_at,
473
+ published_path: status === 'REJECTED' ? null : existing.published_path,
474
+ };
475
+ this.skill_proposal_records.set(topic_key, next);
476
+ return next;
477
+ }
478
+ async markSkillProposalPublished(topic_key, published_by, published_path) {
479
+ const existing = this.skill_proposal_records.get(topic_key);
480
+ if (existing == null) {
481
+ throw new Error(`Skill proposal not found: ${topic_key}`);
482
+ }
483
+ const now = new Date().toISOString();
484
+ const next = {
485
+ ...existing,
486
+ status: 'PUBLISHED',
487
+ published_by,
488
+ published_at: now,
489
+ published_path,
490
+ updated_at: now,
491
+ };
492
+ this.skill_proposal_records.set(topic_key, next);
493
+ return next;
494
+ }
402
495
  touchFeature(feature_id) {
403
496
  const feature = this.features.get(feature_id);
404
497
  if (feature == null) {