Files
OpenHarness BotandClaude Opus 4.7 e7e96ccfdd feat: add Slack support to .pi/ as a Pi extension
Adds .pi/extensions/slack/ with Socket Mode bridge, allowlist gating,
and 4 LLM-callable tools (slack_post/reply/react/upload). Inbound
messages bridge into pi.sendUserMessage() with ctx.isIdle() guard;
turn_end posts the assistant's reply back to Slack via SlackContext.
session_shutdown tears down the Socket Mode connection.

Customizations preserved from portfolio-advisor reference:
- threadTs field on event types (7 sites in events.ts)
- threadParent routing in createSlackContext (context.ts:45)
- exported parseEventContent + buildSyntheticEvent

Tests: 27 new (3 files); 78 pre-existing tests still green; 114 total.

Plan: .claude/plans/context-study-https-github-com-ryaneggz-binary-hartmanis.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 23:03:04 -06:00

43 lines
1.1 KiB
JSON

{
"name": "open-harness",
"version": "0.1.0",
"private": true,
"description": "Open Harness — AI Agent Sandbox Orchestrator",
"type": "module",
"packageManager": "pnpm@10.33.0",
"scripts": {
"setup": "pnpm install && pnpm -r --if-present run build",
"build": "pnpm -r --if-present run build",
"test": "pnpm -r --if-present run test && vitest run",
"test:scripts": "vitest run",
"lint": "pnpm -r --if-present run lint",
"format:check": "pnpm -r --if-present run format:check",
"format": "pnpm -r --if-present run format",
"docs:build": "pnpm --dir apps/docs build",
"docs:dev": "pnpm --dir apps/docs start",
"docs:serve": "pnpm --dir apps/docs serve"
},
"dependencies": {
"croner": "^9.1.0"
},
"devDependencies": {
"vitest": "^3.0.0",
"@slack/socket-mode": "^2.0.0",
"@slack/web-api": "^7.0.0",
"@sinclair/typebox": "^0.34.0",
"chalk": "^5.6.2",
"diff": "^8.0.2"
},
"engines": {
"node": ">=20.0.0"
},
"pnpm": {
"overrides": {
"d3-array": "^3.2.0",
"d3-shape": "^3.2.0",
"d3-path": "^3.1.0",
"webpack": "5.98.0"
}
}
}