owner-clone-ai-mcp 2.1.2 → 2.1.4
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/domains/knowledge.js +2 -1
- package/domains/projectOs.js +14 -0
- package/domains/schedulesAndTasks.js +4 -1
- package/package.json +1 -1
package/domains/knowledge.js
CHANGED
|
@@ -34,6 +34,7 @@ const tools = [
|
|
|
34
34
|
properties: {
|
|
35
35
|
query: { type: 'string', description: '検索クエリ' },
|
|
36
36
|
limit: { type: 'number', description: '取得件数(デフォルト: 10)' },
|
|
37
|
+
scope: { type: 'string', enum: ['account'], description: 'プロジェクト専用キー使用時に "account" を指定するとアカウント全体を検索(既定はプロジェクトの棚に限定)。棚の外の正本ナレッジを探すときに使う' },
|
|
37
38
|
},
|
|
38
39
|
required: ['query'],
|
|
39
40
|
},
|
|
@@ -402,7 +403,7 @@ const handlers = {
|
|
|
402
403
|
async search_knowledge(args) {
|
|
403
404
|
const data = await callApi('/knowledge/search', {
|
|
404
405
|
method: 'POST',
|
|
405
|
-
body: JSON.stringify({ query: args.query, limit: args.limit }),
|
|
406
|
+
body: JSON.stringify({ query: args.query, limit: args.limit, scope: args.scope }),
|
|
406
407
|
});
|
|
407
408
|
if (!data.results || data.results.length === 0) {
|
|
408
409
|
return `「${args.query}」に一致するナレッジは見つかりませんでした。`;
|
package/domains/projectOs.js
CHANGED
|
@@ -139,6 +139,16 @@ role: reference(参照) / tool(道具) / output(成果物)`,
|
|
|
139
139
|
folder_id: { type: 'string', description: 'ナレッジフォルダID(list_knowledge_folders で確認。省略=解除)' },
|
|
140
140
|
} },
|
|
141
141
|
},
|
|
142
|
+
{
|
|
143
|
+
name: 'set_project_brief',
|
|
144
|
+
description: `プロジェクトの事業ブリーフ(ヒアリング回答・前提情報)を更新します【書き込み権限付きキーが必要】。
|
|
145
|
+
キー単位のマージ(渡したキーだけ上書き・値 null でキー削除)。以後の分解(plan_project_goals)と作業指示書(get_goal_briefing)に自動で効きます。`,
|
|
146
|
+
annotations: { destructiveHint: false, idempotentHint: true },
|
|
147
|
+
inputSchema: { type: 'object', properties: {
|
|
148
|
+
project_id: { type: 'string', description: 'プロジェクト紐付きキーなら省略可' },
|
|
149
|
+
brief: { type: 'object', description: '{ ターゲット: "...", 納期: "...", 品質基準: "..." } 形式。1値2000字・全体8KBまで' },
|
|
150
|
+
}, required: ['brief'] },
|
|
151
|
+
},
|
|
142
152
|
{
|
|
143
153
|
name: 'distill_project_knowledge',
|
|
144
154
|
description: '航海日誌から「次も使える学び」をナレッジに整理します(蒸留)【書き込み権限付きキーが必要】。ゴール完了時は自動で走るため、ユーザーに頼まれたときだけ使ってください。',
|
|
@@ -261,6 +271,10 @@ const handlers = {
|
|
|
261
271
|
? `✅ 成果物の保存先を設定しました。${d.hint || ''}`
|
|
262
272
|
: '✅ 保存先を解除しました(未分類に保存されます)';
|
|
263
273
|
},
|
|
274
|
+
async set_project_brief(args = {}) {
|
|
275
|
+
const d = await callApi('/project-os/brief', { method: 'POST', body: JSON.stringify(args) });
|
|
276
|
+
return `✅ ブリーフを更新しました。${d.hint || ''}\n現在: ${JSON.stringify(d.brief).slice(0, 400)}`;
|
|
277
|
+
},
|
|
264
278
|
async distill_project_knowledge(args = {}) {
|
|
265
279
|
const d = await callApi('/project-os/distill', { method: 'POST', body: JSON.stringify(args) });
|
|
266
280
|
if (d.skipped) return `⏭ ${d.skipped}`;
|
|
@@ -136,6 +136,9 @@ assignee_id を調べるために使います。先頭はオーナー自身(ro
|
|
|
136
136
|
assignee_id: { type: 'string', description: '担当者のメンバーID(list_team_members のUUID。空文字で担当者解除)' },
|
|
137
137
|
assignee_name: { type: 'string', description: '担当者の名前(部分一致)。"解除"で担当者を外す。オーナー(APIキーの持ち主)も名前で指定でき、"自分" と書けばオーナー。⚠️ オーナーとメンバーの両方に部分一致すると候補一覧のエラーになるため、フルネームか assignee_id を使う' },
|
|
138
138
|
project_id: { type: 'string', description: '紐づけるプロジェクトのID(list_projects のUUID。空文字で解除)' },
|
|
139
|
+
owner_note: { type: 'string', description: 'オーナーの補足指示(作業指示書で本文より優先。空文字で削除)' },
|
|
140
|
+
department: { type: 'string', description: '実行部署名(プロジェクトOSの【部署】定義の名前。空文字で解除)' },
|
|
141
|
+
resource_refs: { type: 'array', items: { type: 'object' }, description: 'このタスクで使うもの [{type: knowledge|skill|agent, name, id?}]。丸ごと置き換え・ナレッジは棚にも自動掲載' },
|
|
139
142
|
},
|
|
140
143
|
required: ['id'],
|
|
141
144
|
},
|
|
@@ -262,7 +265,7 @@ const handlers = {
|
|
|
262
265
|
|
|
263
266
|
async update_task(args) {
|
|
264
267
|
const body = {};
|
|
265
|
-
['title','body','priority','due_date','status','assignee_id','assignee_name','project_id']
|
|
268
|
+
['title','body','priority','due_date','status','assignee_id','assignee_name','project_id','owner_note','department','resource_refs']
|
|
266
269
|
.forEach(f => { if (args[f] !== undefined) body[f] = args[f]; });
|
|
267
270
|
const data = await callApi(`/tasks/${args.id}`, { method: 'PATCH', body: JSON.stringify(body) });
|
|
268
271
|
return `✅ ${data.message}\nID: ${data.id}`;
|