@dain-os/mcp-server 0.2.1 → 0.3.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/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @dain-os/mcp-server
2
2
 
3
- MCP server for DainOS. Lets Claude Code and other MCP clients manage your projects, tasks, and task comments, and persist + retrieve developer knowledge (changelog / sessions / KB).
3
+ MCP server for DainOS. Lets Claude Code and other MCP clients manage your projects, tasks, task comments, proposals (including content drafting), and persist + retrieve developer knowledge (changelog / sessions / KB).
4
4
 
5
5
  ## What it does
6
6
 
7
- Wraps the DainOS Express API behind 17 tools:
7
+ Wraps the DainOS Express API behind 36 tools:
8
8
 
9
9
  | Domain | Tools |
10
10
  |---|---|
@@ -12,8 +12,21 @@ Wraps the DainOS Express API behind 17 tools:
12
12
  | Tasks | `list_tasks`, `get_task`, `create_task`, `update_task`, `complete_task`, `archive_task` |
13
13
  | Comments | `add_task_comment` |
14
14
  | Developer KB (v0.2+) | `log_changelog_entry`, `log_session_context`, `log_knowledge_base_entry`, `list_recent_sessions`, `search_knowledge_base` |
15
+ | Proposals (v0.3+) | `list_proposals`, `get_proposal`, `create_proposal`, `update_proposal`, `set_proposal_status`, `delete_proposal` |
16
+ | Proposal options (v0.3+) | `list_proposal_options`, `create_proposal_option`, `update_proposal_option`, `set_recommended_option`, `delete_proposal_option` |
17
+ | Proposal content (v0.3+) | `get_proposal_content`, `describe_proposal_block_types`, `upsert_proposal_section`, `delete_proposal_section`, `upsert_proposal_block`, `delete_proposal_block`, `reorder_proposal_blocks`, `replace_proposal_content` |
15
18
 
16
- Project / task / comment tools run as the user who minted the token, with tenant scoping enforced server-side. Developer KB tools are intentionally cross-tenant: they accept `project` as a required parameter and store entries in a shared developer schema (used by `/wrapup`, `/recap`, `/dev-kb`).
19
+ Project / task / comment / proposal tools run as the user who minted the token, with tenant scoping enforced server-side. Developer KB tools are intentionally cross-tenant: they accept `project` as a required parameter and store entries in a shared developer schema (used by `/wrapup`, `/recap`, `/dev-kb`).
20
+
21
+ ### Drafting proposal content
22
+
23
+ Proposal content lives in a structured JSON shape: `{ version: 2, sections: [{ id, key, title, blocks: ContentBlock[] }] }`. Eight block types are supported: `text`, `cards`, `diagram`, `chart`, `table`, `image`, `gantt`, `iframe`.
24
+
25
+ Start a drafting session by calling `describe_proposal_block_types` — it returns the full catalogue (schema + minimal example + when-to-use hints + gotchas like the iframe host allowlist). Then use the granular content tools to add or change one block at a time. Each granular tool ships only the bytes you are editing, so token cost stays low even for fine-grained edits.
26
+
27
+ For wholesale rewrites or regeneration, use `replace_proposal_content`.
28
+
29
+ `get_proposal` includes a computed `shareUrl` field. It is populated as `https://dainos.app/proposals/view/<token>` once the proposal has been transitioned to `sent` (or later: `viewed`, `accepted`). Draft proposals return `shareUrl: null` because the link is not yet meaningful.
17
30
 
18
31
  ## Setup
19
32
 
