{ "name": "harbor-forge", "version": "0.1.0", "activation": "eager", "executable": "plexum-harborforge-plugin", "contracts": { "tools": [ { "name": "harborforge_status", "description": "Return the plugin's resolved config + Monitor bridge health + Calendar scheduler status + telemetry snapshot.", "inputSchema": {"type": "object"} }, { "name": "harborforge_telemetry", "description": "Current system + agent telemetry (the same snapshot served to the local HarborForge.Monitor over the monitor_port).", "inputSchema": {"type": "object"} }, { "name": "harborforge_monitor_telemetry", "description": "Last telemetry payload the Monitor bridge fetched, with timing info — useful when diagnosing bridge connectivity.", "inputSchema": {"type": "object"} }, { "name": "harborforge_calendar_status", "description": "Active Calendar slot (if any) plus next-up + recent-history. Returns Calendar scheduler state when no slot is active.", "inputSchema": {"type": "object"} }, { "name": "harborforge_calendar_complete", "description": "Mark the agent's currently-active Calendar slot as completed and notify the backend.", "inputSchema": {"type": "object", "properties": {"summary": {"type": "string"}}} }, { "name": "harborforge_calendar_abort", "description": "Abort the agent's currently-active Calendar slot (e.g. unrecoverable error). Optionally include a reason.", "inputSchema": {"type": "object", "properties": {"reason": {"type": "string"}}} }, { "name": "harborforge_calendar_pause", "description": "Pause the agent's currently-active Calendar slot — heartbeat tracks paused state until resume/abort/complete.", "inputSchema": {"type": "object", "properties": {"reason": {"type": "string"}}} }, { "name": "harborforge_calendar_resume", "description": "Resume a paused Calendar slot for the agent.", "inputSchema": {"type": "object"} }, { "name": "harborforge_restart_status", "description": "Check whether a Plexum host restart is pending (backend-driven flag). Reports last poll time and pending flag.", "inputSchema": {"type": "object"} }, { "name": "dynamic-kb-list-kbs", "description": "List HarborForge Knowledge Bases the agent can access. Optional project-code filter (equivalent to `hf knowledge-base list [--project ]`). Returns code/title/description per KB. Browse — follow up with dynamic-kb-list-topics to drill into one.", "inputSchema": {"type": "object", "properties": {"project-code": {"type": "string"}}} }, { "name": "dynamic-kb-list-topics", "description": "List topics in one KB by code. Returns topic id/slug/description per row. Browse — follow up with dynamic-kb-list-facts.", "inputSchema": {"type": "object", "properties": {"kb-code": {"type": "string"}}, "required": ["kb-code"]} }, { "name": "dynamic-kb-list-facts", "description": "List facts in given topics. Returns lightweight previews (id/topic/title/snippet). Browse — feed into dynamic-kb-cache to commit selected facts to your kb-block.", "inputSchema": {"type": "object", "properties": {"kb-code": {"type": "string"}, "topic-ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["kb-code", "topic-ids"]} }, { "name": "dynamic-kb-cache", "description": "Cache specific KB facts into your per-session kb-block (visible in System prompt next turn). Pass previous-dynamic-id to consume the matching list-facts browse output.", "inputSchema": {"type": "object", "properties": {"kb-code": {"type": "string"}, "fact-ids": {"type": "array", "items": {"type": "integer"}}, "previous-dynamic-id": {"type": "string"}}, "required": ["kb-code", "fact-ids"]} }, { "name": "dynamic-kb-evict", "description": "Remove cached facts from your kb-block (free ctx). Takes effect starting your next turn.", "inputSchema": {"type": "object", "properties": {"fact-ids": {"type": "array", "items": {"type": "integer"}}}, "required": ["fact-ids"]} } ], "dynamicSubblocks": [ {"name": "kb-block"} ] } }