@codazen/harmonica-mcp 3.9.1 → 3.9.2
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/dist/index.js +21 -11
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -26331,6 +26331,16 @@ var normalizeSystemId = (raw) => {
|
|
|
26331
26331
|
if (!id) return raw;
|
|
26332
26332
|
return { ...b, systemId: id };
|
|
26333
26333
|
};
|
|
26334
|
+
var normalizeSystemIdAndTitle = (raw) => {
|
|
26335
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) return raw;
|
|
26336
|
+
const b = raw;
|
|
26337
|
+
const id = b["systemId"] || b["projectId"];
|
|
26338
|
+
const title = b["systemTitle"] || b["projectTitle"];
|
|
26339
|
+
const result = { ...b };
|
|
26340
|
+
if (id) result["systemId"] = id;
|
|
26341
|
+
if (title) result["systemTitle"] = title;
|
|
26342
|
+
return result;
|
|
26343
|
+
};
|
|
26334
26344
|
var BeatApiSchema = external_exports.preprocess(
|
|
26335
26345
|
(raw) => {
|
|
26336
26346
|
if (typeof raw !== "object" || raw === null) return raw;
|
|
@@ -27248,7 +27258,7 @@ var RevisionClaimsResponseSchema = external_exports.object({
|
|
|
27248
27258
|
claims: external_exports.array(RevisionClaimSchema)
|
|
27249
27259
|
}).passthrough();
|
|
27250
27260
|
var ProposedRevisionSchema = external_exports.preprocess(
|
|
27251
|
-
|
|
27261
|
+
normalizeSystemIdAndTitle,
|
|
27252
27262
|
external_exports.object({
|
|
27253
27263
|
revisionId: external_exports.string(),
|
|
27254
27264
|
title: external_exports.string(),
|
|
@@ -27256,7 +27266,7 @@ var ProposedRevisionSchema = external_exports.preprocess(
|
|
|
27256
27266
|
beatId: external_exports.string(),
|
|
27257
27267
|
beatTitle: external_exports.string().optional(),
|
|
27258
27268
|
systemId: external_exports.string(),
|
|
27259
|
-
|
|
27269
|
+
systemTitle: external_exports.string().optional()
|
|
27260
27270
|
}).passthrough()
|
|
27261
27271
|
);
|
|
27262
27272
|
var ReleaseIntervalSchema = external_exports.object({
|
|
@@ -27265,7 +27275,7 @@ var ReleaseIntervalSchema = external_exports.object({
|
|
|
27265
27275
|
isFallback: external_exports.boolean()
|
|
27266
27276
|
}).passthrough();
|
|
27267
27277
|
var EligibleBeatVersionForDropSchema = external_exports.preprocess(
|
|
27268
|
-
|
|
27278
|
+
normalizeSystemIdAndTitle,
|
|
27269
27279
|
external_exports.object({
|
|
27270
27280
|
beatVersionId: external_exports.string(),
|
|
27271
27281
|
title: external_exports.string(),
|
|
@@ -27273,7 +27283,7 @@ var EligibleBeatVersionForDropSchema = external_exports.preprocess(
|
|
|
27273
27283
|
beatId: external_exports.string(),
|
|
27274
27284
|
beatTitle: external_exports.string().optional(),
|
|
27275
27285
|
systemId: external_exports.string(),
|
|
27276
|
-
|
|
27286
|
+
systemTitle: external_exports.string().optional(),
|
|
27277
27287
|
createdAt: external_exports.string(),
|
|
27278
27288
|
updatedAt: external_exports.string(),
|
|
27279
27289
|
humanAssignee: external_exports.object({ email: external_exports.string(), name: external_exports.string() }).optional(),
|
|
@@ -27627,7 +27637,7 @@ function registerNoteTools(server, ctx, client) {
|
|
|
27627
27637
|
);
|
|
27628
27638
|
server.tool(
|
|
27629
27639
|
"list_org_notes",
|
|
27630
|
-
"List Notes at the organization level (cross-cutting constraints, org-wide decisions, and context that applies to all
|
|
27640
|
+
"List Notes at the organization level (cross-cutting constraints, org-wide decisions, and context that applies to all systems). Filterable by type and status. Use offset/limit to paginate.",
|
|
27631
27641
|
{
|
|
27632
27642
|
noteType: external_exports.enum(NOTE_TYPE_VALUES).optional().describe("Filter by note type"),
|
|
27633
27643
|
status: external_exports.enum(NOTE_STATUS_VALUES).optional().describe("Filter by status"),
|
|
@@ -27653,7 +27663,7 @@ function registerNoteTools(server, ctx, client) {
|
|
|
27653
27663
|
);
|
|
27654
27664
|
server.tool(
|
|
27655
27665
|
"list_movement_notes",
|
|
27656
|
-
"List Notes scoped directly to a Movement (commercial SOW container) \u2014 engagement-level knowledge such as SOW constraints, scope boundaries, and commercial decisions. Not aggregated from
|
|
27666
|
+
"List Notes scoped directly to a Movement (commercial SOW container) \u2014 engagement-level knowledge such as SOW constraints, scope boundaries, and commercial decisions. Not aggregated from systems. Filterable by type and status.",
|
|
27657
27667
|
{
|
|
27658
27668
|
movementId: external_exports.string().min(1).describe("The Movement ID"),
|
|
27659
27669
|
noteType: external_exports.enum(NOTE_TYPE_VALUES).optional().describe("Filter by note type"),
|
|
@@ -28835,7 +28845,7 @@ Error: ${msg}`);
|
|
|
28835
28845
|
} catch (err) {
|
|
28836
28846
|
const msg = err instanceof Error ? err.message : String(err);
|
|
28837
28847
|
lines.push(`
|
|
28838
|
-
|
|
28848
|
+
Systems created: ${createdProjects.length}`);
|
|
28839
28849
|
lines.unshift(`\u26A0\uFE0F Onboarding batch partially created \u2014 stopped at: system "${p.title}"
|
|
28840
28850
|
Error: ${msg}`);
|
|
28841
28851
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
@@ -28843,7 +28853,7 @@ Error: ${msg}`);
|
|
|
28843
28853
|
}
|
|
28844
28854
|
if (createdProjects.length > 0) {
|
|
28845
28855
|
lines.push(`
|
|
28846
|
-
|
|
28856
|
+
Systems (${createdProjects.length}):`);
|
|
28847
28857
|
for (const p of createdProjects) lines.push(` [${p.systemId}] ${p.title}`);
|
|
28848
28858
|
}
|
|
28849
28859
|
const createdNotes = [];
|
|
@@ -31092,10 +31102,10 @@ function registerTeamspaceTools(server, ctx, client) {
|
|
|
31092
31102
|
`Created: ${ts.createdAt}`
|
|
31093
31103
|
];
|
|
31094
31104
|
if (tsProjects.length > 0) {
|
|
31095
|
-
lines.push("", `
|
|
31105
|
+
lines.push("", `Systems (${tsProjects.length}):`);
|
|
31096
31106
|
for (const p of tsProjects) lines.push(` [${p.systemId}] ${p.title} \u2014 ${p.status ?? "unknown"}`);
|
|
31097
31107
|
} else {
|
|
31098
|
-
lines.push("
|
|
31108
|
+
lines.push("Systems: (none)");
|
|
31099
31109
|
}
|
|
31100
31110
|
if (ts.ensemble && ts.ensemble.length > 0) {
|
|
31101
31111
|
lines.push("", "Ensemble:");
|
|
@@ -34912,7 +34922,7 @@ function loadConfig() {
|
|
|
34912
34922
|
};
|
|
34913
34923
|
}
|
|
34914
34924
|
async function main() {
|
|
34915
|
-
console.error(`[harmonica-mcp] v${"3.9.
|
|
34925
|
+
console.error(`[harmonica-mcp] v${"3.9.2"} starting\u2026`);
|
|
34916
34926
|
const config2 = loadConfig();
|
|
34917
34927
|
const client = createHttpClient({
|
|
34918
34928
|
apiBaseUrl: config2.apiBaseUrl,
|