@@ -32,9 +32,9 @@ const changelogEntrySchema = z.object({
32
32
  scope: z.string().optional(),
33
33
  summary: z.string().describe('Commit message subject line.'),
34
34
  description: z.string().optional(),
35
- files_changed: z.number().int().optional(),
36
- insertions: z.number().int().optional(),
37
- deletions: z.number().int().optional(),
35
+ files_changed: z.coerce.number().int().optional(),
36
+ insertions: z.coerce.number().int().optional(),
37
+ deletions: z.coerce.number().int().optional(),
38
38
  milestone: z.string().optional(),
39
39
  task_ref: z.string().optional().describe('Linear / Jira / Notion task id.'),
40
40
  impacts_config: z.boolean().optional().describe('Defaults false.'),
@@ -42,7 +42,7 @@ const changelogEntrySchema = z.object({
42
42
  tags: z.array(z.string()).optional(),
43
43
  author: z.string().optional(),
44
44
  committed_at: z.string().describe('ISO 8601 timestamp.'),
45
- pr_number: z.number().int().optional(),
45
+ pr_number: z.coerce.number().int().optional(),
46
46
  pr_url: z.string().optional(),
47
47
  });
48
48
  const logChangelogEntry = {
@@ -76,7 +76,7 @@ const logSessionContext = {
76
76
  session_date: z.string().optional().describe('YYYY-MM-DD. Defaults to today server-side.'),
77
77
  operator: z.string().describe('e.g. "Dane + Claude Opus 4.7".'),
78
78
  machine: z.string().optional(),
79
- duration_minutes: z.number().int().optional(),
79
+ duration_minutes: z.coerce.number().int().optional(),
80
80
  summary: z.string().describe('2-4 sentence overview of WHAT and WHY.'),
81
81
  decisions_made: z.array(decisionSchema).optional().describe('Non-obvious choices future sessions need to understand.'),
82
82
  files_touched: z.array(z.string()).optional(),
@@ -126,8 +126,8 @@ const listRecentSessions = {
126
126
  description: 'List the most recent development sessions for a project, newest first. Use during /recap to brief the user on what happened in the last 1-N sessions. Returns full session_context rows including decisions, blockers, and handoff_notes.',
127
127
  inputSchema: z.object({
128
128
  project: z.string().describe('Project slug.'),
129
- limit: z.number().int().min(1).max(50).optional().describe('Default 10, max 50.'),
130
- offset: z.number().int().min(0).optional().describe('For pagination.'),
129
+ limit: z.coerce.number().int().min(1).max(50).optional().describe('Default 10, max 50.'),
130
+ offset: z.coerce.number().int().min(0).optional().describe('For pagination.'),
131
131
  }),
132
132
  handler: async (client, input) => {
133
133
  const params = new URLSearchParams();
@@ -151,8 +151,8 @@ const searchKnowledgeBase = {
151
151
  category: kbCategoryEnum.optional(),
152
152
  severity: severityEnum.optional(),
153
153
  q: z.string().optional().describe('Free-text match against title + description.'),
154
- limit: z.number().int().min(1).max(50).optional().describe('Default 10.'),
155
- offset: z.number().int().min(0).optional(),
154
+ limit: z.coerce.number().int().min(1).max(50).optional().describe('Default 10.'),
155
+ offset: z.coerce.number().int().min(0).optional(),
156
156
  }),
157
157
  handler: async (client, input) => {
158
158
  const params = new URLSearchParams();
@@ -1 +1 @@
1
- {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/tools/developer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/tools/developer.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,12 @@ import { projectTools } from './projects.js';
3
3
  import { taskTools } from './tasks.js';
4
4
  import { commentTools } from './comments.js';
5
5
  import { developerTools } from './developer.js';
6
- export { projectTools, taskTools, commentTools, developerTools };
6
+ import { proposalTools } from './proposals.js';
7
+ import { proposalOptionTools } from './proposal-options.js';
8
+ import { proposalContentTools } from './proposal-content.js';
9
+ export { projectTools, taskTools, commentTools, developerTools, proposalTools, proposalOptionTools, proposalContentTools, };
7
10
  export type { ToolDefinition };
8
- /** All tools exposed by the DainOS MCP server (17 total). */
11
+ /** All tools exposed by the DainOS MCP server (36 total). */
9
12
  export declare const allTools: ToolDefinition[];
10
13
  /** Look up a tool by its exposed name. */
11
14
  export declare function getTool(name: string): ToolDefinition | undefined;
@@ -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;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,cAAc,EAKpC,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;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,CAAC;AACF,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,EAAE,cAAc,EAQpC,CAAC;AAEF,0CAA0C;AAC1C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE"}
@@ -2,13 +2,19 @@ import { projectTools } from './projects.js';
2
2
  import { taskTools } from './tasks.js';
3
3
  import { commentTools } from './comments.js';
4
4
  import { developerTools } from './developer.js';
5
- export { projectTools, taskTools, commentTools, developerTools };
6
- /** All tools exposed by the DainOS MCP server (17 total). */
5
+ import { proposalTools } from './proposals.js';
6
+ import { proposalOptionTools } from './proposal-options.js';
7
+ import { proposalContentTools } from './proposal-content.js';
8
+ export { projectTools, taskTools, commentTools, developerTools, proposalTools, proposalOptionTools, proposalContentTools, };
9
+ /** All tools exposed by the DainOS MCP server (36 total). */
7
10
  export const allTools = [
8
11
  ...projectTools,
9
12
  ...taskTools,
10
13
  ...commentTools,
11
14
  ...developerTools,
15
+ ...proposalTools,
16
+ ...proposalOptionTools,
17
+ ...proposalContentTools,
12
18
  ];
13
19
  /** Look up a tool by its exposed name. */
14
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,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAGjE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,GAAG,YAAY;IACf,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,cAAc;CAClB,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,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,CAAC;AAGF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,GAAG,YAAY;IACf,GAAG,SAAS;IACZ,GAAG,YAAY;IACf,GAAG,cAAc;IACjB,GAAG,aAAa;IAChB,GAAG,mBAAmB;IACtB,GAAG,oBAAoB;CACxB,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"}
@@ -20,7 +20,7 @@ const listProjects = {
20
20
  status: projectStatusEnum
21
21
  .optional()
22
22
  .describe('Filter by status. Omit to return all non-archived projects.'),
23
- limit: z.number().int().min(1).max(100).optional().describe('Default 25, max 100.'),
23
+ limit: z.coerce.number().int().min(1).max(100).optional().describe('Default 25, max 100.'),
24
24
  }),
25
25
  handler: async (client, input) => {
26
26
  const params = new URLSearchParams();
@@ -57,9 +57,9 @@ const createProject = {
57
57
  .optional(),
58
58
  startDate: z.string().optional().describe('ISO 8601 date.'),
59
59
  targetEndDate: z.string().optional().describe('ISO 8601 date.'),
60
- budgetHours: z.number().min(0).optional(),
61
- budgetAmount: z.number().min(0).optional(),
62
- priority: z.number().int().min(0).max(100).optional(),
60
+ budgetHours: z.coerce.number().min(0).optional(),
61
+ budgetAmount: z.coerce.number().min(0).optional(),
62
+ priority: z.coerce.number().int().min(0).max(100).optional(),
63
63
  tags: z.array(z.string()).optional(),
64
64
  }),
65
65
  handler: async (client, input) => client.post('/projects', input),
@@ -75,9 +75,9 @@ const updateProject = {
75
75
  ownerId: z.string().uuid().optional(),
76
76
  startDate: z.string().optional(),
77
77
  targetEndDate: z.string().optional(),
78
- budgetHours: z.number().min(0).optional(),
79
- budgetAmount: z.number().min(0).optional(),
80
- priority: z.number().int().min(0).max(100).optional(),
78
+ budgetHours: z.coerce.number().min(0).optional(),
79
+ budgetAmount: z.coerce.number().min(0).optional(),
80
+ priority: z.coerce.number().int().min(0).max(100).optional(),
81
81
  tags: z.array(z.string()).optional(),
82
82
  }),
83
83
  handler: async (client, input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Static catalogue of proposal content block types.
3
+ *
4
+ * Returned by the `describe_proposal_block_types` MCP tool so an LLM can
5
+ * discover what blocks exist, what fields each one accepts, and when to
6
+ * reach for which one -- without having to read the source.
7
+ *
8
+ * Source of truth: `apps/api/src/domains/crm/types/proposal-content.types.ts`.
9
+ * A sync test (`proposal-content-catalogue.test.ts`) imports the API Zod
10
+ * schemas and asserts that every block-type discriminator listed here also
11
+ * exists on the API side, and vice versa. If a new block type is added to
12
+ * the API the test fails until this catalogue is updated.
13
+ */
14
+ export interface BlockTypeEntry {
15
+ /** Discriminator value -- the `type` field on the block. */
16
+ type: string;
17
+ /** One-line summary the LLM sees first. */
18
+ summary: string;
19
+ /** When to use this block. Plain prose. */
20
+ whenToUse: string;
21
+ /** What fields are required + optional. */
22
+ fields: Record<string, string>;
23
+ /** Minimal valid example payload, ready to copy. */
24
+ minimalExample: Record<string, unknown>;
25
+ /** Optional richer real-world example pulled from a shipped proposal. */
26
+ richExample?: Record<string, unknown>;
27
+ /** Any gotchas, host allowlists, etc. */
28
+ notes?: string[];
29
+ }
30
+ export declare const BLOCK_TYPES: BlockTypeEntry[];
31
+ export declare const DEFAULT_SECTION_KEYS: Array<{
32
+ key: string;
33
+ title: string;
34
+ }>;
35
+ export interface BlockCatalogueResponse {
36
+ version: 'v2';
37
+ contentShape: {
38
+ description: string;
39
+ example: Record<string, unknown>;
40
+ };
41
+ blockTypes: BlockTypeEntry[];
42
+ defaultSections: Array<{
43
+ key: string;
44
+ title: string;
45
+ }>;
46
+ notes: string[];
47
+ }
48
+ export declare function buildBlockCatalogue(): BlockCatalogueResponse;
49
+ //# sourceMappingURL=proposal-content-catalogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal-content-catalogue.d.ts","sourceRoot":"","sources":["../../src/tools/proposal-content-catalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,EAAE,cAAc,EAmRvC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAMtE,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,eAAe,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,mBAAmB,IAAI,sBAAsB,CAkC5D"}
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Static catalogue of proposal content block types.
3
+ *
4
+ * Returned by the `describe_proposal_block_types` MCP tool so an LLM can
5
+ * discover what blocks exist, what fields each one accepts, and when to
6
+ * reach for which one -- without having to read the source.
7
+ *
8
+ * Source of truth: `apps/api/src/domains/crm/types/proposal-content.types.ts`.
9
+ * A sync test (`proposal-content-catalogue.test.ts`) imports the API Zod
10
+ * schemas and asserts that every block-type discriminator listed here also
11
+ * exists on the API side, and vice versa. If a new block type is added to
12
+ * the API the test fails until this catalogue is updated.
13
+ */
14
+ export const BLOCK_TYPES = [
15
+ {
16
+ type: 'text',
17
+ summary: 'A paragraph of plain or HTML-formatted prose.',
18
+ whenToUse: 'Default block for narrative copy: executive-summary sentences, section intros, problem statements, anything that reads as prose. Prefer HTML (`contentFormat: "html"`) so you can use <p>, <strong>, <em>, lists. Keep paragraphs short.',
19
+ fields: {
20
+ id: 'string. Required. Unique within the proposal (stable id used for granular updates).',
21
+ type: 'literal "text". Required.',
22
+ content: 'string. Required. The prose.',
23
+ contentFormat: '"plain" | "html". Optional. Defaults to "plain".',
24
+ },
25
+ minimalExample: {
26
+ id: 'b-intro',
27
+ type: 'text',
28
+ content: 'A short paragraph of plain text.',
29
+ },
30
+ richExample: {
31
+ id: 'ms-cm-roi-context',
32
+ type: 'text',
33
+ contentFormat: 'html',
34
+ content: '<p>From our discovery call, Millennium currently runs on 22+ separate tools costing well over £400,000 a year between them, and none of them quite fit how you operate.</p>',
35
+ },
36
+ },
37
+ {
38
+ type: 'cards',
39
+ summary: '1–3 column grid of icon + title + description cards.',
40
+ whenToUse: 'Use to break a list of 2–6 short ideas into scannable cards. Good for "what we will deliver", "what we need from you", or a feature highlight strip. Avoid for long-form prose.',
41
+ fields: {
42
+ id: 'string. Required.',
43
+ type: 'literal "cards". Required.',
44
+ columns: '"1" | "2" | "3". Optional, defaults to "3".',
45
+ colorVariant: '"white" | "teal" | "yellow" | "cyan". Optional, defaults to "white".',
46
+ cards: 'array of { id, icon?, title, description }. Required. Icon is a HugeIcons name (e.g. "ServerStack01Icon", "Shield01Icon", "DatabaseIcon", "GiftIcon"). The project uses HugeIcons exclusively; do not pass lucide / heroicons / font-awesome names.',
47
+ status: '"pending" | "generating" | "complete" | "error". Optional, defaults to "complete".',
48
+ },
49
+ minimalExample: {
50
+ id: 'b-cards',
51
+ type: 'cards',
52
+ cards: [
53
+ { id: 'c1', title: 'First idea', description: 'One sentence.' },
54
+ { id: 'c2', title: 'Second idea', description: 'One sentence.' },
55
+ ],
56
+ },
57
+ richExample: {
58
+ id: 'ms-fd-cards',
59
+ type: 'cards',
60
+ columns: '2',
61
+ colorVariant: 'white',
62
+ cards: [
63
+ {
64
+ id: 'ms-fd-c1',
65
+ icon: 'ServerStack01Icon',
66
+ title: 'Hosting and stack',
67
+ description: 'Supabase is our preferred database. Deployment is your choice: our Vercel/Azure tenant, or your own infrastructure with us as the build and maintenance partner.',
68
+ },
69
+ {
70
+ id: 'ms-fd-c2',
71
+ icon: 'shield',
72
+ title: 'IP and source access',
73
+ description: 'The CRM we build is yours. We can include a copy of the source repository in the contract, or run it as a managed service on your behalf.',
74
+ },
75
+ ],
76
+ },
77
+ },
78
+ {
79
+ type: 'diagram',
80
+ summary: 'A process diagram, flowchart, or mermaid diagram.',
81
+ whenToUse: 'For visual explanations of a workflow, system structure, or relationship. `process` is the workhorse: ordered numbered steps with title + description. Use `mermaid` for ER / sequence / class diagrams. `flowchart` for free-form node/edge graphs.',
82
+ fields: {
83
+ id: 'string. Required.',
84
+ type: 'literal "diagram". Required.',
85
+ diagramType: '"process" | "flowchart" | "schema". Required.',
86
+ title: 'string. Optional.',
87
+ prompt: 'string. Optional. The natural-language brief used to regenerate this diagram (kept for audit / re-prompting).',
88
+ 'data.processSteps': 'array of { id, title, description? } when diagramType is "process".',
89
+ 'data.processColorVariant': '"teal" | "yellow" | "cyan" | "purple". Optional.',
90
+ 'data.mermaid': '{ code, prompt?, variant? } when using mermaid output.',
91
+ 'data.flowchart': '{ nodes, edges } for free-form flowcharts.',
92
+ status: 'pending|generating|complete|error. Optional, defaults to "complete".',
93
+ },
94
+ minimalExample: {
95
+ id: 'b-diagram',
96
+ type: 'diagram',
97
+ diagramType: 'process',
98
+ title: 'How it works',
99
+ data: {
100
+ processSteps: [
101
+ { id: 's1', title: 'Step one', description: 'What happens first.' },
102
+ { id: 's2', title: 'Step two', description: 'What happens next.' },
103
+ ],
104
+ },
105
+ },
106
+ notes: [
107
+ 'For `process` diagrams the order of `processSteps` is the visual order.',
108
+ 'For `mermaid`, set data.mermaid.code to the raw mermaid source.',
109
+ ],
110
+ },
111
+ {
112
+ type: 'chart',
113
+ summary: 'A bar, line, or pie chart rendered by Recharts.',
114
+ whenToUse: 'Use to visualise numbers: cost comparisons, before/after, ROI, breakdowns. Prefer bar for category comparisons, line for time series, pie for parts-of-a-whole (≤6 slices). Always provide an explicit `axisOptions.yAxisTitle` for bar/line so the units are clear.',
115
+ fields: {
116
+ id: 'string. Required.',
117
+ type: 'literal "chart". Required.',
118
+ chartType: '"bar" | "line" | "pie". Required.',
119
+ title: 'string. Optional.',
120
+ prompt: 'string. Optional. Natural-language brief used to generate or regenerate the chart.',
121
+ data: 'array of { name, value?, color?, ...extra series keys }. Required for static data charts.',
122
+ series: 'array of { key, name, color? }. Optional, for multi-series charts.',
123
+ displayOptions: 'optional object: showDataLabels, labelFormat (number|percent|currency), decimalPlaces, currencySymbol, showLegend, legendPosition, barStackType, etc.',
124
+ axisOptions: 'optional { xAxisTitle?, yAxisTitle?, showGrid? }.',
125
+ status: 'pending|generating|complete|error. Optional, defaults to "complete".',
126
+ },
127
+ minimalExample: {
128
+ id: 'b-chart',
129
+ type: 'chart',
130
+ chartType: 'bar',
131
+ title: 'Annual cost',
132
+ data: [
133
+ { name: 'Today', value: 400000 },
134
+ { name: 'Proposed', value: 180000 },
135
+ ],
136
+ },
137
+ richExample: {
138
+ id: 'ms-cm-roi-chart',
139
+ type: 'chart',
140
+ chartType: 'bar',
141
+ title: 'Annual platform spend: today vs DAIN retainer',
142
+ data: [
143
+ { name: 'Today (22+ tools)', color: '#94a3b8', value: 400000 },
144
+ { name: 'DAIN retainer', color: '#0d9488', value: 180000 },
145
+ ],
146
+ axisOptions: { showGrid: true, yAxisTitle: 'Annual cost (GBP)' },
147
+ displayOptions: {
148
+ labelSize: 'medium',
149
+ showLegend: false,
150
+ labelFormat: 'currency',
151
+ decimalPlaces: 0,
152
+ labelPosition: 'top',
153
+ currencySymbol: '£',
154
+ showDataLabels: true,
155
+ },
156
+ },
157
+ },
158
+ {
159
+ type: 'table',
160
+ summary: 'A styled table with header row, alternating rows, and per-cell colspan / alignment.',
161
+ whenToUse: 'Use for structured comparisons (e.g. "deliverable | what it gives you"), pricing breakdowns, scope summaries. For >6 rows, consider splitting into multiple shorter tables to keep the page scannable.',
162
+ fields: {
163
+ id: 'string. Required.',
164
+ type: 'literal "table". Required.',
165
+ title: 'string. Optional.',
166
+ rows: 'array of { id, isHeader?, cells: [{ id, content, colSpan?, rowSpan?, align? }] }. Required.',
167
+ displayOptions: 'optional { headerBackground?, headerTextColor?, alternatingRows?, borderStyle, textSize, cellPadding }.',
168
+ },
169
+ minimalExample: {
170
+ id: 'b-table',
171
+ type: 'table',
172
+ title: 'Comparison',
173
+ rows: [
174
+ {
175
+ id: 'r0',
176
+ isHeader: true,
177
+ cells: [
178
+ { id: 'r0c0', content: 'Deliverable' },
179
+ { id: 'r0c1', content: 'What it gives you' },
180
+ ],
181
+ },
182
+ {
183
+ id: 'r1',
184
+ cells: [
185
+ { id: 'r1c0', content: 'Custom fields rollout' },
186
+ { id: 'r1c1', content: 'Admin control over which fields appear at each stage.' },
187
+ ],
188
+ },
189
+ ],
190
+ },
191
+ },
192
+ {
193
+ type: 'image',
194
+ summary: 'A responsive image with optional caption and credit.',
195
+ whenToUse: 'For visual context: screenshots, photographs of installations, diagrams you cannot reproduce as a diagram block. Prefer the diagram and chart blocks for anything synthesisable.',
196
+ fields: {
197
+ id: 'string. Required.',
198
+ type: 'literal "image". Required.',
199
+ url: 'string. The image URL.',
200
+ thumbnailUrl: 'string. Optional.',
201
+ alt: 'string. Optional but strongly recommended for accessibility.',
202
+ caption: 'string. Optional.',
203
+ credit: 'string. Optional.',
204
+ searchQuery: 'string. Optional. The original search query used to discover this image (for re-running with a different result later).',
205
+ size: '"small" | "medium" | "large" | "full". Optional, defaults to "medium".',
206
+ status: 'pending|generating|complete|error. Optional, defaults to "complete".',
207
+ },
208
+ minimalExample: {
209
+ id: 'b-image',
210
+ type: 'image',
211
+ url: 'https://cdn.example.com/photo.jpg',
212
+ alt: 'Description of the image.',
213
+ },
214
+ },
215
+ {
216
+ type: 'gantt',
217
+ summary: 'A timeline of named features grouped into swim lanes.',
218
+ whenToUse: 'Use to communicate a project plan with phases, milestones, and rough durations. Don\'t use to communicate fine-grained tasks -- the gantt block is a single-page overview, not a project plan.',
219
+ fields: {
220
+ id: 'string. Required.',
221
+ type: 'literal "gantt". Required.',
222
+ title: 'string. Optional.',
223
+ 'data.range': '"daily" | "weekly" | "monthly" | "quarterly". Optional.',
224
+ 'data.zoom': 'number. Optional pixel scale.',
225
+ 'data.features': 'array of { id, name, startAt (ISO date), endAt (ISO date), group, color? }. Required.',
226
+ status: 'pending|generating|complete|error. Optional, defaults to "complete".',
227
+ },
228
+ minimalExample: {
229
+ id: 'b-gantt',
230
+ type: 'gantt',
231
+ title: 'Build plan',
232
+ data: {
233
+ range: 'monthly',
234
+ features: [
235
+ {
236
+ id: 'g1',
237
+ name: 'Discovery',
238
+ startAt: '2026-06-01',
239
+ endAt: '2026-06-14',
240
+ group: 'Phase 1',
241
+ },
242
+ {
243
+ id: 'g2',
244
+ name: 'Build',
245
+ startAt: '2026-06-15',
246
+ endAt: '2026-09-15',
247
+ group: 'Phase 2',
248
+ },
249
+ ],
250
+ },
251
+ },
252
+ },
253
+ {
254
+ type: 'iframe',
255
+ summary: 'Embed a live interactive page from an allowlisted DAIN origin.',
256
+ whenToUse: 'For embedding live wireframe previews, dashboard demos, or any interactive reference that lives on a DAIN-controlled host. The viewer can interact with the embedded page inside the proposal.',
257
+ fields: {
258
+ id: 'string. Required.',
259
+ type: 'literal "iframe". Required.',
260
+ url: 'string. HTTPS only. Must be on dainos.app or dain.agency (or a subdomain thereof).',
261
+ title: 'string. Optional.',
262
+ aspectRatio: '"16/9" | "4/3" | "1/1" | "3/4" | "9/16". Optional, defaults to "16/9".',
263
+ caption: 'string. Optional.',
264
+ status: 'pending|generating|complete|error. Optional, defaults to "complete".',
265
+ },
266
+ minimalExample: {
267
+ id: 'b-iframe',
268
+ type: 'iframe',
269
+ url: 'https://crm-demo.dain.agency/proposal-preview/voids',
270
+ title: 'Voids dashboard wireframe',
271
+ aspectRatio: '16/9',
272
+ },
273
+ notes: [
274
+ 'URLs that are not on dainos.app or dain.agency (or their subdomains) are rejected by the API with INVALID_FINAL_STATE.',
275
+ 'HTTP URLs are rejected; HTTPS only.',
276
+ ],
277
+ },
278
+ ];
279
+ export const DEFAULT_SECTION_KEYS = [
280
+ { key: 'executive_summary', title: 'Executive Summary' },
281
+ { key: 'about_dain', title: 'About DAIN' },
282
+ { key: 'understanding_challenge', title: 'Understanding Your Challenge' },
283
+ { key: 'proposed_approach', title: 'Proposed Approach' },
284
+ { key: 'next_steps', title: 'Next Steps' },
285
+ ];
286
+ export function buildBlockCatalogue() {
287
+ return {
288
+ version: 'v2',
289
+ contentShape: {
290
+ description: 'Proposal content (content_json) is `{ version: 2, sections: [...] }`. Each section is `{ id, key, title, visible?, blocks: ContentBlock[] }`. Sections are addressed by `key` (stable string slug) in the content ops; blocks are addressed by `id` within their section.',
291
+ example: {
292
+ version: 2,
293
+ sections: [
294
+ {
295
+ id: 'section-exec',
296
+ key: 'executive_summary',
297
+ title: 'Executive Summary',
298
+ visible: true,
299
+ blocks: [
300
+ {
301
+ id: 'b-intro',
302
+ type: 'text',
303
+ contentFormat: 'html',
304
+ content: '<p>Short overview of the engagement.</p>',
305
+ },
306
+ ],
307
+ },
308
+ ],
309
+ },
310
+ },
311
+ blockTypes: BLOCK_TYPES,
312
+ defaultSections: DEFAULT_SECTION_KEYS,
313
+ notes: [
314
+ 'Ids should be stable across edits -- they are how granular ops (upsert_proposal_block, delete_proposal_block, reorder_proposal_blocks) target a block.',
315
+ 'When in doubt, start with a `text` block; you can swap it for a richer block later by calling upsert_proposal_block with the same id.',
316
+ 'Section keys are slugs (lowercase, hyphens or underscores). Default sections are listed under `defaultSections`.',
317
+ ],
318
+ };
319
+ }
320
+ //# sourceMappingURL=proposal-content-catalogue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal-content-catalogue.js","sourceRoot":"","sources":["../../src/tools/proposal-content-catalogue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAmBH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,+CAA+C;QACxD,SAAS,EACP,0OAA0O;QAC5O,MAAM,EAAE;YACN,EAAE,EAAE,qFAAqF;YACzF,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,8BAA8B;YACvC,aAAa,EAAE,kDAAkD;SAClE;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,kCAAkC;SAC5C;QACD,WAAW,EAAE;YACX,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,MAAM;YACrB,OAAO,EACL,6KAA6K;SAChL;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,sDAAsD;QAC/D,SAAS,EACP,iLAAiL;QACnL,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,6CAA6C;YACtD,YAAY,EAAE,sEAAsE;YACpF,KAAK,EAAE,qPAAqP;YAC5P,MAAM,EAAE,oFAAoF;SAC7F;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE;gBAC/D,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;aACjE;SACF;QACD,WAAW,EAAE;YACX,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,GAAG;YACZ,YAAY,EAAE,OAAO;YACrB,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,mBAAmB;oBACzB,KAAK,EAAE,mBAAmB;oBAC1B,WAAW,EACT,kKAAkK;iBACrK;gBACD;oBACE,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,sBAAsB;oBAC7B,WAAW,EACT,2IAA2I;iBAC9I;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,mDAAmD;QAC5D,SAAS,EACP,sPAAsP;QACxP,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,+CAA+C;YAC5D,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,+GAA+G;YACvH,mBAAmB,EAAE,qEAAqE;YAC1F,0BAA0B,EAAE,kDAAkD;YAC9E,cAAc,EAAE,wDAAwD;YACxE,gBAAgB,EAAE,4CAA4C;YAC9D,MAAM,EAAE,sEAAsE;SAC/E;QACD,cAAc,EAAE;YACd,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE;gBACJ,YAAY,EAAE;oBACZ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBACnE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE;iBACnE;aACF;SACF;QACD,KAAK,EAAE;YACL,yEAAyE;YACzE,iEAAiE;SAClE;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,iDAAiD;QAC1D,SAAS,EACP,sQAAsQ;QACxQ,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,4BAA4B;YAClC,SAAS,EAAE,mCAAmC;YAC9C,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,oFAAoF;YAC5F,IAAI,EAAE,2FAA2F;YACjG,MAAM,EAAE,oEAAoE;YAC5E,cAAc,EAAE,uJAAuJ;YACvK,WAAW,EAAE,mDAAmD;YAChE,MAAM,EAAE,sEAAsE;SAC/E;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE;aACpC;SACF;QACD,WAAW,EAAE;YACX,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,+CAA+C;YACtD,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC9D,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;aAC3D;YACD,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,cAAc,EAAE;gBACd,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,GAAG;gBACnB,cAAc,EAAE,IAAI;aACrB;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,qFAAqF;QAC9F,SAAS,EACP,wMAAwM;QAC1M,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,6FAA6F;YACnG,cAAc,EAAE,yGAAyG;SAC1H;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ;oBACE,EAAE,EAAE,IAAI;oBACR,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE;wBACL,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;wBACtC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;qBAC7C;iBACF;gBACD;oBACE,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE;wBACL,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE;wBAChD,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,uDAAuD,EAAE;qBACjF;iBACF;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,sDAAsD;QAC/D,SAAS,EACP,kLAAkL;QACpL,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,4BAA4B;YAClC,GAAG,EAAE,wBAAwB;YAC7B,YAAY,EAAE,mBAAmB;YACjC,GAAG,EAAE,8DAA8D;YACnE,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,mBAAmB;YAC3B,WAAW,EAAE,yHAAyH;YACtI,IAAI,EAAE,wEAAwE;YAC9E,MAAM,EAAE,sEAAsE;SAC/E;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,mCAAmC;YACxC,GAAG,EAAE,2BAA2B;SACjC;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,uDAAuD;QAChE,SAAS,EACP,gMAAgM;QAClM,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,4BAA4B;YAClC,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,yDAAyD;YACvE,WAAW,EAAE,+BAA+B;YAC5C,eAAe,EAAE,uFAAuF;YACxG,MAAM,EAAE,sEAAsE;SAC/E;QACD,cAAc,EAAE;YACd,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE;gBACJ,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE;oBACR;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,gEAAgE;QACzE,SAAS,EACP,gMAAgM;QAClM,MAAM,EAAE;YACN,EAAE,EAAE,mBAAmB;YACvB,IAAI,EAAE,6BAA6B;YACnC,GAAG,EAAE,oFAAoF;YACzF,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,wEAAwE;YACrF,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,sEAAsE;SAC/E;QACD,cAAc,EAAE;YACd,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,qDAAqD;YAC1D,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAE,MAAM;SACpB;QACD,KAAK,EAAE;YACL,wHAAwH;YACxH,qCAAqC;SACtC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA0C;IACzE,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACxD,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;IAC1C,EAAE,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,8BAA8B,EAAE;IACzE,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;IACxD,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;CAC3C,CAAC;AAaF,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,YAAY,EAAE;YACZ,WAAW,EACT,2QAA2Q;YAC7Q,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE;oBACR;wBACE,EAAE,EAAE,cAAc;wBAClB,GAAG,EAAE,mBAAmB;wBACxB,KAAK,EAAE,mBAAmB;wBAC1B,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE;4BACN;gCACE,EAAE,EAAE,SAAS;gCACb,IAAI,EAAE,MAAM;gCACZ,aAAa,EAAE,MAAM;gCACrB,OAAO,EAAE,0CAA0C;6BACpD;yBACF;qBACF;iBACF;aACF;SACF;QACD,UAAU,EAAE,WAAW;QACvB,eAAe,EAAE,oBAAoB;QACrC,KAAK,EAAE;YACL,wJAAwJ;YACxJ,uIAAuI;YACvI,kHAAkH;SACnH;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from './types.js';
2
+ export declare const proposalContentTools: ToolDefinition[];
3
+ //# sourceMappingURL=proposal-content.d.ts.map