@rubytech/create-sitedesk-code 0.1.530 → 0.1.532
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/package.json +1 -1
- package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/graph-write/dist/index.js +4 -0
- package/payload/platform/lib/graph-write/dist/index.js.map +1 -1
- package/payload/platform/lib/graph-write/src/index.ts +4 -0
- package/payload/platform/lib/learning-constants/dist/index.d.ts +35 -0
- package/payload/platform/lib/learning-constants/dist/index.d.ts.map +1 -0
- package/payload/platform/lib/learning-constants/dist/index.js +50 -0
- package/payload/platform/lib/learning-constants/dist/index.js.map +1 -0
- package/payload/platform/lib/learning-constants/package.json +7 -0
- package/payload/platform/lib/learning-constants/src/index.test.ts +47 -0
- package/payload/platform/lib/learning-constants/src/index.ts +57 -0
- package/payload/platform/lib/learning-constants/tsconfig.json +9 -0
- package/payload/platform/neo4j/schema.cypher +24 -0
- package/payload/platform/package.json +1 -1
- package/payload/platform/plugins/admin/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +1 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/skills/insight/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +58 -10
- package/payload/platform/plugins/admin/skills/whats-new/SKILL.md +12 -0
- package/payload/platform/plugins/docs/references/linkedin-extension.md +18 -9
- package/payload/platform/plugins/docs/references/session-retrospective.md +39 -0
- package/payload/platform/plugins/linkedin-extension/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/linkedin-extension/PLUGIN.md +7 -10
- package/payload/platform/plugins/linkedin-extension/extension/README.md +20 -17
- package/payload/platform/plugins/linkedin-extension/extension/background/sw.js +96 -13
- package/payload/platform/plugins/linkedin-extension/extension/manifest.json +3 -18
- package/payload/platform/plugins/linkedin-extension/extension/options/options.html +2 -2
- package/payload/platform/plugins/linkedin-extension/extension/options/options.js +1 -1
- package/payload/platform/plugins/memory/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +15 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +169 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js +95 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/session-jsonl.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts +60 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js +153 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/session-jsonl.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js +6 -4
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/cross-account.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js +160 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-derive.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js +64 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-recall.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js +78 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/learnings-scan.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts +41 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js +225 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-derive.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts +31 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js +67 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-recall.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts +40 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js +55 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/learnings-scan.js.map +1 -0
- package/payload/platform/plugins/memory/references/schema-base.md +3 -0
- package/payload/platform/plugins/memory/skills/learnings-recall/SKILL.md +27 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
- package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +5 -5
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +6 -6
- package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +6 -2
- package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +6 -2
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +3 -0
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts +28 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.js +70 -0
- package/payload/platform/services/claude-session-manager/dist/learning-index.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +18 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +17 -0
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/templates/specialists/agents/librarian.md +1 -1
- package/payload/server/{chunk-2YMGNYA3.js → chunk-UH6GCQO4.js} +78 -38
- package/payload/server/{manager-XPRN5UF5.js → manager-H34562SN.js} +5 -1
- package/payload/server/server.js +121 -38
- package/payload/platform/plugins/linkedin-extension/extension/assets/pill.css +0 -52
- package/payload/platform/plugins/linkedin-extension/extension/content/profile.js +0 -100
- package/payload/platform/plugins/linkedin-extension/extension/content/thread.js +0 -102
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// Profile content script. Runs on linkedin.com/in/*.
|
|
2
|
-
// Manifest concatenates extractors.js + this file, so MaxyLinkedinExtractors
|
|
3
|
-
// is in scope. One click → scrape → post to the service worker → pill state.
|
|
4
|
-
|
|
5
|
-
;(function () {
|
|
6
|
-
const TAG_MOUNT = '[linkedin-ext-mount]'
|
|
7
|
-
const TAG_SCRAPE = '[linkedin-ext-scrape]'
|
|
8
|
-
const TAG_ERROR = '[linkedin-ext-error]'
|
|
9
|
-
const PILL_ID = 'maxy-linkedin-pill'
|
|
10
|
-
|
|
11
|
-
function setState(pill, state, label) {
|
|
12
|
-
pill.dataset.state = state
|
|
13
|
-
if (label) pill.textContent = label
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
async function onClick(pill) {
|
|
17
|
-
const dispatchId = crypto.randomUUID()
|
|
18
|
-
setState(pill, 'busy', 'Capturing…')
|
|
19
|
-
|
|
20
|
-
const result = globalThis.MaxyLinkedinExtractors.extractProfile(document)
|
|
21
|
-
if (!result.ok) {
|
|
22
|
-
console.error(TAG_SCRAPE + ' page=profile ok=false missing=' + result.missing.join(','))
|
|
23
|
-
setState(pill, 'error', 'Missing: ' + result.missing.join(', '))
|
|
24
|
-
return
|
|
25
|
-
}
|
|
26
|
-
console.log(TAG_SCRAPE + ' page=profile ok=true fields=' + Object.keys(result.payload).join(','))
|
|
27
|
-
|
|
28
|
-
const envelope = {
|
|
29
|
-
source: 'linkedin',
|
|
30
|
-
kind: 'profile',
|
|
31
|
-
capturedAt: new Date().toISOString(),
|
|
32
|
-
pageUrl: location.href.split('?')[0].split('#')[0],
|
|
33
|
-
dispatchId: dispatchId,
|
|
34
|
-
profile: result.payload,
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
let reply
|
|
38
|
-
try {
|
|
39
|
-
reply = await chrome.runtime.sendMessage({ type: 'linkedin-ingest', envelope: envelope })
|
|
40
|
-
} catch (err) {
|
|
41
|
-
console.error(TAG_ERROR + ' reason=worker-unreachable detail=' + (err && err.message ? err.message : String(err)))
|
|
42
|
-
setState(pill, 'error', 'Capture failed')
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (!reply || !reply.ok) {
|
|
47
|
-
// `worker-unreachable` is the extension's OWN service worker failing to
|
|
48
|
-
// answer. It is not `unreachable`, which means the admin host did not
|
|
49
|
-
// answer — blaming SiteDesk here sends the operator to check a tunnel that
|
|
50
|
-
// was never involved.
|
|
51
|
-
const reason = (reply && reply.reason) || 'worker-unreachable'
|
|
52
|
-
const detail = (reply && reply.detail) || ''
|
|
53
|
-
console.error(TAG_ERROR + ' reason=' + reason + ' detail=' + detail)
|
|
54
|
-
// Task 2208 — the ingest token is missing or was refused. There is no
|
|
55
|
-
// sign-in to perform: the operator asks the SiteDesk agent for the token and
|
|
56
|
-
// pastes it on the options page.
|
|
57
|
-
if (reason === 'auth') {
|
|
58
|
-
setState(pill, 'auth', 'Paste SiteDesk token')
|
|
59
|
-
pill.onclick = function () { chrome.runtime.openOptionsPage() }
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
// Task 2185 — the admin host was never granted, so the POST never left
|
|
63
|
-
// the browser. Sending the operator to the options page is the fix.
|
|
64
|
-
if (reason === 'permission') {
|
|
65
|
-
setState(pill, 'auth', 'Grant access')
|
|
66
|
-
pill.onclick = function () { chrome.runtime.openOptionsPage() }
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
if (reason === 'unreachable') {
|
|
70
|
-
setState(pill, 'error', 'SiteDesk unreachable')
|
|
71
|
-
return
|
|
72
|
-
}
|
|
73
|
-
setState(pill, 'error', 'Capture failed')
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
setState(pill, 'ok', 'Captured ✓')
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function mount() {
|
|
81
|
-
if (document.getElementById(PILL_ID)) return
|
|
82
|
-
const anchor = document.querySelector('section.top-card-layout, main') || document.body
|
|
83
|
-
if (!anchor) return
|
|
84
|
-
const pill = document.createElement('button')
|
|
85
|
-
pill.id = PILL_ID
|
|
86
|
-
pill.className = 'maxy-pill'
|
|
87
|
-
pill.type = 'button'
|
|
88
|
-
pill.textContent = 'Add to SiteDesk'
|
|
89
|
-
pill.dataset.state = 'idle'
|
|
90
|
-
pill.addEventListener('click', function () { onClick(pill) })
|
|
91
|
-
anchor.prepend(pill)
|
|
92
|
-
console.log(TAG_MOUNT + ' page=profile url=' + location.href)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (document.readyState === 'loading') {
|
|
96
|
-
document.addEventListener('DOMContentLoaded', mount, { once: true })
|
|
97
|
-
} else {
|
|
98
|
-
mount()
|
|
99
|
-
}
|
|
100
|
-
})()
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
// Thread content script. Runs on linkedin.com/messaging/thread/*.
|
|
2
|
-
// Manifest concatenates extractors.js + this file.
|
|
3
|
-
|
|
4
|
-
;(function () {
|
|
5
|
-
const TAG_MOUNT = '[linkedin-ext-mount]'
|
|
6
|
-
const TAG_SCRAPE = '[linkedin-ext-scrape]'
|
|
7
|
-
const TAG_ERROR = '[linkedin-ext-error]'
|
|
8
|
-
const PILL_ID = 'maxy-linkedin-pill'
|
|
9
|
-
|
|
10
|
-
function setState(pill, state, label) {
|
|
11
|
-
pill.dataset.state = state
|
|
12
|
-
if (label) pill.textContent = label
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async function onClick(pill) {
|
|
16
|
-
const dispatchId = crypto.randomUUID()
|
|
17
|
-
setState(pill, 'busy', 'Capturing…')
|
|
18
|
-
|
|
19
|
-
const result = globalThis.MaxyLinkedinExtractors.extractThread(document)
|
|
20
|
-
if (!result.ok) {
|
|
21
|
-
console.error(TAG_SCRAPE + ' page=thread ok=false missing=' + result.missing.join(','))
|
|
22
|
-
setState(pill, 'error', 'Missing: ' + result.missing.join(', '))
|
|
23
|
-
return
|
|
24
|
-
}
|
|
25
|
-
console.log(
|
|
26
|
-
TAG_SCRAPE + ' page=thread ok=true fields=participants,bodyText participantCount=' +
|
|
27
|
-
result.payload.participants.length,
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
const envelope = {
|
|
31
|
-
source: 'linkedin',
|
|
32
|
-
kind: 'thread',
|
|
33
|
-
capturedAt: new Date().toISOString(),
|
|
34
|
-
pageUrl: location.href.split('?')[0].split('#')[0],
|
|
35
|
-
dispatchId: dispatchId,
|
|
36
|
-
thread: result.payload,
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
let reply
|
|
40
|
-
try {
|
|
41
|
-
reply = await chrome.runtime.sendMessage({ type: 'linkedin-ingest', envelope: envelope })
|
|
42
|
-
} catch (err) {
|
|
43
|
-
console.error(TAG_ERROR + ' reason=worker-unreachable detail=' + (err && err.message ? err.message : String(err)))
|
|
44
|
-
setState(pill, 'error', 'Capture failed')
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (!reply || !reply.ok) {
|
|
49
|
-
// `worker-unreachable` is the extension's OWN service worker failing to
|
|
50
|
-
// answer. It is not `unreachable`, which means the admin host did not
|
|
51
|
-
// answer — blaming SiteDesk here sends the operator to check a tunnel that
|
|
52
|
-
// was never involved.
|
|
53
|
-
const reason = (reply && reply.reason) || 'worker-unreachable'
|
|
54
|
-
const detail = (reply && reply.detail) || ''
|
|
55
|
-
console.error(TAG_ERROR + ' reason=' + reason + ' detail=' + detail)
|
|
56
|
-
// Task 2208 — the ingest token is missing or was refused. There is no
|
|
57
|
-
// sign-in to perform: the operator asks the SiteDesk agent for the token and
|
|
58
|
-
// pastes it on the options page.
|
|
59
|
-
if (reason === 'auth') {
|
|
60
|
-
setState(pill, 'auth', 'Paste SiteDesk token')
|
|
61
|
-
pill.onclick = function () { chrome.runtime.openOptionsPage() }
|
|
62
|
-
return
|
|
63
|
-
}
|
|
64
|
-
// Task 2185 — the admin host was never granted, so the POST never left
|
|
65
|
-
// the browser. Sending the operator to the options page is the fix.
|
|
66
|
-
if (reason === 'permission') {
|
|
67
|
-
setState(pill, 'auth', 'Grant access')
|
|
68
|
-
pill.onclick = function () { chrome.runtime.openOptionsPage() }
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
|
-
if (reason === 'unreachable') {
|
|
72
|
-
setState(pill, 'error', 'SiteDesk unreachable')
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
setState(pill, 'error', 'Capture failed')
|
|
76
|
-
return
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
setState(pill, 'ok', 'Captured ✓')
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function mount() {
|
|
83
|
-
if (document.getElementById(PILL_ID)) return
|
|
84
|
-
const anchor = document.querySelector('.msg-thread, header.msg-overlay-bubble-header, main') || document.body
|
|
85
|
-
if (!anchor) return
|
|
86
|
-
const pill = document.createElement('button')
|
|
87
|
-
pill.id = PILL_ID
|
|
88
|
-
pill.className = 'maxy-pill'
|
|
89
|
-
pill.type = 'button'
|
|
90
|
-
pill.textContent = 'Add to SiteDesk'
|
|
91
|
-
pill.dataset.state = 'idle'
|
|
92
|
-
pill.addEventListener('click', function () { onClick(pill) })
|
|
93
|
-
anchor.prepend(pill)
|
|
94
|
-
console.log(TAG_MOUNT + ' page=thread url=' + location.href)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (document.readyState === 'loading') {
|
|
98
|
-
document.addEventListener('DOMContentLoaded', mount, { once: true })
|
|
99
|
-
} else {
|
|
100
|
-
mount()
|
|
101
|
-
}
|
|
102
|
-
})()
|