paput-mcp 3.3.3 → 4.0.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 +88 -67
- package/dist/cli/index.js +5 -29
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/login.js +1 -1
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/logout.js +3 -3
- package/dist/cli/logout.js.map +1 -1
- package/dist/cli/rules/paput-knowledge-capture.md +1 -1
- package/dist/cli/skills/paput-analyze-discard-policy/SKILL.md +3 -3
- package/dist/cli/skills/paput-capture/SKILL.md +1 -1
- package/dist/cli/skills/paput-init/SKILL.md +58 -9
- package/dist/handlers/add-knowledge-candidates/handler.js +49 -21
- package/dist/handlers/add-knowledge-candidates/handler.js.map +1 -1
- package/dist/handlers/add-knowledge-candidates/tool.js +1 -1
- package/dist/handlers/add-knowledge-candidates/tool.js.map +1 -1
- package/dist/handlers/discard-pending-candidate/handler.js +6 -21
- package/dist/handlers/discard-pending-candidate/handler.js.map +1 -1
- package/dist/handlers/get-capture-policy/handler.js +3 -3
- package/dist/handlers/get-capture-policy/handler.js.map +1 -1
- package/dist/handlers/get-capture-policy/tool.js +1 -1
- package/dist/handlers/get-capture-policy/tool.js.map +1 -1
- package/dist/handlers/get-discard-policy-context/handler.js +3 -11
- package/dist/handlers/get-discard-policy-context/handler.js.map +1 -1
- package/dist/handlers/get-discard-policy-context/tool.js +1 -1
- package/dist/handlers/get-discard-policy-context/tool.js.map +1 -1
- package/dist/handlers/get-project-context/handler.js +7 -9
- package/dist/handlers/get-project-context/handler.js.map +1 -1
- package/dist/handlers/get-project-context/tool.js +2 -2
- package/dist/handlers/get-project-context/tool.js.map +1 -1
- package/dist/handlers/index.js +4 -3
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/list-pending-candidates/handler.js +6 -9
- package/dist/handlers/list-pending-candidates/handler.js.map +1 -1
- package/dist/handlers/list-processed-sessions/handler.js +18 -0
- package/dist/handlers/list-processed-sessions/handler.js.map +1 -0
- package/dist/handlers/list-processed-sessions/index.js +3 -0
- package/dist/handlers/list-processed-sessions/index.js.map +1 -0
- package/dist/handlers/list-processed-sessions/tool.js +19 -0
- package/dist/handlers/list-processed-sessions/tool.js.map +1 -0
- package/dist/handlers/mark-processed-session/handler.js +37 -0
- package/dist/handlers/mark-processed-session/handler.js.map +1 -0
- package/dist/handlers/mark-processed-session/index.js +3 -0
- package/dist/handlers/mark-processed-session/index.js.map +1 -0
- package/dist/handlers/mark-processed-session/tool.js +28 -0
- package/dist/handlers/mark-processed-session/tool.js.map +1 -0
- package/dist/handlers/memo-projects.js +19 -5
- package/dist/handlers/memo-projects.js.map +1 -1
- package/dist/handlers/save-pending-candidate/handler.js +84 -31
- package/dist/handlers/save-pending-candidate/handler.js.map +1 -1
- package/dist/handlers/save-pending-candidate/tool.js +4 -0
- package/dist/handlers/save-pending-candidate/tool.js.map +1 -1
- package/dist/handlers/scan-sessions/handler.js +4 -2
- package/dist/handlers/scan-sessions/handler.js.map +1 -1
- package/dist/handlers/update-capture-policy/handler.js +3 -3
- package/dist/handlers/update-capture-policy/handler.js.map +1 -1
- package/dist/handlers/update-capture-policy/tool.js +2 -2
- package/dist/handlers/update-capture-policy/tool.js.map +1 -1
- package/dist/handlers/update-memo/handler.js +1 -1
- package/dist/handlers/update-memo/handler.js.map +1 -1
- package/dist/handlers/update-pending-candidate/handler.js +90 -0
- package/dist/handlers/update-pending-candidate/handler.js.map +1 -0
- package/dist/handlers/update-pending-candidate/index.js +3 -0
- package/dist/handlers/update-pending-candidate/index.js.map +1 -0
- package/dist/handlers/update-pending-candidate/tool.js +51 -0
- package/dist/handlers/update-pending-candidate/tool.js.map +1 -0
- package/dist/handlers/update-project-document/handler.js +61 -0
- package/dist/handlers/update-project-document/handler.js.map +1 -0
- package/dist/handlers/update-project-document/index.js +3 -0
- package/dist/handlers/update-project-document/index.js.map +1 -0
- package/dist/handlers/update-project-document/tool.js +31 -0
- package/dist/handlers/update-project-document/tool.js.map +1 -0
- package/dist/handlers/upsert-skill-sheet-project/handler.js +3 -0
- package/dist/handlers/upsert-skill-sheet-project/handler.js.map +1 -1
- package/dist/handlers/upsert-skill-sheet-project/tool.js +4 -0
- package/dist/handlers/upsert-skill-sheet-project/tool.js.map +1 -1
- package/dist/http.js +67 -21
- package/dist/http.js.map +1 -1
- package/dist/index.js +2 -9
- package/dist/index.js.map +1 -1
- package/dist/schemas/tool-input.js +65 -21
- package/dist/schemas/tool-input.js.map +1 -1
- package/dist/server.js +3 -17
- package/dist/server.js.map +1 -1
- package/dist/services/api/client.js +2 -3
- package/dist/services/api/client.js.map +1 -1
- package/dist/services/api/index.js +1 -0
- package/dist/services/api/index.js.map +1 -1
- package/dist/services/api/knowledge-candidate.js +44 -0
- package/dist/services/api/knowledge-candidate.js.map +1 -0
- package/dist/services/api/project-context.js +9 -1
- package/dist/services/api/project-context.js.map +1 -1
- package/dist/services/api/skill-sheet.js +5 -0
- package/dist/services/api/skill-sheet.js.map +1 -1
- package/dist/services/session/index.js +2 -3
- package/dist/services/session/index.js.map +1 -1
- package/dist/tool.js +37 -23
- package/dist/tool.js.map +1 -1
- package/docs/directory-submission.md +5 -5
- package/docs/privacy-policy.md +22 -12
- package/docs/reviewer-guide.md +13 -4
- package/docs/tools.md +61 -21
- package/docs/usage-examples.md +13 -12
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo-projects.js","sourceRoot":"","sources":["../../src/handlers/memo-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK1E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA6B,EAC7B,SAAoB,EACpB,OAAqB;IAErB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,IAAI,EAA4B,EAAE,CACjC,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,IAAI,IAAI,IAAI;YACZ,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"memo-projects.js","sourceRoot":"","sources":["../../src/handlers/memo-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAK1E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAA6B,EAC7B,SAAoB,EACpB,OAAqB;IAErB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,IAAI,EAA4B,EAAE,CACjC,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,KAAK,IAAI;YACb,IAAI,IAAI,IAAI;YACZ,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAC9B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,OAAO;YACL;gBACE,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,KAAK,EAAE,OAAO,CAAC,YAAY;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,QAAQ;iBACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,EAAE,GAAG,CAAC;iBACxD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CACb,oHAAoH,UAAU,EAAE,CACjI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,IAA6B,EAC7B,OAAqB;IAErB,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getRemoteKnowledgeCandidate, saveRemoteKnowledgeCandidate, } from '../../services/api/knowledge-candidate.js';
|
|
2
|
+
import { createMemo } from '../../services/api/memo.js';
|
|
3
3
|
export async function handleSavePendingCandidate(args, apiClient) {
|
|
4
4
|
if (!args || typeof args.candidate_id !== 'string') {
|
|
5
5
|
return {
|
|
@@ -7,11 +7,42 @@ export async function handleSavePendingCandidate(args, apiClient) {
|
|
|
7
7
|
isError: true,
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
return await saveRemoteCandidate(args, apiClient);
|
|
11
|
+
}
|
|
12
|
+
async function saveRemoteCandidate(args, apiClient) {
|
|
13
|
+
const candidate = await getRemoteKnowledgeCandidate(apiClient, args.candidate_id);
|
|
14
|
+
const suppliedMemoId = typeof args.saved_memo_id === 'number' ? args.saved_memo_id : undefined;
|
|
15
|
+
if (candidate.status !== 'pending') {
|
|
16
|
+
if (candidate.status === 'saved' &&
|
|
17
|
+
suppliedMemoId !== undefined &&
|
|
18
|
+
candidate.saved_memo_id === suppliedMemoId) {
|
|
19
|
+
const response = {
|
|
20
|
+
success: true,
|
|
21
|
+
action: 'saved',
|
|
22
|
+
candidate_id: candidate.id,
|
|
23
|
+
memo_id: suppliedMemoId,
|
|
24
|
+
title: candidate.title,
|
|
25
|
+
created_at: candidate.created_at,
|
|
26
|
+
created_at_source: 'saved_candidate',
|
|
27
|
+
used_existing_memo: true,
|
|
28
|
+
warnings: [],
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
structuredContent: response,
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: JSON.stringify(response, null, 2),
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
12
40
|
return {
|
|
13
41
|
content: [
|
|
14
|
-
{
|
|
42
|
+
{
|
|
43
|
+
type: 'text',
|
|
44
|
+
text: `Only pending candidates can be saved (current status: ${candidate.status})`,
|
|
45
|
+
},
|
|
15
46
|
],
|
|
16
47
|
isError: true,
|
|
17
48
|
};
|
|
@@ -51,40 +82,69 @@ export async function handleSavePendingCandidate(args, apiClient) {
|
|
|
51
82
|
memo_type_keys: memoTypeKeys,
|
|
52
83
|
projects,
|
|
53
84
|
};
|
|
54
|
-
|
|
55
|
-
if (
|
|
85
|
+
let memoId = suppliedMemoId;
|
|
86
|
+
if (memoId === undefined) {
|
|
87
|
+
const result = await createMemo(apiClient, params);
|
|
88
|
+
if (!result.success || result.id === undefined) {
|
|
89
|
+
return {
|
|
90
|
+
content: [
|
|
91
|
+
{
|
|
92
|
+
type: 'text',
|
|
93
|
+
text: `Failed to save knowledge candidate: ${result.error || 'Unknown error'}`,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
isError: true,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
memoId = result.id;
|
|
100
|
+
}
|
|
101
|
+
let updated;
|
|
102
|
+
try {
|
|
103
|
+
updated = await saveRemoteKnowledgeCandidate(apiClient, {
|
|
104
|
+
candidate_id: candidate.id,
|
|
105
|
+
title,
|
|
106
|
+
body,
|
|
107
|
+
categories,
|
|
108
|
+
memo_type_keys: memoTypeKeys,
|
|
109
|
+
projects,
|
|
110
|
+
is_public: params.is_public,
|
|
111
|
+
saved_memo_id: memoId,
|
|
112
|
+
created_at: createdAt,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
const response = {
|
|
117
|
+
success: false,
|
|
118
|
+
action: 'save_candidate_failed_after_memo_created',
|
|
119
|
+
candidate_id: candidate.id,
|
|
120
|
+
memo_id: memoId,
|
|
121
|
+
title,
|
|
122
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
123
|
+
retry_args: {
|
|
124
|
+
candidate_id: candidate.id,
|
|
125
|
+
saved_memo_id: memoId,
|
|
126
|
+
},
|
|
127
|
+
};
|
|
56
128
|
return {
|
|
129
|
+
structuredContent: response,
|
|
57
130
|
content: [
|
|
58
131
|
{
|
|
59
132
|
type: 'text',
|
|
60
|
-
text:
|
|
133
|
+
text: JSON.stringify(response, null, 2),
|
|
61
134
|
},
|
|
62
135
|
],
|
|
63
136
|
isError: true,
|
|
64
137
|
};
|
|
65
138
|
}
|
|
66
|
-
const savedMemo = await findSavedMemo(apiClient, title, body);
|
|
67
|
-
const updated = updatePendingCandidate(candidate.id, (item) => ({
|
|
68
|
-
...item,
|
|
69
|
-
title,
|
|
70
|
-
body,
|
|
71
|
-
categories,
|
|
72
|
-
memo_type_keys: memoTypeKeys,
|
|
73
|
-
projects,
|
|
74
|
-
is_public: params.is_public,
|
|
75
|
-
status: 'saved',
|
|
76
|
-
fingerprint: createFingerprint(title, body),
|
|
77
|
-
saved_memo_id: savedMemo?.id,
|
|
78
|
-
updated_at: new Date().toISOString(),
|
|
79
|
-
}));
|
|
80
139
|
const response = {
|
|
81
140
|
success: true,
|
|
82
141
|
action: 'saved',
|
|
83
|
-
candidate_id: updated
|
|
84
|
-
memo_id:
|
|
142
|
+
candidate_id: updated.candidate_id,
|
|
143
|
+
memo_id: memoId ?? updated.memo_id ?? null,
|
|
85
144
|
title,
|
|
86
145
|
created_at: createdAt,
|
|
87
146
|
created_at_source: createdAtSource,
|
|
147
|
+
used_existing_memo: suppliedMemoId !== undefined,
|
|
88
148
|
warnings: createdAtSource === 'pending_created_at'
|
|
89
149
|
? [
|
|
90
150
|
'source_session_updated_at was not available; used pending candidate created_at',
|
|
@@ -101,11 +161,4 @@ export async function handleSavePendingCandidate(args, apiClient) {
|
|
|
101
161
|
],
|
|
102
162
|
};
|
|
103
163
|
}
|
|
104
|
-
async function findSavedMemo(apiClient, title, body) {
|
|
105
|
-
const result = await searchMemos(apiClient, { word: title, limit: 10 });
|
|
106
|
-
if (!result.success || !result.memos)
|
|
107
|
-
return undefined;
|
|
108
|
-
const fingerprint = createFingerprint(title, body);
|
|
109
|
-
return result.memos.find((memo) => createFingerprint(memo.title, memo.body) === fingerprint);
|
|
110
|
-
}
|
|
111
164
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/save-pending-candidate/handler.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/save-pending-candidate/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ export const savePendingCandidateTool = {
|
|
|
7
7
|
type: 'object',
|
|
8
8
|
properties: {
|
|
9
9
|
candidate_id: { type: 'string', description: 'Candidate ID to save' },
|
|
10
|
+
saved_memo_id: {
|
|
11
|
+
type: 'number',
|
|
12
|
+
description: 'Existing memo ID to attach when retrying after memo creation succeeded but candidate save failed. Omit for normal saves.',
|
|
13
|
+
},
|
|
10
14
|
title: { type: 'string', description: 'Title override when saving' },
|
|
11
15
|
body: { type: 'string', description: 'Body override when saving' },
|
|
12
16
|
created_at: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/save-pending-candidate/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAgB;IACnD,UAAU,EAAE;QACV,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,sIAAsI;QACxI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACrE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAClE,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+IAA+I;iBAClJ;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACxD,cAAc,EAAE;oBACd,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;qBAC1D;oBACD,WAAW,EACT,iKAAiK;iBACpK;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,8BAA8B;oBAC3C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;wBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;qBACjB;iBACF;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aAC/C;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B;KACF;IACD,OAAO,EAAE,0BAA0B;CACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/save-pending-candidate/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAgB;IACnD,UAAU,EAAE;QACV,IAAI,EAAE,8BAA8B;QACpC,WAAW,EACT,sIAAsI;QACxI,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBACrE,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0HAA0H;iBAC7H;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;gBACpE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAClE,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+IAA+I;iBAClJ;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACxD,cAAc,EAAE;oBACd,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;qBAC1D;oBACD,WAAW,EACT,iKAAiK;iBACpK;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,8BAA8B;oBAC3C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;wBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;qBACjB;iBACF;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aAC/C;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B;KACF;IACD,OAAO,EAAE,0BAA0B;CACpC,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import { listRemoteProcessedSessions } from '../../services/api/knowledge-candidate.js';
|
|
1
2
|
import { scanSessions } from '../../services/session/index.js';
|
|
2
|
-
export async function handleScanSessions(args,
|
|
3
|
+
export async function handleScanSessions(args, apiClient) {
|
|
3
4
|
const sources = parseSources(args?.sources);
|
|
4
5
|
const includeProcessed = typeof args?.include_processed === 'boolean'
|
|
5
6
|
? args.include_processed
|
|
6
7
|
: false;
|
|
7
|
-
const
|
|
8
|
+
const processed = await listRemoteProcessedSessions(apiClient, sources.length === 1 ? sources[0] : undefined);
|
|
9
|
+
const sessions = scanSessions(sources, includeProcessed, processed.sessions);
|
|
8
10
|
const result = {
|
|
9
11
|
count: sessions.length,
|
|
10
12
|
sessions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/scan-sessions/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAyC,EACzC,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/scan-sessions/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAyC,EACzC,SAAoB;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GACpB,OAAO,IAAI,EAAE,iBAAiB,KAAK,SAAS;QAC1C,CAAC,CAAC,IAAI,CAAC,iBAAiB;QACxB,CAAC,CAAC,KAAK,CAAC;IACZ,MAAM,SAAS,GAAG,MAAM,2BAA2B,CACjD,SAAS,EACT,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAC;IACF,MAAM,QAAQ,GAAG,YAAY,CAC3B,OAAO,EACP,gBAAgB,EAChB,SAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,QAAQ;KACT,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,MAAM,EAA2B,EAAE,CAClC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,CAC5C,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export async function handleUpdateCapturePolicy(args,
|
|
1
|
+
import { updateRemoteCapturePolicy } from '../../services/api/knowledge-candidate.js';
|
|
2
|
+
export async function handleUpdateCapturePolicy(args, apiClient) {
|
|
3
3
|
if (!args || typeof args.markdown !== 'string') {
|
|
4
4
|
return {
|
|
5
5
|
content: [{ type: 'text', text: 'markdown is required' }],
|
|
6
6
|
isError: true,
|
|
7
7
|
};
|
|
8
8
|
}
|
|
9
|
-
const policy =
|
|
9
|
+
const policy = await updateRemoteCapturePolicy(apiClient, args.markdown);
|
|
10
10
|
return {
|
|
11
11
|
structuredContent: policy,
|
|
12
12
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-capture-policy/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-capture-policy/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAyC,EACzC,SAAoB;IAEpB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;YACzD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,OAAO;QACL,iBAAiB,EAAE,MAA4C;QAC/D,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,13 +2,13 @@ import { handleUpdateCapturePolicy } from './handler.js';
|
|
|
2
2
|
export const updateCapturePolicyTool = {
|
|
3
3
|
definition: {
|
|
4
4
|
name: 'paput_update_capture_policy',
|
|
5
|
-
description: 'Save the
|
|
5
|
+
description: 'Save the PaPut capture policy document generated by the client AI from discarded knowledge candidates.',
|
|
6
6
|
inputSchema: {
|
|
7
7
|
type: 'object',
|
|
8
8
|
properties: {
|
|
9
9
|
markdown: {
|
|
10
10
|
type: 'string',
|
|
11
|
-
description: 'Capture policy markdown to save
|
|
11
|
+
description: 'Capture policy markdown to save.',
|
|
12
12
|
},
|
|
13
13
|
},
|
|
14
14
|
required: ['markdown'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-capture-policy/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,uBAAuB,GAAgB;IAClD,UAAU,EAAE;QACV,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-capture-policy/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,uBAAuB,GAAgB;IAClD,UAAU,EAAE;QACV,IAAI,EAAE,6BAA6B;QACnC,WAAW,EACT,wGAAwG;QAC1G,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD,OAAO,EAAE,yBAAyB;CACnC,CAAC"}
|
|
@@ -50,8 +50,8 @@ export async function handleUpdateMemo(args, apiClient, context) {
|
|
|
50
50
|
if (Array.isArray(args.memo_type_keys)) {
|
|
51
51
|
params.memo_type_keys = args.memo_type_keys.filter((key) => typeof key === 'string');
|
|
52
52
|
}
|
|
53
|
-
params.projects = await resolveMemoProjects(args, apiClient, context);
|
|
54
53
|
try {
|
|
54
|
+
params.projects = await resolveMemoProjects(args, apiClient, context);
|
|
55
55
|
const result = await updateMemo(apiClient, params);
|
|
56
56
|
if (!result.success) {
|
|
57
57
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-memo/handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAyC,EACzC,SAAoB,EACpB,OAAqB;IAErB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qBAAqB;iBAC5B;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IACE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC3B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,EACnC,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wDAAwD;iBAC/D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC7D,MAAM,QAAQ,GAAsC;oBAClD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;iBACvB,CAAC;gBACF,IAAI,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC9C,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBACvB,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAqB;QAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU;KACX,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAChD,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-memo/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { updateRemoteKnowledgeCandidate } from '../../services/api/knowledge-candidate.js';
|
|
2
|
+
export async function handleUpdatePendingCandidate(args, apiClient) {
|
|
3
|
+
if (!args || typeof args.candidate_id !== 'string') {
|
|
4
|
+
return {
|
|
5
|
+
content: [{ type: 'text', text: 'candidate_id is required' }],
|
|
6
|
+
isError: true,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const patch = buildPatch(args);
|
|
10
|
+
if ('error' in patch) {
|
|
11
|
+
return {
|
|
12
|
+
content: [{ type: 'text', text: patch.error }],
|
|
13
|
+
isError: true,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
if (Object.keys(patch.fields).length === 0) {
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{
|
|
20
|
+
type: 'text',
|
|
21
|
+
text: 'No updatable fields were provided. Provide at least one of title, body, categories, memo_type_keys, confidence, is_public, or projects.',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
isError: true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const result = await updateRemoteKnowledgeCandidate(apiClient, {
|
|
28
|
+
candidate_id: args.candidate_id,
|
|
29
|
+
...patch.fields,
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
structuredContent: result,
|
|
33
|
+
content: [
|
|
34
|
+
{
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: JSON.stringify(result, null, 2),
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function buildPatch(args) {
|
|
42
|
+
const fields = {};
|
|
43
|
+
if ('title' in args) {
|
|
44
|
+
if (typeof args.title !== 'string' || args.title.trim() === '') {
|
|
45
|
+
return { error: 'title must be a non-empty string' };
|
|
46
|
+
}
|
|
47
|
+
fields.title = args.title;
|
|
48
|
+
}
|
|
49
|
+
if ('body' in args) {
|
|
50
|
+
if (typeof args.body !== 'string' || args.body.trim() === '') {
|
|
51
|
+
return { error: 'body must be a non-empty string' };
|
|
52
|
+
}
|
|
53
|
+
fields.body = args.body;
|
|
54
|
+
}
|
|
55
|
+
if ('categories' in args) {
|
|
56
|
+
if (!Array.isArray(args.categories)) {
|
|
57
|
+
return { error: 'categories must be an array of strings' };
|
|
58
|
+
}
|
|
59
|
+
fields.categories = args.categories.filter((category) => typeof category === 'string');
|
|
60
|
+
}
|
|
61
|
+
if ('memo_type_keys' in args) {
|
|
62
|
+
if (!Array.isArray(args.memo_type_keys)) {
|
|
63
|
+
return { error: 'memo_type_keys must be an array of strings' };
|
|
64
|
+
}
|
|
65
|
+
fields.memo_type_keys = args.memo_type_keys.filter((key) => typeof key === 'string');
|
|
66
|
+
}
|
|
67
|
+
if ('projects' in args) {
|
|
68
|
+
if (!Array.isArray(args.projects)) {
|
|
69
|
+
return { error: 'projects must be an array of project references' };
|
|
70
|
+
}
|
|
71
|
+
fields.projects = args.projects.filter((project) => typeof project === 'object' &&
|
|
72
|
+
project !== null &&
|
|
73
|
+
'id' in project &&
|
|
74
|
+
typeof project.id === 'number');
|
|
75
|
+
}
|
|
76
|
+
if ('confidence' in args) {
|
|
77
|
+
if (typeof args.confidence !== 'number') {
|
|
78
|
+
return { error: 'confidence must be a number' };
|
|
79
|
+
}
|
|
80
|
+
fields.confidence = args.confidence;
|
|
81
|
+
}
|
|
82
|
+
if ('is_public' in args) {
|
|
83
|
+
if (typeof args.is_public !== 'boolean') {
|
|
84
|
+
return { error: 'is_public must be a boolean' };
|
|
85
|
+
}
|
|
86
|
+
fields.is_public = args.is_public;
|
|
87
|
+
}
|
|
88
|
+
return { fields };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-pending-candidate/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAG3F,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAyC,EACzC,SAAoB;IAEpB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,yIAAyI;iBAChJ;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,SAAS,EAAE;QAC7D,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,KAAK,CAAC,MAAM;KAChB,CAAC,CAAC;IAEH,OAAO;QACL,iBAAiB,EAAE,MAA4C;QAC/D,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAID,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,MAAM,GAAuC,EAAE,CAAC;IAEtD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,OAAO,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC;QAC7D,CAAC;QACD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CACxC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAC/D,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;QACjE,CAAC;QACD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAChD,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,OAAO,EAA6C,EAAE,CACrD,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YAChB,IAAI,IAAI,OAAO;YACf,OAAQ,OAA2B,CAAC,EAAE,KAAK,QAAQ,CACtD,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/update-pending-candidate/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { handleUpdatePendingCandidate } from './handler.js';
|
|
2
|
+
export const updatePendingCandidateTool = {
|
|
3
|
+
definition: {
|
|
4
|
+
name: 'paput_update_pending_candidate',
|
|
5
|
+
description: 'Update an existing pending knowledge candidate before it is saved to PaPut. Only fields you provide are changed; omitted fields keep their current value. Use this to refine a candidate (title, body, categories, memo type keys, confidence, visibility, or linked projects) instead of discarding and re-adding it. Only candidates that are still pending can be updated.',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: 'object',
|
|
8
|
+
properties: {
|
|
9
|
+
candidate_id: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
description: 'Pending candidate ID to update',
|
|
12
|
+
},
|
|
13
|
+
title: { type: 'string', description: 'Replacement title' },
|
|
14
|
+
body: { type: 'string', description: 'Replacement body' },
|
|
15
|
+
categories: {
|
|
16
|
+
type: 'array',
|
|
17
|
+
items: { type: 'string' },
|
|
18
|
+
description: 'Replacement category names',
|
|
19
|
+
},
|
|
20
|
+
memo_type_keys: {
|
|
21
|
+
type: 'array',
|
|
22
|
+
items: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
enum: ['knowledge', 'decision', 'operation', 'principle'],
|
|
25
|
+
},
|
|
26
|
+
description: 'Memo type classification keys (a memo can have multiple). decision/operation/principle are the primary material for the public AI summary.',
|
|
27
|
+
},
|
|
28
|
+
confidence: { type: 'number', description: 'Confidence score' },
|
|
29
|
+
is_public: {
|
|
30
|
+
type: 'boolean',
|
|
31
|
+
description: 'Whether the saved memo will be public',
|
|
32
|
+
},
|
|
33
|
+
projects: {
|
|
34
|
+
type: 'array',
|
|
35
|
+
description: 'Replacement linked projects',
|
|
36
|
+
items: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
id: { type: 'number' },
|
|
40
|
+
title: { type: 'string' },
|
|
41
|
+
},
|
|
42
|
+
required: ['id'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
required: ['candidate_id'],
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
handler: handleUpdatePendingCandidate,
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-pending-candidate/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,UAAU,EAAE;QACV,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,+WAA+W;QACjX,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;gBAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACzD,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;qBAC1D;oBACD,WAAW,EACT,4IAA4I;iBAC/I;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBAC/D,SAAS,EAAE;oBACT,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uCAAuC;iBACrD;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,6BAA6B;oBAC1C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;wBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;qBACjB;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B;KACF;IACD,OAAO,EAAE,4BAA4B;CACtC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { updateProjectDocument } from '../../services/api/project-context.js';
|
|
2
|
+
export async function handleUpdateProjectDocument(args, apiClient) {
|
|
3
|
+
const invalid = validateArgs(args);
|
|
4
|
+
if (invalid) {
|
|
5
|
+
return invalid;
|
|
6
|
+
}
|
|
7
|
+
const input = args;
|
|
8
|
+
try {
|
|
9
|
+
const document = await updateProjectDocument(apiClient, {
|
|
10
|
+
id: input.id,
|
|
11
|
+
title: input.title,
|
|
12
|
+
summary: typeof input.summary === 'string' ? input.summary : undefined,
|
|
13
|
+
body: input.body,
|
|
14
|
+
});
|
|
15
|
+
const decided = document.decided_at
|
|
16
|
+
? `\nDecided at: ${document.decided_at}`
|
|
17
|
+
: '';
|
|
18
|
+
return {
|
|
19
|
+
structuredContent: document,
|
|
20
|
+
content: [
|
|
21
|
+
{
|
|
22
|
+
type: 'text',
|
|
23
|
+
text: `Project document updated: 【${document.title}】(ID: ${document.id}, ${document.kind}, ${document.status})${decided}`,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
30
|
+
return {
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
type: 'text',
|
|
34
|
+
text: `Failed to update project document: ${errorMessage}`,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
isError: true,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function validateArgs(args) {
|
|
42
|
+
if (!args ||
|
|
43
|
+
typeof args.id !== 'number' ||
|
|
44
|
+
args.id <= 0 ||
|
|
45
|
+
typeof args.title !== 'string' ||
|
|
46
|
+
args.title.trim() === '' ||
|
|
47
|
+
typeof args.body !== 'string' ||
|
|
48
|
+
args.body.trim() === '') {
|
|
49
|
+
return {
|
|
50
|
+
content: [
|
|
51
|
+
{
|
|
52
|
+
type: 'text',
|
|
53
|
+
text: 'id, title, and body are required.',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
isError: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAyC,EACzC,SAAoB;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,IAA+B,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE;YACtD,EAAE,EAAE,KAAK,CAAC,EAAY;YACtB,KAAK,EAAE,KAAK,CAAC,KAAe;YAC5B,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtE,IAAI,EAAE,KAAK,CAAC,IAAc;SAC3B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU;YACjC,CAAC,CAAC,iBAAiB,QAAQ,CAAC,UAAU,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,iBAAiB,EAAE,QAA8C;YACjE,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,8BAA8B,QAAQ,CAAC,KAAK,SAAS,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE;iBAC1H;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAE3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,sCAAsC,YAAY,EAAE;iBAC3D;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAyC;IAC7D,IACE,CAAC,IAAI;QACL,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QACxB,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EACvB,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,mCAAmC;iBAC1C;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { handleUpdateProjectDocument } from './handler.js';
|
|
2
|
+
export const updateProjectDocumentTool = {
|
|
3
|
+
definition: {
|
|
4
|
+
name: 'paput_update_project_document',
|
|
5
|
+
description: 'Update an existing private project document (identified by ID) by replacing its title, summary, and body. This is a full replace of those fields, so provide the complete desired state; an omitted summary is cleared. Fetch the current document with paput_get_project_document first when you only intend to change part of it. Kind, status, decided_at, and skill promotion are not changed by this tool.',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: 'object',
|
|
8
|
+
properties: {
|
|
9
|
+
id: {
|
|
10
|
+
type: 'number',
|
|
11
|
+
description: 'Project document ID to update',
|
|
12
|
+
},
|
|
13
|
+
title: {
|
|
14
|
+
type: 'string',
|
|
15
|
+
description: 'Concise, searchable title',
|
|
16
|
+
},
|
|
17
|
+
summary: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
description: 'One-line summary shown in the document index (keep it short). Omitting it clears the summary.',
|
|
20
|
+
},
|
|
21
|
+
body: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Markdown body. For design decisions include the decision, reasons, and rejected alternatives.',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ['id', 'title', 'body'],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
handler: handleUpdateProjectDocument,
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/handlers/update-project-document/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,CAAC,MAAM,yBAAyB,GAAgB;IACpD,UAAU,EAAE;QACV,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,iZAAiZ;QACnZ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,+FAA+F;iBAClG;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;SAClC;KACF;IACD,OAAO,EAAE,2BAA2B;CACrC,CAAC"}
|
|
@@ -85,6 +85,9 @@ function parseProjectParams(params) {
|
|
|
85
85
|
if (typeof params.end_period === 'string' || params.end_period === null) {
|
|
86
86
|
project.end_period = params.end_period;
|
|
87
87
|
}
|
|
88
|
+
if (typeof params.mcp_alias === 'string') {
|
|
89
|
+
project.mcp_alias = params.mcp_alias;
|
|
90
|
+
}
|
|
88
91
|
return project;
|
|
89
92
|
}
|
|
90
93
|
function isTechnology(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/upsert-skill-sheet-project/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/handlers/upsert-skill-sheet-project/handler.ts"],"names":[],"mappings":"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"}
|