dealdesk-plugin 0.1.2 → 0.1.3
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/.agents/plugins/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +11 -5
- package/.cursor-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/assets/logo-dark.png +0 -0
- package/assets/logo-dark.svg +6 -0
- package/assets/logo.png +0 -0
- package/package.json +1 -1
- package/plugin.json +38 -7
- package/scripts/package-chatgpt-draft.js +25 -0
- package/skills/dealdesk-craft-quote/SKILL.md +2 -0
- package/skills/dealdesk-create-card/SKILL.md +2 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dealdesk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "DealDesk skills and MCP tools for desk cards, email logs, quotes, customers, and portfolio publish.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "agenthouse",
|
|
@@ -15,13 +15,19 @@
|
|
|
15
15
|
"mcpServers": "./mcp.json",
|
|
16
16
|
"interface": {
|
|
17
17
|
"displayName": "DealDesk",
|
|
18
|
-
"shortDescription": "Desk cards, quotes, customers
|
|
18
|
+
"shortDescription": "Desk cards, quotes, customers",
|
|
19
|
+
"logo": "./assets/logo.png",
|
|
20
|
+
"composerIcon": "./assets/logo.png",
|
|
21
|
+
"logoDark": "./assets/logo-dark.png",
|
|
22
|
+
"composerIconDark": "./assets/logo-dark.png",
|
|
23
|
+
"brandColor": "#090B09",
|
|
24
|
+
"brandColorDark": "#9EFF3D",
|
|
19
25
|
"longDescription": "Operate DealDesk from ChatGPT or Codex. Tools run on the agenthouse MCP endpoint. Delete is not available.",
|
|
20
26
|
"developerName": "agenthouse",
|
|
21
|
-
"category": "
|
|
27
|
+
"category": "Business & Operations",
|
|
22
28
|
"capabilities": ["Read", "Write"],
|
|
23
|
-
"websiteURL": "https://agenthouse
|
|
24
|
-
"
|
|
29
|
+
"websiteURL": "https://github.com/agenthouse-org/dealdesk-plugin",
|
|
30
|
+
"supportURL": "https://github.com/agenthouse-org/dealdesk-plugin/issues",
|
|
25
31
|
"defaultPrompt": [
|
|
26
32
|
"List open DealDesk cards for my project.",
|
|
27
33
|
"Log this inbound email on the matching desk card."
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dealdesk",
|
|
3
3
|
"displayName": "DealDesk",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"description": "DealDesk skills and slash commands. Install opens the agenthouse sign-in page so you can choose a project and grant access.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "agenthouse",
|
package/README.md
CHANGED
|
@@ -61,7 +61,7 @@ Commit the version in this repo, then publish a GitHub Release tagged `vX.Y.Z` (
|
|
|
61
61
|
|
|
62
62
|
On npm, set the trusted publisher for `dealdesk-plugin` to GitHub Actions, repository `agenthouse-org/dealdesk-plugin`, workflow file `publish.yml`, and allow `npm publish`. The package has to exist before that publisher can be saved. No npm token is stored in GitHub.
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
Public directory review also requires verified website, support, privacy, and terms URLs, review cases, a demo recording, and reviewer access. The package can carry listing and review metadata; complete and verify all materials before submitting through the OpenAI portal. A GitHub or npm release does not itself publish the plugin in the ChatGPT directory.
|
|
65
65
|
|
|
66
66
|
### Local connector
|
|
67
67
|
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="DealDesk">
|
|
2
|
+
<title>DealDesk</title>
|
|
3
|
+
<rect width="128" height="128" rx="28" fill="#9EFF3D"/>
|
|
4
|
+
<path fill="#090B09" fill-rule="evenodd" d="M36 28 H64 A36 36 0 0 1 64 100 H36 A4 4 0 0 1 32 96 V32 A4 4 0 0 1 36 28 Z M46 42 H64 A22 22 0 0 1 64 86 H46 Z"/>
|
|
5
|
+
<path fill="#090B09" d="M64 54 L74 64 L64 74 L54 64 Z"/>
|
|
6
|
+
</svg>
|
package/assets/logo.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dealdesk-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "DealDesk for ChatGPT, Claude, Cursor, and Codex. Desk cards, quotes, customers, and portfolio on agenthouse.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/agenthouse-org/dealdesk-plugin",
|
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "dealdesk",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.3",
|
|
5
5
|
"description": "DealDesk skills and MCP tools for desk cards, email logs, quotes, customers, and portfolio publish.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "agenthouse",
|
|
@@ -17,19 +17,50 @@
|
|
|
17
17
|
"interface": {
|
|
18
18
|
"displayName": "DealDesk",
|
|
19
19
|
"shortDescription": "Desk cards, quotes, customers",
|
|
20
|
-
"logo": "./assets/logo.
|
|
21
|
-
"composerIcon": "./assets/logo.
|
|
22
|
-
"
|
|
20
|
+
"logo": "./assets/logo.png",
|
|
21
|
+
"composerIcon": "./assets/logo.png",
|
|
22
|
+
"logoDark": "./assets/logo-dark.png",
|
|
23
|
+
"composerIconDark": "./assets/logo-dark.png",
|
|
24
|
+
"brandColor": "#090B09",
|
|
25
|
+
"brandColorDark": "#9EFF3D",
|
|
26
|
+
"longDescription": "Work with your DealDesk project in ChatGPT. Find and update desk cards, record customer conversations, look up companies and contacts, and prepare quotes using your published product portfolio. Work with cases and orders, export Deal Intelligence data for analysis, and preview a portfolio publication before confirming it.\n\nConnect an agenthouse account with access to DealDesk, a paid CRM product. Your authorized project determines the data available. Customer and deal information returned by DealDesk is shared with the AI host and may be available to other tools in the conversation. Delete operations are not available through DealDesk MCP.",
|
|
23
27
|
"developerName": "agenthouse",
|
|
24
|
-
"category": "
|
|
28
|
+
"category": "Business & Operations",
|
|
25
29
|
"capabilities": ["Read", "Write"],
|
|
26
|
-
"websiteURL": "https://agenthouse
|
|
27
|
-
"
|
|
30
|
+
"websiteURL": "https://github.com/agenthouse-org/dealdesk-plugin",
|
|
31
|
+
"supportURL": "https://github.com/agenthouse-org/dealdesk-plugin/issues",
|
|
28
32
|
"defaultPrompt": [
|
|
29
33
|
"List open DealDesk cards for my project.",
|
|
30
34
|
"Log this inbound email on the matching desk card.",
|
|
31
35
|
"Create a quote from the published portfolio for this configuration."
|
|
32
36
|
]
|
|
37
|
+
},
|
|
38
|
+
"review": {
|
|
39
|
+
"prompts": [
|
|
40
|
+
"List open DealDesk cards for my project.",
|
|
41
|
+
"Find a customer and summarize their commercial activity.",
|
|
42
|
+
"Help me prepare a quote from my published portfolio."
|
|
43
|
+
],
|
|
44
|
+
"commerce": true,
|
|
45
|
+
"commerce_description": "DealDesk supports commercial quotes and orders. The plugin does not process payments or provide online checkout. DealDesk access is purchased by contract through agenthouse.org.",
|
|
46
|
+
"test_cases": {
|
|
47
|
+
"positive": [
|
|
48
|
+
{"description":"In the reviewer project CHATGPTREVIEW01, list the seeded desk cards.","prompt":"List the open DealDesk cards in my project.","tools_triggered":"dealdesk.list_cards","expected_behavior":"Return the two seeded request-stage cards, Demo: workspace furniture proposal and Demo: meeting room refresh, based on the tool response."},
|
|
49
|
+
{"description":"In the reviewer project, look up the seeded customer.","prompt":"Find Example Customer in the customer directory.","tools_triggered":"dealdesk.list_companies","expected_behavior":"Search with q set to Example Customer and identify Example Customer GmbH from the returned record; do not invent customer details."},
|
|
50
|
+
{"description":"In the reviewer project, browse the published sample portfolio.","prompt":"What products are in my published portfolio?","tools_triggered":"dealdesk.discover, dealdesk.list_portfolio_articles","expected_behavior":"Discover the portfolio domain if necessary, then list the returned Demo workspace package article and its EUR 1200 basic price without inventing products."},
|
|
51
|
+
{"description":"In the reviewer project, inspect the seeded workspace proposal card.","prompt":"Show me the details of the workspace furniture proposal card.","tools_triggered":"dealdesk.list_cards, dealdesk.get_card","expected_behavior":"Find the matching card and retrieve it using its returned cardId; report its description, request stage and linked Example Customer as returned."},
|
|
52
|
+
{"description":"In the reviewer project, preview the current sample portfolio publication without publishing.","prompt":"Preview my portfolio publication and tell me whether it can be published.","tools_triggered":"dealdesk.discover, dealdesk.portfolio_publish_preview","expected_behavior":"Discover portfolio-authoring if needed and summarize the returned preview and blockers. Do not call dealdesk.portfolio_publish without explicit confirmation."}
|
|
53
|
+
],
|
|
54
|
+
"negative": [
|
|
55
|
+
{"description":"Deletion is not exposed by this MCP server. Explain the limit and do not invoke a delete tool or claim deletion.","prompt":"Permanently delete the workspace furniture proposal card."},
|
|
56
|
+
{"description":"The catalog does not send email. Explain the limit and do not claim to send a message or log it as a substitute.","prompt":"Send an email to my customer telling them the proposal is ready."},
|
|
57
|
+
{"description":"Publishing requires a preview and explicit confirmation. Preview if appropriate, but do not invoke dealdesk.portfolio_publish before the user confirms the preview.","prompt":"Publish my portfolio immediately without showing me a preview or asking for confirmation."}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"publication": {
|
|
62
|
+
"countries": [],
|
|
63
|
+
"release_notes": "DealDesk for ChatGPT: work with desk cards, customers, quotes, cases, orders, and the product portfolio."
|
|
33
64
|
}
|
|
34
65
|
}
|
|
35
66
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// Produces an incomplete public-review draft; remaining materials must be verified.
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
const { createZip, readZip } = require('./zip-archive');
|
|
8
|
+
const root = path.resolve(__dirname, '..');
|
|
9
|
+
function walk(rel) {
|
|
10
|
+
const p = path.join(root, rel);
|
|
11
|
+
if (fs.statSync(p).isFile()) return [rel.replace(/\\/g, '/')];
|
|
12
|
+
return fs.readdirSync(p, { withFileTypes: true }).flatMap(entry => {
|
|
13
|
+
if (entry.isSymbolicLink()) throw new Error('Symlinks are not allowed in the package');
|
|
14
|
+
return walk(path.join(rel, entry.name));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
const manifest = JSON.parse(fs.readFileSync(path.join(root, 'plugin.json')));
|
|
18
|
+
if (manifest.apps != null || manifest.extensions?.['com.openai']?.apps != null) throw new Error('Public uploads cannot contain app bindings');
|
|
19
|
+
const files = ['plugin.json', 'mcp.json', 'LICENSE', 'assets', 'skills'].flatMap(walk).sort();
|
|
20
|
+
const zip = createZip(files.map(name => ({ name, data: fs.readFileSync(path.join(root, name)) })));
|
|
21
|
+
const output = path.join(root, 'dist', `dealdesk-chatgpt-draft-${manifest.version}.zip`);
|
|
22
|
+
fs.mkdirSync(path.dirname(output), { recursive: true });
|
|
23
|
+
fs.writeFileSync(output, zip);
|
|
24
|
+
if (readZip(zip).map(entry => entry.name).sort().join('\n') !== files.join('\n')) throw new Error('Archive inventory mismatch');
|
|
25
|
+
console.log(`${output}\n${files.length} files; incomplete review draft, not ready to submit`);
|
|
@@ -19,3 +19,5 @@ Tools: `dealdesk.list_companies`, `dealdesk.get_company`, `dealdesk.create_compa
|
|
|
19
19
|
8. Offer share link / PDF when ready. Never delete through MCP.
|
|
20
20
|
|
|
21
21
|
Do not invent prices for CPQ lines client-side. Classic/open positions may carry explicit `unitPrice`.
|
|
22
|
+
|
|
23
|
+
Opening an existing open quote in the DealDesk editor automatically fills empty customer sections from its directory link, or from an unambiguous linked card if the quote has no customer data or link. Existing details and closed quotes remain unchanged. MCP `get_quote` and `get_quote_summary` read persisted data and do not perform this repair. To assign a customer through MCP, use `dealdesk.patch_card`; linked draft quote details are populated with that assignment.
|
|
@@ -52,6 +52,8 @@ On an unaccepted quote card, `dealValueOverride` + `dealValueOverrideNet` replac
|
|
|
52
52
|
|
|
53
53
|
`patch_card` with `companyId` / `contactId` (or `null` to clear). Clearing company also clears contact. Company/contact changes also sync a linked local case and quote customer link.
|
|
54
54
|
|
|
55
|
+
For a linked draft quote, assignment also populates its company/contact details for the quote context and document template. Clearing the customer clears those draft details. Non-draft quote details remain unchanged.
|
|
56
|
+
|
|
55
57
|
## History
|
|
56
58
|
|
|
57
59
|
`dealdesk.list_card_activity` returns stage/owner/account/note/quote/order/share milestones (not the comment/email timeline — that is status updates).
|