feat: purge legacy agent hosts and land vault Chrome extension path

Retire ACP/Hermes/OpenCode surfaces and rename hermes_tools to
mnote_agent_tools so Page AI stays on Pi Lab only. Add Chrome vault
extension + extension token route, pre-release purge design, and soft-retire
legacy smokes for the small-group production cut.
This commit is contained in:
Agent Board
2026-07-25 14:25:37 +08:00
parent bc6f8488ee
commit 262e66b02e
137 changed files with 9018 additions and 46049 deletions
@@ -63,7 +63,7 @@ async function main() {
assert.equal(register.status, 200, JSON.stringify(register));
assert.equal(register.payload.sessionId, bridgeSessionId);
const implicit = await requestJson("/api/hermes/tools/mnote/call", {
const implicit = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_implicit", {
address: "A1",
@@ -73,7 +73,7 @@ async function main() {
assert.equal(implicit.status, 400, JSON.stringify(implicit));
assert.equal(implicit.headers["x-error-code"], "mnote_onlyoffice_session_explicit_required");
const forbidden = await requestJson("/api/hermes/tools/mnote/call", {
const forbidden = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_forbidden", {
onlyofficeSessionId: bridgeSessionId,
@@ -88,7 +88,7 @@ async function main() {
assert.equal(forbidden.status, 403, JSON.stringify(forbidden));
assert.equal(forbidden.headers["x-error-code"], "mnote_onlyoffice_resource_scope_forbidden");
const missingScope = await requestJson("/api/hermes/tools/mnote/call", {
const missingScope = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_missing_scope", {
onlyofficeSessionId: bridgeSessionId,
@@ -99,7 +99,7 @@ async function main() {
assert.equal(missingScope.status, 403, JSON.stringify(missingScope));
assert.equal(missingScope.headers["x-error-code"], "mnote_onlyoffice_resource_scope_required");
const allowed = await requestJson("/api/hermes/tools/mnote/call", {
const allowed = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_allowed", {
onlyofficeSessionId: bridgeSessionId,
@@ -117,7 +117,7 @@ async function main() {
assert.equal(allowed.payload.result.action, "sheet.set_value");
assert.equal(allowed.payload.audit.effect, "dry_run");
const currentImplicit = await requestJson("/api/hermes/tools/mnote/call", {
const currentImplicit = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_current_implicit", {
aiAccessScope: {
@@ -129,7 +129,7 @@ async function main() {
assert.equal(currentImplicit.status, 400, JSON.stringify(currentImplicit));
assert.equal(currentImplicit.headers["x-error-code"], "mnote_onlyoffice_session_explicit_required");
const currentForbidden = await requestJson("/api/hermes/tools/mnote/call", {
const currentForbidden = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_current_forbidden", {
onlyofficeSessionId: bridgeSessionId,
@@ -142,7 +142,7 @@ async function main() {
assert.equal(currentForbidden.status, 403, JSON.stringify(currentForbidden));
assert.equal(currentForbidden.headers["x-error-code"], "mnote_onlyoffice_resource_scope_forbidden");
const currentAllowed = await requestJson("/api/hermes/tools/mnote/call", {
const currentAllowed = await requestJson("/api/mnote/tools/call", {
method: "POST",
body: JSON.stringify(callPayload("sess_http_current_allowed", {
onlyofficeSessionId: bridgeSessionId,