@dain-os/mcp-server 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/index.js +0 -0
  2. package/dist/tools/cadence.d.ts +4 -0
  3. package/dist/tools/cadence.d.ts.map +1 -0
  4. package/dist/tools/cadence.js +245 -0
  5. package/dist/tools/cadence.js.map +1 -0
  6. package/dist/tools/comments.d.ts +3 -0
  7. package/dist/tools/comments.d.ts.map +1 -0
  8. package/dist/tools/comments.js +19 -0
  9. package/dist/tools/comments.js.map +1 -0
  10. package/dist/tools/developer.d.ts +3 -0
  11. package/dist/tools/developer.d.ts.map +1 -0
  12. package/dist/tools/developer.js +349 -0
  13. package/dist/tools/developer.js.map +1 -0
  14. package/dist/tools/iam.d.ts +3 -0
  15. package/dist/tools/iam.d.ts.map +1 -0
  16. package/dist/tools/iam.js +38 -0
  17. package/dist/tools/iam.js.map +1 -0
  18. package/dist/tools/index.d.ts +2 -0
  19. package/dist/tools/index.d.ts.map +1 -1
  20. package/dist/tools/index.js +4 -0
  21. package/dist/tools/index.js.map +1 -1
  22. package/dist/tools/log-time-entry.d.ts +3 -0
  23. package/dist/tools/log-time-entry.d.ts.map +1 -0
  24. package/dist/tools/log-time-entry.js +54 -0
  25. package/dist/tools/log-time-entry.js.map +1 -0
  26. package/dist/tools/pr-review.d.ts +3 -0
  27. package/dist/tools/pr-review.d.ts.map +1 -0
  28. package/dist/tools/pr-review.js +83 -0
  29. package/dist/tools/pr-review.js.map +1 -0
  30. package/dist/tools/products.d.ts +3 -0
  31. package/dist/tools/products.d.ts.map +1 -0
  32. package/dist/tools/products.js +37 -0
  33. package/dist/tools/products.js.map +1 -0
  34. package/dist/tools/projects.d.ts +3 -0
  35. package/dist/tools/projects.d.ts.map +1 -0
  36. package/dist/tools/projects.js +151 -0
  37. package/dist/tools/projects.js.map +1 -0
  38. package/dist/tools/proposal-content.d.ts +3 -0
  39. package/dist/tools/proposal-content.d.ts.map +1 -0
  40. package/dist/tools/proposal-content.js +136 -0
  41. package/dist/tools/proposal-content.js.map +1 -0
  42. package/dist/tools/proposal-options.d.ts +3 -0
  43. package/dist/tools/proposal-options.d.ts.map +1 -0
  44. package/dist/tools/proposal-options.js +132 -0
  45. package/dist/tools/proposal-options.js.map +1 -0
  46. package/dist/tools/proposals.d.ts +22 -0
  47. package/dist/tools/proposals.d.ts.map +1 -0
  48. package/dist/tools/proposals.js +179 -0
  49. package/dist/tools/proposals.js.map +1 -0
  50. package/dist/tools/registry.d.ts.map +1 -1
  51. package/dist/tools/registry.js +4 -2
  52. package/dist/tools/registry.js.map +1 -1
  53. package/dist/tools/tasks.d.ts +3 -0
  54. package/dist/tools/tasks.d.ts.map +1 -0
  55. package/dist/tools/tasks.js +255 -0
  56. package/dist/tools/tasks.js.map +1 -0
  57. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/tools/developer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const iamTools: ToolDefinition[];
