@massa-ai/claude-plugin 1.52.0 → 1.53.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/install.sh
CHANGED
|
@@ -309,7 +309,7 @@ install_bundled_skills() {
|
|
|
309
309
|
fi
|
|
310
310
|
|
|
311
311
|
local installed=0 name src dest
|
|
312
|
-
for name in massa-ai persona-router; do
|
|
312
|
+
for name in massa-ai persona-router profile; do
|
|
313
313
|
src="$SCRIPT_DIR/skills/$name"
|
|
314
314
|
[[ -d "$src" ]] || continue
|
|
315
315
|
dest="$HARNESS_SKILLS_DIR/$name"
|
|
@@ -338,7 +338,7 @@ if (typeof data.platforms !== "object" || data.platforms === null || Array.isArr
|
|
|
338
338
|
}
|
|
339
339
|
data.version = 2;
|
|
340
340
|
const prev = data.platforms[host];
|
|
341
|
-
data.platforms[host] = { root, skillsOwner: "plugin", skills: ["massa-ai", "persona-router"] };
|
|
341
|
+
data.platforms[host] = { root, skillsOwner: "plugin", skills: ["massa-ai", "persona-router", "profile"] };
|
|
342
342
|
// The whole-record replace must not drop fields a previous successful install
|
|
343
343
|
// wrote (R2) — re-attach them. modelProfile (T10, MPS-03 round-trip
|
|
344
344
|
// obligation) is engine-owned; installRoute is installer-owned but written by
|
|
@@ -385,7 +385,7 @@ NODE
|
|
|
385
385
|
)"
|
|
386
386
|
[[ "$raw_owner" == "plugin" ]] && {
|
|
387
387
|
local name
|
|
388
|
-
for name in massa-ai persona-router; do
|
|
388
|
+
for name in massa-ai persona-router profile; do
|
|
389
389
|
rm -rf "$HARNESS_SKILLS_DIR/$name"
|
|
390
390
|
done
|
|
391
391
|
rmdir "$HARNESS_SKILLS_DIR" 2>/dev/null || true
|
|
@@ -734,10 +734,16 @@ remove_file_route_artifacts() {
|
|
|
734
734
|
if [[ -f "$SETTINGS_JSON" ]]; then
|
|
735
735
|
merge_settings_hooks "$SETTINGS_JSON" "uninstall"
|
|
736
736
|
fi
|
|
737
|
+
# Prefix-glob against the INSTALLED directory, not the source bundle (IPT-03
|
|
738
|
+
# site 6, D2): deriving removals from $SCRIPT_DIR/commands/*.md misses
|
|
739
|
+
# installed copies whenever the bundle is absent or stale (normal under
|
|
740
|
+
# AD-016). Mirrors the agents loop directly below, which already does this
|
|
741
|
+
# correctly. The keep-list here is empty by design — the marketplace bundle
|
|
742
|
+
# serves its own commands, so every loose file-route copy is removed.
|
|
737
743
|
if [[ -d "$TARGET/commands" ]]; then
|
|
738
|
-
for
|
|
739
|
-
[[ -f "$
|
|
740
|
-
rm -f "$
|
|
744
|
+
for f in "$TARGET/commands/"massa-ai-*.md; do
|
|
745
|
+
[[ -f "$f" ]] || continue
|
|
746
|
+
rm -f "$f"
|
|
741
747
|
done
|
|
742
748
|
fi
|
|
743
749
|
if [[ -d "$TARGET/agents" ]]; then
|
|
@@ -824,6 +830,21 @@ else
|
|
|
824
830
|
command_count=$((command_count + 1))
|
|
825
831
|
done
|
|
826
832
|
|
|
833
|
+
# Shed commands retired from the bundle (IPT-02 site 2, D1 copy-then-prune):
|
|
834
|
+
# copy the current set first, then remove owned destination entries the
|
|
835
|
+
# bundle no longer ships — never the reverse, so an interrupted run never
|
|
836
|
+
# leaves the user with fewer commands than before. Removal population is the
|
|
837
|
+
# destination directory (D2); ownership test is the massa-ai- name prefix
|
|
838
|
+
# (install.sh:765).
|
|
839
|
+
for f in "$TARGET/commands/"massa-ai-*.md; do
|
|
840
|
+
[[ -f "$f" ]] || continue
|
|
841
|
+
prune_name="$(basename "$f" .md)"
|
|
842
|
+
prune_name="${prune_name#massa-ai-}"
|
|
843
|
+
[[ -f "$SCRIPT_DIR/commands/${prune_name}.md" ]] && continue
|
|
844
|
+
rm -f "$f"
|
|
845
|
+
vecho " - removed retired command $(basename "$f")"
|
|
846
|
+
done
|
|
847
|
+
|
|
827
848
|
# Subagent specialists (generated from skills/agents/*/SKILL.md, navigator
|
|
828
849
|
# included). The massa-ai- name prefix is the ownership marker used by uninstall.
|
|
829
850
|
#
|
|
@@ -859,6 +880,20 @@ else
|
|
|
859
880
|
done
|
|
860
881
|
vecho " + ${specialist_count} subagent specialists (generated from skills/agents/*/SKILL.md)"
|
|
861
882
|
|
|
883
|
+
# Shed specialists retired from the bundle (IPT-02 site 1, D1
|
|
884
|
+
# copy-then-prune): copy the current set first, then remove owned
|
|
885
|
+
# destination entries ACTIVE_AGENTS_SRC (the bundle, or the active
|
|
886
|
+
# model-profile variant) no longer ships. Never prune-then-copy — an
|
|
887
|
+
# interrupted run must never leave the user with fewer agents than before.
|
|
888
|
+
# Removal population is the destination directory (D2); ownership test is
|
|
889
|
+
# the massa-ai- name prefix (install.sh:775-777).
|
|
890
|
+
for f in "$TARGET/agents/"massa-ai-*.md; do
|
|
891
|
+
[[ -f "$f" ]] || continue
|
|
892
|
+
[[ -f "$ACTIVE_AGENTS_SRC/$(basename "$f")" ]] && continue
|
|
893
|
+
rm -f "$f"
|
|
894
|
+
vecho " - removed retired specialist $(basename "$f")"
|
|
895
|
+
done
|
|
896
|
+
|
|
862
897
|
install_variant_tree
|
|
863
898
|
fi
|
|
864
899
|
|
package/package.json
CHANGED
package/skills/massa-ai/SKILL.md
CHANGED
|
@@ -46,7 +46,7 @@ Before reading any massa-ai file:
|
|
|
46
46
|
Never pass `workflowSessionId` in that field. Use `synapse_task_begin`/`synapse_task_end`
|
|
47
47
|
for task envelopes and `synapse_prefetch` to warm the buffer on file open.
|
|
48
48
|
- Prefer the shared v2 retrieval order; fall back gracefully if the massa-ai
|
|
49
|
-
server or Synapse is unavailable. The full tool surface includes
|
|
49
|
+
server or Synapse is unavailable. The full tool surface includes 59 tools
|
|
50
50
|
(see `references/mcp-tools.md`): indexing, search, symbol graph
|
|
51
51
|
(`trace_path`, `impact_analysis`, `get_architecture`), memory CRUD
|
|
52
52
|
(`remember`, `recall`, `memory_update`, `memory_delete`), checkpoints
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# massa-ai Tool Contracts (
|
|
1
|
+
# massa-ai Tool Contracts (59 Tools)
|
|
2
2
|
|
|
3
3
|
Load when exact MCP schemas, REST fallbacks, response modes, or
|
|
4
4
|
polling rules are needed. Prefer the active tool declaration over copied
|
|
@@ -103,6 +103,8 @@ depends on exact content.
|
|
|
103
103
|
| `handoff_accept` | Accept an open handoff (open→accepted) | Req: `id`. Opt: `projectId`. |
|
|
104
104
|
| `handoff_cancel` | Cancel/expire an open handoff | Req: `id`. Opt: `projectId`. |
|
|
105
105
|
| `handoff_list_pending` | List open handoffs, oldest-first | Req: `projectId`. Opt: `targetAgent`. |
|
|
106
|
+
| `handoff_update` | Edit targetAgent/summary/openQuestions/nextSteps/files by id | Req: `id`. Opt: `projectId`, `targetAgent`, `summary`, `openQuestions`, `nextSteps`, `files` — at least one editable field required. Unknown/restricted fields (`status`, `acceptedAt`, etc.) are rejected by name. |
|
|
107
|
+
| `handoff_delete` | Hard-delete a handoff, any status | Req: `id`. Opt: `projectId`. |
|
|
106
108
|
|
|
107
109
|
## MCP Capability Matrix — Auto-improvement (Proposals)
|
|
108
110
|
|
|
@@ -111,6 +113,9 @@ depends on exact content.
|
|
|
111
113
|
| `list_proposals` | List pending auto-improvement proposals, newest-first | Req: `projectId`. |
|
|
112
114
|
| `approve_proposal` | Approve a proposal; applies the memory edit | Req: `id`. Opt: `projectId`, `source`. |
|
|
113
115
|
| `reject_proposal` | Reject a proposal (no edit applied) | Req: `id`. Opt: `projectId`, `reason`. |
|
|
116
|
+
| `create_proposal` | Create a pending proposal by hand | Req: `projectId`, `kind` (`memory.create`\|`memory.update`\|`memory.tag`), `payload`. Opt: `rationale`, `targetMemoryId`. `payload` is validated against the same per-kind rules the store enforces on read. |
|
|
117
|
+
| `update_proposal` | Edit rationale/payload by id, any status | Req: `id`. Opt: `projectId`, `rationale`, `payload` — at least one editable field required. `kind`/`targetMemoryId`/`status`/`decidedAt` are immutable. A `payload` edit re-validates against the row's existing `kind`. |
|
|
118
|
+
| `delete_proposal` | Hard-delete a proposal, any status | Req: `id`. Opt: `projectId`. Deleting an approved proposal does not reverse its applied memory edit. |
|
|
114
119
|
|
|
115
120
|
## MCP Capability Matrix — Passive Capture
|
|
116
121
|
|