3
+ //# sourceMappingURL=iam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.d.ts","sourceRoot":"","sources":["../../src/tools/iam.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyCjD,eAAO,MAAM,QAAQ,EAAE,cAAc,EAA+B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * IAM user tools — operator-identity helpers for the wrap-up skill.
4
+ *
5
+ * Both tools are intentionally tenant-scoped at the API layer: the server
6
+ * resolves the caller's tenant from their JWT/PAT and filters iam.users
7
+ * automatically via the Prisma tenant extension. No tenantSlug param is
8
+ * accepted here because that would introduce a foot-gun: a caller who
9
+ * guesses another tenant's slug would get a 403 at worst, but the API
10
+ * simply ignores slug params and always scopes to the caller's tenant.
11
+ */
12
+ const listTenantUsers = {
13
+ name: 'list_tenant_users',
14
+ description: 'List users in the caller\'s tenant. Returns id, email, fullName, displayName, status, and tenantId for each user, ordered by fullName. Optionally filter by status (active | inactive | suspended | pending). Use this to look up who to attribute work to in the wrap-up flow.',
15
+ inputSchema: z.object({
16
+ status: z
17
+ .enum(['active', 'inactive', 'suspended', 'pending'])
18
+ .optional()
19
+ .describe('Filter by user status. Omit to return all statuses.'),
20
+ }),
21
+ handler: async (client, input) => {
22
+ const params = new URLSearchParams();
23
+ if (input.status)
24
+ params.set('status', input.status);
25
+ const query = params.toString() ? `?${params.toString()}` : '';
26
+ return client.get(`/iam/users${query}`);
27
+ },
28
+ };
29
+ const getUser = {
30
+ name: 'get_user',
31
+ description: 'Get one user by id from the caller\'s tenant. Returns id, email, fullName, displayName, status, and tenantId. Returns a 404 error if the id is unknown or belongs to a different tenant.',
32
+ inputSchema: z.object({
33
+ id: z.string().uuid().describe('The iam_users UUID of the user to fetch.'),
34
+ }),
35
+ handler: async (client, input) => client.get(`/iam/users/${input.id}`),
36
+ };
37
+ export const iamTools = [listTenantUsers, getUser];
38
+ //# sourceMappingURL=iam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.js","sourceRoot":"","sources":["../../src/tools/iam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;GASG;AAEH,MAAM,eAAe,GAAmB;IACtC,IAAI,EAAE,mBAAmB;IACzB,WAAW,EACT,iRAAiR;IACnR,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;aACpD,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;KACnE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,GAAmB;IAC9B,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,0LAA0L;IAC5L,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;KAC3E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,EAAE,EAAE,CAAC;CACvE,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAqB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import type { ToolDefinition } from './types.js';
2
2
  export { genericTools } from './generic.js';
3
3
  export { semanticTools } from './semantic/index.js';
4
+ export { libraryTools } from './library.js';
4
5
  export type { ToolDefinition };
5
6
  /**
6
7
  * All tools exposed by the DainOS MCP server.
7
8
  *
8
9
  * 3 generic tools (describe_schema, query, mutate) replace ~36 thin CRUD tools.
9
10
  * ~17 semantic tools carry real business logic and keep their named interfaces.
11
+ * 4 library tools manage the instruction library (list, get, search, upsert).
10
12
  */
11
13
  export declare const allTools: ToolDefinition[];
12
14
  /** Look up a tool by its exposed name. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,EAGpC,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,EAIpC,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE"}
@@ -1,16 +1,20 @@
1
1
  import { genericTools } from './generic.js';
2
2
  import { semanticTools } from './semantic/index.js';
3
+ import { libraryTools } from './library.js';
3
4
  export { genericTools } from './generic.js';
4
5
  export { semanticTools } from './semantic/index.js';
6
+ export { libraryTools } from './library.js';
5
7
  /**
6
8
  * All tools exposed by the DainOS MCP server.
7
9
  *
8
10
  * 3 generic tools (describe_schema, query, mutate) replace ~36 thin CRUD tools.
9
11
  * ~17 semantic tools carry real business logic and keep their named interfaces.
12
+ * 4 library tools manage the instruction library (list, get, search, upsert).
10
13
  */
11
14
  export const allTools = [
12
15
  ...genericTools,
13
16
  ...semanticTools,
17
+ ...libraryTools,
14
18
  ];
15
19
  /** Look up a tool by its exposed name. */
16
20
  export function getTool(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,GAAG,YAAY;IACf,GAAG,aAAa;CACjB,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,GAAG,YAAY;IACf,GAAG,aAAa;IAChB,GAAG,YAAY;CAChB,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const logTimeEntryTool: ToolDefinition;
3
+ //# sourceMappingURL=log-time-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-time-entry.d.ts","sourceRoot":"","sources":["../../src/tools/log-time-entry.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,gBAAgB,EAAE,cAiD9B,CAAC"}
@@ -0,0 +1,54 @@
1
+ // packages/mcp-server/src/tools/log-time-entry.ts
2
+ //
3
+ // MCP tool: log_time_entry
4
+ // Feature Brief §9.3 — called by the wrap-up skill immediately after
5
+ // log_session_context. Idempotent on sessionContextId.
6
+ //
7
+ // Input schema mirrors logTimeEntryInputSchema in
8
+ // apps/api/src/domains/developer/types/developer.types.ts exactly.
9
+ // Handler calls POST /api/v1/developer/time-entries.
10
+ import { z } from 'zod';
11
+ export const logTimeEntryTool = {
12
+ name: 'log_time_entry',
13
+ description: 'Log a time entry for a development session against a project slug. Used by the /wrap-up skill immediately after log_session_context. Idempotent on sessionContextId: re-calling with the same sessionContextId returns the existing entry with alreadyExisted: true.',
14
+ inputSchema: z.object({
15
+ operatorIamUserId: z
16
+ .string()
17
+ .uuid()
18
+ .describe('iam_users.id of the person who ran the session. NOT the Supabase auth UUID — resolve from your wrap-up config.'),
19
+ sessionContextId: z
20
+ .string()
21
+ .uuid()
22
+ .describe('UUID returned by log_session_context. Acts as the idempotency key.'),
23
+ projectSlug: z
24
+ .string()
25
+ .min(1)
26
+ .max(200)
27
+ .describe('The project slug (e.g. dain-os, herbert, mabel). Resolved via session_slug_aliases server-side.'),
28
+ taskIds: z
29
+ .array(z.string().uuid())
30
+ .default([])
31
+ .describe('UUIDs of DainOS tasks worked during the session. If exactly one, it is written to task_id. Defaults to [].'),
32
+ durationMinutes: z
33
+ .number()
34
+ .int()
35
+ .positive()
36
+ .max(1440)
37
+ .describe('Duration of the session in whole minutes (1 to 1440).'),
38
+ entryDate: z
39
+ .string()
40
+ .regex(/^\d{4}-\d{2}-\d{2}$/)
41
+ .describe('Calendar date of the session in YYYY-MM-DD format.'),
42
+ description: z
43
+ .string()
44
+ .max(500)
45
+ .optional()
46
+ .describe('Optional human-readable summary of what was done. Max 500 characters.'),
47
+ isBillable: z
48
+ .boolean()
49
+ .default(false)
50
+ .describe('Whether the session is billable to a client. Defaults to false.'),
51
+ }),
52
+ handler: async (client, input) => client.post('/developer/time-entries', input),
53
+ };
54
+ //# sourceMappingURL=log-time-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-time-entry.js","sourceRoot":"","sources":["../../src/tools/log-time-entry.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,2BAA2B;AAC3B,qEAAqE;AACrE,uDAAuD;AACvD,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,qDAAqD;AAErD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,sQAAsQ;IACxQ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,IAAI,EAAE;aACN,QAAQ,CACP,gHAAgH,CACjH;QACH,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,IAAI,EAAE;aACN,QAAQ,CAAC,oEAAoE,CAAC;QACjF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CACP,iGAAiG,CAClG;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;aACxB,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,4GAA4G,CAC7G;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,CAAC,uDAAuD,CAAC;QACpE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,KAAK,CAAC,qBAAqB,CAAC;aAC5B,QAAQ,CAAC,oDAAoD,CAAC;QACjE,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,iEAAiE,CAAC;KAC/E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;CAChF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const prReviewTools: ToolDefinition[];
3
+ //# sourceMappingURL=pr-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-review.d.ts","sourceRoot":"","sources":["../../src/tools/pr-review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAuFjD,eAAO,MAAM,aAAa,EAAE,cAAc,EAGzC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * PR-review feedback tools for the wrap-up skill Step 7.5.
4
+ *
5
+ * Two operations:
6
+ * list_unscored_pr_findings — fetch findings for a PR that the caller has not yet scored
7
+ * score_pr_finding — record a verdict (useful | noise | wrong) for one finding
8
+ *
9
+ * The verdict enum matches the DB CHECK constraint exactly:
10
+ * 'useful' | 'noise' | 'wrong'
11
+ * 'Skip' is a UI-only sentinel and is intentionally excluded.
12
+ */
13
+ // Matches the DB CHECK constraint: verdict IN ('useful', 'noise', 'wrong')
14
+ const verdictEnum = z.enum(['useful', 'noise', 'wrong']);
15
+ const listUnscoredPrFindings = {
16
+ name: 'list_unscored_pr_findings',
17
+ description: 'List DainOS-reviewer findings on a specific PR that have not yet been scored by the caller. ' +
18
+ 'Pass repo (e.g. "dain-agency/dain-os"), prNumber, and scoredBy (the caller\'s UUID). ' +
19
+ 'Returns an empty array when all findings are already scored. ' +
20
+ 'Returns a 404-style error when the PR has no reviews recorded.',
21
+ inputSchema: z.object({
22
+ repo: z
23
+ .string()
24
+ .min(1)
25
+ .describe('Full GitHub repo path, e.g. "dain-agency/dain-os".'),
26
+ prNumber: z.coerce
27
+ .number()
28
+ .int()
29
+ .positive()
30
+ .describe('The PR number, e.g. 307.'),
31
+ scoredBy: z
32
+ .string()
33
+ .uuid()
34
+ .describe('UUID of the user doing the scoring (used to exclude already-scored findings).'),
35
+ }),
36
+ handler: async (client, input) => {
37
+ const params = new URLSearchParams({
38
+ repo: input.repo,
39
+ prNumber: String(input.prNumber),
40
+ scoredBy: input.scoredBy,
41
+ });
42
+ return client.get(`/pr-review/findings/unscored?${params.toString()}`);
43
+ },
44
+ };
45
+ const scorePrFinding = {
46
+ name: 'score_pr_finding',
47
+ description: 'Record a verdict for a single DainOS-reviewer finding. ' +
48
+ 'Verdicts are "useful" (actionable, correctly identified), "noise" (not worth raising), ' +
49
+ 'or "wrong" (factually incorrect). "Skip" is not a valid verdict — only persist when a decision is made. ' +
50
+ 'Returns 201 with the created row on success. ' +
51
+ 'Returns 409 with the existing row when the same scorer has already scored this finding. ' +
52
+ 'Returns 404 when the findingId does not exist.',
53
+ inputSchema: z.object({
54
+ findingId: z
55
+ .string()
56
+ .uuid()
57
+ .describe('UUID of the pr_review_findings row to score.'),
58
+ verdict: verdictEnum.describe('One of "useful", "noise", or "wrong". Matches the DB CHECK constraint exactly.'),
59
+ scoredBy: z
60
+ .string()
61
+ .uuid()
62
+ .describe('UUID of the user recording this verdict.'),
63
+ notes: z
64
+ .string()
65
+ .max(2000)
66
+ .optional()
67
+ .describe('Optional free-text notes explaining the verdict.'),
68
+ reviewerVersion: z
69
+ .string()
70
+ .max(100)
71
+ .optional()
72
+ .describe('Reviewer version string at time of scoring, e.g. "v2.1".'),
73
+ }),
74
+ handler: async (client, input) => {
75
+ const { findingId, ...body } = input;
76
+ return client.post(`/pr-review/findings/${findingId}/feedback`, body);
77
+ },
78
+ };
79
+ export const prReviewTools = [
80
+ listUnscoredPrFindings,
81
+ scorePrFinding,
82
+ ];
83
+ //# sourceMappingURL=pr-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-review.js","sourceRoot":"","sources":["../../src/tools/pr-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;GAUG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzD,MAAM,sBAAsB,GAAmB;IAC7C,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,8FAA8F;QAC9F,uFAAuF;QACvF,+DAA+D;QAC/D,gEAAgE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CAAC,oDAAoD,CAAC;QACjE,QAAQ,EAAE,CAAC,CAAC,MAAM;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,QAAQ,EAAE;aACV,QAAQ,CAAC,0BAA0B,CAAC;QACvC,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,IAAI,EAAE;aACN,QAAQ,CAAC,+EAA+E,CAAC;KAC7F,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;CACF,CAAC;AAEF,MAAM,cAAc,GAAmB;IACrC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,yDAAyD;QACzD,yFAAyF;QACzF,0GAA0G;QAC1G,+CAA+C;QAC/C,0FAA0F;QAC1F,gDAAgD;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,IAAI,EAAE;aACN,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,OAAO,EAAE,WAAW,CAAC,QAAQ,CAC3B,gFAAgF,CACjF;QACD,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,IAAI,EAAE;aACN,QAAQ,CAAC,0CAA0C,CAAC;QACvD,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,CAAC,IAAI,CAAC;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;KACxE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QACrC,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,WAAW,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,sBAAsB;IACtB,cAAc;CACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const productTools: ToolDefinition[];
3
+ //# sourceMappingURL=products.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA4CjD,eAAO,MAAM,YAAY,EAAE,cAAc,EAAgD,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Product tools. Two read operations: lookup_product_repos and summarise_product_tasks.
4
+ *
5
+ * These back /recap and /wrap-up so the skills can resolve a GitHub repo to a
6
+ * product without dropping to raw SQL.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // lookup_product_repos — find product(s) by GitHub owner + repo
10
+ // ---------------------------------------------------------------------------
11
+ const lookupProductRepos = {
12
+ name: 'lookup_product_repos',
13
+ description: 'Look up which DainOS product(s) are linked to a GitHub repository. Returns an array because a single repo can be linked to more than one product. Use this to resolve "which product does this repo belong to?" during /recap or /wrapup without raw SQL.',
14
+ inputSchema: z.object({
15
+ owner: z.string().min(1).describe('GitHub organisation or username, e.g. "dain-agency".'),
16
+ repo: z.string().min(1).describe('GitHub repository name, e.g. "dain-os".'),
17
+ }),
18
+ handler: async (client, input) => {
19
+ const params = new URLSearchParams();
20
+ params.set('owner', input.owner);
21
+ params.set('repo', input.repo);
22
+ return client.get(`/products/repos/lookup?${params.toString()}`);
23
+ },
24
+ };
25
+ // ---------------------------------------------------------------------------
26
+ // summarise_product_tasks — cross-project task aggregation for a product
27
+ // ---------------------------------------------------------------------------
28
+ const summariseProductTasks = {
29
+ name: 'summarise_product_tasks',
30
+ description: 'Get a task summary across all projects linked to a product. Returns status counts for all 8 statuses (backlog, todo, in_progress, review, production_ready, blocked, done, cancelled) — zeros included — plus up to 20 "active" tasks (in_progress, review, blocked, or done within the last 7 days). Use during /recap to give the user a live picture of where work stands.',
31
+ inputSchema: z.object({
32
+ productId: z.string().uuid().describe('The product UUID.'),
33
+ }),
34
+ handler: async (client, input) => client.get(`/products/${input.productId}/tasks/summary`),
35
+ };
36
+ export const productTools = [lookupProductRepos, summariseProductTasks];
37
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/tools/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AAEH,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E,MAAM,kBAAkB,GAAmB;IACzC,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EACT,2PAA2P;IAC7P,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;QACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KAC5E,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAc,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,qBAAqB,GAAmB;IAC5C,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,+WAA+W;IACjX,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC3D,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAC/B,MAAM,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,SAAmB,gBAAgB,CAAC;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAqB,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const projectTools: ToolDefinition[];
3
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiKjD,eAAO,MAAM,YAAY,EAAE,cAAc,EAQxC,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Project tools. Five operations: list, get, create, update, archive.
4
+ *
5
+ * Descriptions are written for the model, not the user — they appear in the
6
+ * tool-discovery output and shape how the model decides which tool to call.
7
+ */
8
+ const projectStatusEnum = z.enum([
9
+ 'planning',
10
+ 'active',
11
+ 'on_hold',
12
+ 'completed',
13
+ 'archived',
14
+ 'cancelled',
15
+ ]);
16
+ const listProjects = {
17
+ name: 'list_projects',
18
+ description: 'List projects in the current workspace. Returns id, name, code, status, and progress for each. Use this to discover project ids before calling get_project / create_task / list_tasks.',
19
+ inputSchema: z.object({
20
+ status: projectStatusEnum
21
+ .optional()
22
+ .describe('Filter by status. Omit to return all non-archived projects.'),
23
+ limit: z.coerce.number().int().min(1).max(100).optional().describe('Default 25, max 100.'),
24
+ }),
25
+ handler: async (client, input) => {
26
+ const params = new URLSearchParams();
27
+ if (input.status)
28
+ params.set('status', input.status);
29
+ if (input.limit !== undefined)
30
+ params.set('limit', String(input.limit));
31
+ const query = params.toString() ? `?${params.toString()}` : '';
32
+ const result = await client.get(`/projects${query}`);
33
+ // The API returns all statuses regardless of filter, so when the caller
34
+ // didn't specify a status we hide archived projects client-side to honour
35
+ // the documented "no longer appears in list_projects by default" contract.
36
+ if (input.status === undefined && Array.isArray(result)) {
37
+ return result.filter((project) => typeof project === 'object' &&
38
+ project !== null &&
39
+ project.status !== 'archived');
40
+ }
41
+ return result;
42
+ },
43
+ };
44
+ const getProject = {
45
+ name: 'get_project',
46
+ description: 'Get one project by id. Returns full project details including tasks count, members, owner, and client company.',
47
+ inputSchema: z.object({
48
+ id: z.string().uuid().describe('Project id (UUID). Get one from list_projects.'),
49
+ }),
50
+ handler: async (client, input) => client.get(`/projects/${input.id}`),
51
+ };
52
+ const createProject = {
53
+ name: 'create_project',
54
+ description: 'Create a new project. Only `name` is required. Returns the created project with its id.',
55
+ inputSchema: z.object({
56
+ name: z.string().min(1).max(200).describe('Project name. Required.'),
57
+ description: z.string().max(2000).optional(),
58
+ clientCompanyId: z.string().uuid().optional().describe('Link to a client company.'),
59
+ ownerId: z.string().uuid().optional().describe('User id of the project owner.'),
60
+ projectType: z
61
+ .enum(['internal', 'client', 'product', 'research'])
62
+ .optional()
63
+ .describe('Defaults to "client" on the server.'),
64
+ billingMethod: z
65
+ .enum(['fixed', 'hourly', 'retainer', 'non_billable'])
66
+ .optional(),
67
+ startDate: z.string().optional().describe('ISO 8601 date.'),
68
+ targetEndDate: z.string().optional().describe('ISO 8601 date.'),
69
+ budgetHours: z.coerce.number().min(0).optional(),
70
+ budgetAmount: z.coerce.number().min(0).optional(),
71
+ priority: z.coerce.number().int().min(0).max(100).optional(),
72
+ tags: z.array(z.string()).optional(),
73
+ }),
74
+ handler: async (client, input) => client.post('/projects', input),
75
+ };
76
+ const updateProject = {
77
+ name: 'update_project',
78
+ description: 'Update an existing project. Pass any subset of fields; omitted fields are left unchanged. Use this to rename, change status, retarget the end date, etc.',
79
+ inputSchema: z.object({
80
+ id: z.string().uuid(),
81
+ name: z.string().min(1).max(200).optional(),
82
+ description: z.string().max(2000).optional(),
83
+ status: projectStatusEnum.optional(),
84
+ ownerId: z.string().uuid().optional(),
85
+ startDate: z.string().optional(),
86
+ targetEndDate: z.string().optional(),
87
+ budgetHours: z.coerce.number().min(0).optional(),
88
+ budgetAmount: z.coerce.number().min(0).optional(),
89
+ priority: z.coerce.number().int().min(0).max(100).optional(),
90
+ tags: z.array(z.string()).optional(),
91
+ }),
92
+ handler: async (client, input) => {
93
+ const { id, ...rest } = input;
94
+ return client.put(`/projects/${id}`, rest);
95
+ },
96
+ };
97
+ const archiveProject = {
98
+ name: 'archive_project',
99
+ description: 'Archive a project. The project is soft-deleted (status -> archived) and no longer appears in list_projects by default. Existing tasks remain accessible by id.',
100
+ inputSchema: z.object({
101
+ id: z.string().uuid(),
102
+ }),
103
+ handler: async (client, input) => client.delete(`/projects/${input.id}`),
104
+ };
105
+ const listMilestones = {
106
+ name: 'list_milestones',
107
+ description: 'List milestones for a project. Returns id, name, status, start/due dates, and tasks_count for each. Call this before create_task so the new task can be attached to the right milestone — orphan tasks (projectId without milestoneId) are a code smell and clutter the project view.',
108
+ inputSchema: z.object({
109
+ projectId: z
110
+ .string()
111
+ .uuid()
112
+ .describe('Project id (UUID). Get one from list_projects.'),
113
+ }),
114
+ handler: async (client, input) => client.get(`/projects/${input.projectId}/milestones`),
115
+ };
116
+ const milestoneStatusEnum = z.enum([
117
+ 'pending',
118
+ 'in_progress',
119
+ 'completed',
120
+ 'cancelled',
121
+ ]);
122
+ const updateMilestone = {
123
+ name: 'update_milestone',
124
+ description: 'Update a milestone on a project. Pass any subset of fields. Covers rename, schedule (startDate/dueDate), status walk, billing toggle, and sort order. projectId + milestoneId are both required because the server route is nested.',
125
+ inputSchema: z.object({
126
+ projectId: z.string().uuid().describe('Parent project id. Get one from list_projects.'),
127
+ milestoneId: z.string().uuid().describe('Milestone id. Get one from list_milestones.'),
128
+ name: z.string().min(1).max(200).optional(),
129
+ description: z.string().max(2000).nullable().optional(),
130
+ startDate: z.string().nullable().optional().describe('ISO 8601 or null to clear.'),
131
+ dueDate: z.string().nullable().optional().describe('ISO 8601 or null to clear.'),
132
+ status: milestoneStatusEnum.optional(),
133
+ isBillable: z.boolean().optional(),
134
+ billableAmount: z.coerce.number().min(0).nullable().optional(),
135
+ sortOrder: z.coerce.number().int().min(0).optional(),
136
+ }),
137
+ handler: async (client, input) => {
138
+ const { projectId, milestoneId, ...rest } = input;
139
+ return client.put(`/projects/${projectId}/milestones/${milestoneId}`, rest);
140
+ },
141
+ };
142
+ export const projectTools = [
143
+ listProjects,
144
+ getProject,
145
+ createProject,
146
+ updateProject,
147
+ archiveProject,
148
+ listMilestones,
149
+ updateMilestone,
150
+ ];
151
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const proposalContentTools: ToolDefinition[];
3
+ //# sourceMappingURL=proposal-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal-content.d.ts","sourceRoot":"","sources":["../../src/tools/proposal-content.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6JjD,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAShD,CAAC"}