neotoma 0.10.1 → 0.11.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/README.md +2 -2
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +7 -30
- package/dist/actions.js.map +1 -1
- package/dist/cli/aauth_signer.d.ts +9 -2
- package/dist/cli/aauth_signer.d.ts.map +1 -1
- package/dist/cli/aauth_signer.js +25 -7
- package/dist/cli/aauth_signer.js.map +1 -1
- package/dist/cli/agent_instructions_scan.d.ts +12 -3
- package/dist/cli/agent_instructions_scan.d.ts.map +1 -1
- package/dist/cli/agent_instructions_scan.js +55 -64
- package/dist/cli/agent_instructions_scan.js.map +1 -1
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +70 -7
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/harness_configure.d.ts +36 -0
- package/dist/cli/harness_configure.d.ts.map +1 -0
- package/dist/cli/harness_configure.js +42 -0
- package/dist/cli/harness_configure.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +330 -253
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/inspector_admin_unlock_url.d.ts +13 -0
- package/dist/cli/inspector_admin_unlock_url.d.ts.map +1 -0
- package/dist/cli/inspector_admin_unlock_url.js +36 -0
- package/dist/cli/inspector_admin_unlock_url.js.map +1 -0
- package/dist/cli/mcp_config_scan.d.ts +1 -0
- package/dist/cli/mcp_config_scan.d.ts.map +1 -1
- package/dist/cli/mcp_config_scan.js +34 -12
- package/dist/cli/mcp_config_scan.js.map +1 -1
- package/dist/cli/setup.d.ts +6 -2
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +26 -8
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/setup_runners.d.ts +16 -0
- package/dist/cli/setup_runners.d.ts.map +1 -0
- package/dist/cli/setup_runners.js +141 -0
- package/dist/cli/setup_runners.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/core/operations.d.ts +2 -2
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +2 -2
- package/dist/core/operations.js.map +1 -1
- package/dist/inspector/assets/{Combination-BM2JQOww.js → Combination-C22tNG3c.js} +1 -1
- package/dist/inspector/assets/{agent_badge-CpN0F7Uw.js → agent_badge-ihPeARQV.js} +1 -1
- package/dist/inspector/assets/{agent_detail-BiJ3HPkP.js → agent_detail-BtdIGuk2.js} +1 -1
- package/dist/inspector/assets/{agent_filter-BazKcQ9w.js → agent_filter-L0NhixFq.js} +1 -1
- package/dist/inspector/assets/{agent_grant_detail-DXgCn9N4.js → agent_grant_detail-DOfwRmj4.js} +1 -1
- package/dist/inspector/assets/{agent_grant_form-DZQjBAcw.js → agent_grant_form-D-_IJrLI.js} +1 -1
- package/dist/inspector/assets/{agent_grants-DCKfkpwq.js → agent_grants-BkUTzkwq.js} +1 -1
- package/dist/inspector/assets/{agents-ThrWnZTX.js → agents-C8qGnNCU.js} +1 -1
- package/dist/inspector/assets/{arrow-left-DaYPjbWH.js → arrow-left-C5PI116n.js} +1 -1
- package/dist/inspector/assets/{attribution_card-D8wccbDX.js → attribution_card-BKw4xb01.js} +1 -1
- package/dist/inspector/assets/{attribution_summary-Ds3UqXE_.js → attribution_summary-S6yX8918.js} +1 -1
- package/dist/inspector/assets/{card-gNKW1s0y.js → card-BKx8ifPf.js} +1 -1
- package/dist/inspector/assets/{check-CsKn_Wh2.js → check-D7bS4rbb.js} +1 -1
- package/dist/inspector/assets/{checkbox-Ckyj4vrh.js → checkbox-BE774kci.js} +1 -1
- package/dist/inspector/assets/{chevron-down-7OlcRYdt.js → chevron-down-DWeHLqJP.js} +1 -1
- package/dist/inspector/assets/{chevron-right-BLI_oHPA.js → chevron-right-D-MVwNt0.js} +1 -1
- package/dist/inspector/assets/{compliance-CBrpHE20.js → compliance-DIVlTxir.js} +1 -1
- package/dist/inspector/assets/{confirm-dialog--bNglOrP.js → confirm-dialog-DZ91UiLx.js} +1 -1
- package/dist/inspector/assets/{conversation_common-BtftGfBd.js → conversation_common-B9QrB_mG.js} +1 -1
- package/dist/inspector/assets/{conversation_detail-DcL600xx.js → conversation_detail-BX-DgWqj.js} +1 -1
- package/dist/inspector/assets/{copy_id_button-V_cdlRRU.js → copy_id_button-DbNXOvuH.js} +2 -2
- package/dist/inspector/assets/{corrections-CSny2Vo_.js → corrections-UTXmEFqm.js} +1 -1
- package/dist/inspector/assets/{dashboard-QDIRlmWG.js → dashboard-D7o1n0lS.js} +1 -1
- package/dist/inspector/assets/{data-table-qmF3Z4gV.js → data-table-DFBYvAjA.js} +1 -1
- package/dist/inspector/assets/{dialog-DYUGw6eQ.js → dialog-DE3AWlG_.js} +1 -1
- package/dist/inspector/assets/{dropdown-menu-F92-sh_x.js → dropdown-menu-BVwBx2B7.js} +1 -1
- package/dist/inspector/assets/{entities-Dsipnex_.js → entities-i3yWeDP0.js} +1 -1
- package/dist/inspector/assets/{entity_detail-BfgIPU8x.js → entity_detail-BJNaEXGZ.js} +1 -1
- package/dist/inspector/assets/{entity_link-Ux3LzoaM.js → entity_link-JLwqX81Y.js} +1 -1
- package/dist/inspector/assets/{external-link-CWkNK5Tk.js → external-link-BK31dJyN.js} +1 -1
- package/dist/inspector/assets/feedback-COEQSnd9.js +45 -0
- package/dist/inspector/assets/feedback_admin-CJnr7E0r.js +6 -0
- package/dist/inspector/assets/feedback_admin_unlock-BxcDo5G7.js +6 -0
- package/dist/inspector/assets/{graph_explorer-BmseNUoQ.js → graph_explorer-O8YY1xwo.js} +1 -1
- package/dist/inspector/assets/{index-BykFtejE.js → index-BKbdoU0r.js} +1 -1
- package/dist/inspector/assets/{index-DV_dUptd.js → index-Bb004UmS.js} +1 -1
- package/dist/inspector/assets/index-BgQagyt9.css +1 -0
- package/dist/inspector/assets/{index-DwNCMlAU.js → index-CisbTUN-.js} +1 -1
- package/dist/inspector/assets/{index-CYCtoVGs.js → index-DZyW9wwm.js} +7 -7
- package/dist/inspector/assets/{interpretations-CMfzQ1Ln.js → interpretations-Bz1Jx0gm.js} +1 -1
- package/dist/inspector/assets/interpretations-D0k7qwZ6.js +1 -0
- package/dist/inspector/assets/{json_viewer-Bq_YbebZ.js → json_viewer-1-geEBU4.js} +1 -1
- package/dist/inspector/assets/{label-Bl-6LEeg.js → label-DK8No7os.js} +1 -1
- package/dist/inspector/assets/{live_relative_time-B1_XT7na.js → live_relative_time-Ca29xr4q.js} +1 -1
- package/dist/inspector/assets/{observations-DBIz6sjx.js → observations-BEYPLgsw.js} +1 -1
- package/dist/inspector/assets/{page_shell-BEmO9wa5.js → page_shell-Z_K8-xVN.js} +1 -1
- package/dist/inspector/assets/{pagination-BUY-_ZUw.js → pagination-55slcMsJ.js} +1 -1
- package/dist/inspector/assets/{plus-CN3iw613.js → plus-Df5osCTJ.js} +1 -1
- package/dist/inspector/assets/{query_refresh_indicator-BvQCvZ7y.js → query_refresh_indicator-B2ayQ-9R.js} +1 -1
- package/dist/inspector/assets/{recent_activity-8sqCYQa2.js → recent_activity-D4P724bj.js} +1 -1
- package/dist/inspector/assets/{recent_conversations-Dm7bsH19.js → recent_conversations-B-iJ9x-v.js} +1 -1
- package/dist/inspector/assets/{recent_conversations-ZmrvYZt6.js → recent_conversations-BXAUdAC5.js} +1 -1
- package/dist/inspector/assets/{recent_records_feed-BCwEB-gO.js → recent_records_feed-Bm8kGd63.js} +1 -1
- package/dist/inspector/assets/{relationship_detail-AY29Q_zg.js → relationship_detail-BMhsfgCR.js} +1 -1
- package/dist/inspector/assets/{relationships-BfjaoQF3.js → relationships-BphnuyTR.js} +1 -1
- package/dist/inspector/assets/{relationships-C9JOmG6k.js → relationships-DBLA0hRd.js} +1 -1
- package/dist/inspector/assets/{sandbox-2sw7hAPG.js → sandbox-BWLbx8xY.js} +1 -1
- package/dist/inspector/assets/{schema_detail-BwWRhFNS.js → schema_detail-Den0dtKn.js} +1 -1
- package/dist/inspector/assets/{schemas-UX8RWzu0.js → schemas-CZNE7ILQ.js} +1 -1
- package/dist/inspector/assets/{search-sJaK1X54.js → search-BpeIvjlx.js} +1 -1
- package/dist/inspector/assets/{select-Sk4XRvus.js → select-vjNrYLub.js} +2 -2
- package/dist/inspector/assets/{settings-D9mhRMBN.js → settings-Db5j2L-M.js} +1 -1
- package/dist/inspector/assets/{source_detail-BAF1G5q0.js → source_detail-DAAnuO9d.js} +1 -1
- package/dist/inspector/assets/{source_link-DTok2HA9.js → source_link-B3bG6OoM.js} +1 -1
- package/dist/inspector/assets/{sources-DUcCw0Vc.js → sources-CqJaDvnU.js} +1 -1
- package/dist/inspector/assets/{switch-DepRZ0--.js → switch-N1yvDIln.js} +1 -1
- package/dist/inspector/assets/{tabs-B0Dy5is1.js → tabs-DDLnWpd7.js} +1 -1
- package/dist/inspector/assets/{textarea-pfrE_cJC.js → textarea-DwpRHIdg.js} +1 -1
- package/dist/inspector/assets/{timeline-Bh9ngotn.js → timeline-DGZTAraG.js} +1 -1
- package/dist/inspector/assets/{timeline-COztEDwn.js → timeline-DgfkLScO.js} +1 -1
- package/dist/inspector/assets/{timeline_event_detail-CN1g0r15.js → timeline_event_detail-GKr9VYPf.js} +1 -1
- package/dist/inspector/assets/{trash-2-CGNk7jcZ.js → trash-2-aTmwwD61.js} +1 -1
- package/dist/inspector/assets/{turn_detail-DYjGa2Qt.js → turn_detail-DJi1gGc5.js} +1 -1
- package/dist/inspector/assets/{turns-qZVfg6Dm.js → turns-oYp0HVIa.js} +1 -1
- package/dist/inspector/assets/{use_agents-B8yN5BKA.js → use_agents-GiTdp_mh.js} +1 -1
- package/dist/inspector/assets/{use_entities-l4hLQEUh.js → use_entities-CTSlt7S0.js} +1 -1
- package/dist/inspector/assets/use_interpretations-DUaKZMXF.js +1 -0
- package/dist/inspector/assets/{use_mutations-BjaD74zY.js → use_mutations-XlZmJD0t.js} +1 -1
- package/dist/inspector/assets/use_recent_conversations-vxIe2glX.js +1 -0
- package/dist/inspector/assets/{use_relationships-6dqoUmCP.js → use_relationships-Ct8x9Wl7.js} +1 -1
- package/dist/inspector/assets/{use_schemas-BkMuCTZx.js → use_schemas-DI772015.js} +1 -1
- package/dist/inspector/assets/{use_sources-Bu_vb2VA.js → use_sources-BSwgjmqJ.js} +1 -1
- package/dist/inspector/assets/{use_stats-DvcjJbZf.js → use_stats--S9rYQbr.js} +1 -1
- package/dist/inspector/assets/{use_timeline-BXlKLsFO.js → use_timeline-XjpDP_2Y.js} +1 -1
- package/dist/inspector/assets/{use_turns-BYjwOq0j.js → use_turns-DnqJYe1l.js} +1 -1
- package/dist/inspector/index.html +2 -2
- package/dist/mcp_instruction_doc.d.ts +11 -0
- package/dist/mcp_instruction_doc.d.ts.map +1 -0
- package/dist/mcp_instruction_doc.js +39 -0
- package/dist/mcp_instruction_doc.js.map +1 -0
- package/dist/proxy/mcp_stdio_proxy.d.ts.map +1 -1
- package/dist/proxy/mcp_stdio_proxy.js +23 -7
- package/dist/proxy/mcp_stdio_proxy.js.map +1 -1
- package/dist/server.d.ts +5 -8
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +37 -22
- package/dist/server.js.map +1 -1
- package/dist/services/agent_capabilities.d.ts +1 -1
- package/dist/services/agent_capabilities.d.ts.map +1 -1
- package/dist/services/agent_capabilities.js +7 -1
- package/dist/services/agent_capabilities.js.map +1 -1
- package/dist/services/agent_grants.d.ts.map +1 -1
- package/dist/services/agent_grants.js +1 -0
- package/dist/services/agent_grants.js.map +1 -1
- package/dist/services/dashboard_stats.d.ts.map +1 -1
- package/dist/services/dashboard_stats.js +3 -0
- package/dist/services/dashboard_stats.js.map +1 -1
- package/dist/services/observation_storage.js +1 -1
- package/dist/services/observation_storage.js.map +1 -1
- package/dist/services/root_landing/harness_snippets.js +1 -1
- package/dist/services/root_landing/harness_snippets.js.map +1 -1
- package/dist/services/root_landing/html_template.d.ts.map +1 -1
- package/dist/services/root_landing/html_template.js +12 -4
- package/dist/services/root_landing/html_template.js.map +1 -1
- package/dist/services/root_landing/md_template.d.ts.map +1 -1
- package/dist/services/root_landing/md_template.js +3 -0
- package/dist/services/root_landing/md_template.js.map +1 -1
- package/dist/shared/contract_mappings.d.ts.map +1 -1
- package/dist/shared/contract_mappings.js +4 -13
- package/dist/shared/contract_mappings.js.map +1 -1
- package/dist/shared/openapi_types.d.ts +3 -44
- package/dist/shared/openapi_types.d.ts.map +1 -1
- package/dist/tool_definitions.d.ts +1 -1
- package/dist/tool_definitions.d.ts.map +1 -1
- package/dist/tool_definitions.js +5 -40
- package/dist/tool_definitions.js.map +1 -1
- package/dist/utils/local_http_port_file.d.ts +16 -0
- package/dist/utils/local_http_port_file.d.ts.map +1 -0
- package/dist/utils/local_http_port_file.js +46 -0
- package/dist/utils/local_http_port_file.js.map +1 -0
- package/docs/developer/mcp/instructions.md +211 -0
- package/openapi.yaml +2 -17
- package/package.json +4 -3
- package/skills/store-data/SKILL.md +1 -3
- package/dist/inspector/assets/feedback-CJK1vjsI.js +0 -35
- package/dist/inspector/assets/index-BAvZ5vLC.css +0 -1
- package/dist/inspector/assets/interpretations-T0E9nJx-.js +0 -1
- package/dist/inspector/assets/use_interpretations-B_ssuETV.js +0 -1
- package/dist/inspector/assets/use_recent_conversations-BgZIIrU6.js +0 -1
package/README.md
CHANGED
|
@@ -100,8 +100,8 @@ The agent handles npm install, initialization, and MCP configuration. **Manual i
|
|
|
100
100
|
```bash
|
|
101
101
|
npm install -g neotoma
|
|
102
102
|
neotoma init
|
|
103
|
+
neotoma setup --tool <cursor|claude-code|codex> --yes
|
|
103
104
|
neotoma mcp config
|
|
104
|
-
neotoma mcp check --mcp-transport a
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
More options: [Docker](docs/developer/docker.md) | [CLI reference](docs/developer/cli_reference.md) | [Getting started](docs/developer/getting_started.md)
|
|
@@ -221,7 +221,7 @@ Neotoma exposes state via MCP. Local storage only in preview. Local built-in aut
|
|
|
221
221
|
|
|
222
222
|
**Setup guides:** [Cursor](https://neotoma.io/neotoma-with-cursor) · [Claude Code](https://neotoma.io/neotoma-with-claude-code) · [Claude](https://neotoma.io/neotoma-with-claude) · [ChatGPT](https://neotoma.io/neotoma-with-chatgpt) · [Codex](https://neotoma.io/neotoma-with-codex) · [OpenCode](docs/integrations/hooks/opencode.md) · [OpenClaw](https://neotoma.io/neotoma-with-openclaw) · [IronClaw](https://neotoma.io/neotoma-with-ironclaw)
|
|
223
223
|
|
|
224
|
-
For local source iteration, use the stable dev shim (`scripts/run_neotoma_mcp_stdio_dev_shim.sh`) or signed shim (`scripts/run_neotoma_mcp_signed_stdio_dev_shim.sh`) instead of pointing installed MCP clients at a `tsx watch` stdio process. `neotoma mcp
|
|
224
|
+
For local source iteration, use the stable dev shim (`scripts/run_neotoma_mcp_stdio_dev_shim.sh`) or signed shim (`scripts/run_neotoma_mcp_signed_stdio_dev_shim.sh`) instead of pointing installed MCP clients at a `tsx watch` stdio process. `neotoma mcp config` defaults to **`b`** for low-friction local stdio setup; use **`a`** for signed + AAuth HTTP `/mcp` proxy entries when the Neotoma API is running, **`c`** for direct stdio, or **`d`** when both MCP entries should target prod.
|
|
225
225
|
|
|
226
226
|
**Agent behavior contract:** Store first, retrieve before storing, extract entities from user input, create tasks for commitments, and attach bounded host context such as repository name/root scope when available. Full instructions: [MCP instructions](docs/developer/mcp/instructions.md) and [CLI agent instructions](docs/developer/cli_agent_instructions.md).
|
|
227
227
|
|
package/dist/actions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AA4G9B,OAAO,EAyBL,KAAK,wBAAwB,EAE9B,MAAM,4BAA4B,CAAC;AA+BpC,eAAO,MAAM,GAAG,6CAAY,CAAC;AAygB7B;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAU5D;AA4PD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;AAiyHD,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAuDF,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,4BAA4B,EAAE,iBAAiB,CAAC;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;;;;;;;;;;;;;cA+gBS,MAAM;gBACJ,MAAM;2BACK,MAAM;qBACZ,MAAM;mBACR,MAAM;wBACD,MAAM;uBACP,MAAM;;;;;mBA3JV,MAAM;qBACJ,MAAM;wBACH,MAAM,GAAG,IAAI;2BACV,MAAM;;wBAET,MAAM;uBACP,MAAM,EAAE;wBACP,MAAM;uBACP,MAAM;;kBA9NX,MAAM;oBACJ,MAAM;yBACD,MAAM;4BACH,MAAM;2BACP,MAAM;;+BA4NF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;;;2BAkFlC,MAAM;0BACP,MAAM;0BACN,MAAM;;;;;;;;GAsG3B;AAmhED,wBAAsB,eAAe;;;eA8FpC"}
|
package/dist/actions.js
CHANGED
|
@@ -10,6 +10,7 @@ import { db } from "./db.js";
|
|
|
10
10
|
import { config } from "./config.js";
|
|
11
11
|
import fs from "fs";
|
|
12
12
|
import path from "path";
|
|
13
|
+
import { writeLocalHttpPortFile } from "./utils/local_http_port_file.js";
|
|
13
14
|
import yaml from "js-yaml";
|
|
14
15
|
import { ensurePublicKeyRegistered, getPublicKey, getUserIdFromBearerToken, isBearerTokenValid, } from "./services/public_key_registry.js";
|
|
15
16
|
import { verifyRequest, parseAuthHeader } from "./crypto/auth.js";
|
|
@@ -43,7 +44,7 @@ import { resolveSandboxReportTransport } from "./services/sandbox/transport.js";
|
|
|
43
44
|
import { getSqliteDb } from "./repositories/sqlite/sqlite_client.js";
|
|
44
45
|
import { getMcpAuthToken } from "./crypto/mcp_auth_token.js";
|
|
45
46
|
import { isOauthKeyCredentialValid, normalizeOauthNextPath, OAuthKeySessionStore, } from "./services/oauth_key_gate.js";
|
|
46
|
-
import { AnalyzeSchemaCandidatesRequestSchema, CorrectEntityRequestSchema, CreateInterpretationRequestSchema, CreateRelationshipsRequestSchema, CreateRelationshipRequestSchema, DeleteEntityRequestSchema, DeleteRelationshipRequestSchema, EntitiesQueryRequestSchema, EntitySnapshotRequestSchema, FieldProvenanceRequestSchema, GetSchemaRecommendationsRequestSchema, ListObservationsRequestSchema, ListRelationshipsRequestSchema, MergeEntitiesRequestSchema, SplitEntityRequestSchema, ObservationsQueryRequestSchema, RegisterSchemaRequestSchema, RelationshipSnapshotRequestSchema, RestoreEntityRequestSchema, RestoreRelationshipRequestSchema, RetrieveEntityByIdentifierSchema, RetrieveGraphNeighborhoodSchema, RetrieveRelatedEntitiesSchema, StoreRequestSchema,
|
|
47
|
+
import { AnalyzeSchemaCandidatesRequestSchema, CorrectEntityRequestSchema, CreateInterpretationRequestSchema, CreateRelationshipsRequestSchema, CreateRelationshipRequestSchema, DeleteEntityRequestSchema, DeleteRelationshipRequestSchema, EntitiesQueryRequestSchema, EntitySnapshotRequestSchema, FieldProvenanceRequestSchema, GetSchemaRecommendationsRequestSchema, ListObservationsRequestSchema, ListRelationshipsRequestSchema, MergeEntitiesRequestSchema, SplitEntityRequestSchema, ObservationsQueryRequestSchema, RegisterSchemaRequestSchema, RelationshipSnapshotRequestSchema, RestoreEntityRequestSchema, RestoreRelationshipRequestSchema, RetrieveEntityByIdentifierSchema, RetrieveGraphNeighborhoodSchema, RetrieveRelatedEntitiesSchema, StoreRequestSchema, UpdateSchemaIncrementalRequestSchema, } from "./shared/action_schemas.js";
|
|
47
48
|
import { getMimeTypeFromExtension } from "./services/file_text_extraction.js";
|
|
48
49
|
import { queryEntitiesWithCount } from "./shared/action_handlers/entity_handlers.js";
|
|
49
50
|
import { retrieveEntityByIdentifierWithFallback } from "./shared/action_handlers/entity_identifier_handler.js";
|
|
@@ -4053,7 +4054,7 @@ export async function storeStructuredForApi(params) {
|
|
|
4053
4054
|
const entityTypes = entities
|
|
4054
4055
|
.map((entity) => entity?.entity_type)
|
|
4055
4056
|
.filter((t) => typeof t === "string" && t.length > 0);
|
|
4056
|
-
enforceAgentCapability("
|
|
4057
|
+
enforceAgentCapability("store", entityTypes, capabilityCtx);
|
|
4057
4058
|
const relationshipOp = Array.isArray(relationships) && relationships.length > 0;
|
|
4058
4059
|
if (relationshipOp) {
|
|
4059
4060
|
enforceAgentCapability("create_relationship", entityTypes, capabilityCtx);
|
|
@@ -4069,7 +4070,7 @@ export async function storeStructuredForApi(params) {
|
|
|
4069
4070
|
.filter((t) => typeof t === "string" && t.length > 0);
|
|
4070
4071
|
assertCanWriteProtectedBatch({
|
|
4071
4072
|
entity_types: entityTypes,
|
|
4072
|
-
op: "
|
|
4073
|
+
op: "store",
|
|
4073
4074
|
identity: getCurrentAgentIdentity(),
|
|
4074
4075
|
admission: getCurrentAAuthAdmission(),
|
|
4075
4076
|
});
|
|
@@ -4663,33 +4664,6 @@ if (isSandboxMode()) {
|
|
|
4663
4664
|
app.post("/sandbox/aauth-only/store", writeRateLimit, aauthRequired, handleStorePost);
|
|
4664
4665
|
logger.info("[Sandbox] AAuth-required write route enabled at POST /sandbox/aauth-only/store");
|
|
4665
4666
|
}
|
|
4666
|
-
// POST /api/store/unstructured - Store raw file (base64), optional AI interpretation
|
|
4667
|
-
app.post("/store/unstructured", async (req, res) => {
|
|
4668
|
-
const parsed = StoreUnstructuredRequestSchema.safeParse(req.body);
|
|
4669
|
-
if (!parsed.success) {
|
|
4670
|
-
logWarn("ValidationError:store_unstructured", req, { issues: parsed.error.issues });
|
|
4671
|
-
return sendValidationError(res, parsed.error.issues);
|
|
4672
|
-
}
|
|
4673
|
-
try {
|
|
4674
|
-
const userId = await getAuthenticatedUserId(req, parsed.data.user_id);
|
|
4675
|
-
const response = await storeUnstructuredForApi({
|
|
4676
|
-
userId,
|
|
4677
|
-
fileContent: parsed.data.file_content,
|
|
4678
|
-
mimeType: parsed.data.mime_type,
|
|
4679
|
-
idempotencyKey: parsed.data.idempotency_key,
|
|
4680
|
-
originalFilename: parsed.data.original_filename,
|
|
4681
|
-
});
|
|
4682
|
-
return res.status(200).json(response);
|
|
4683
|
-
}
|
|
4684
|
-
catch (error) {
|
|
4685
|
-
if (error instanceof Error && error.message.includes("Not authenticated")) {
|
|
4686
|
-
return sendError(res, 401, "AUTH_REQUIRED", error.message);
|
|
4687
|
-
}
|
|
4688
|
-
logError("APIError:store_unstructured", req, error);
|
|
4689
|
-
const message = error instanceof Error ? error.message : "Failed to store unstructured file";
|
|
4690
|
-
return sendError(res, 500, "DB_QUERY_FAILED", message);
|
|
4691
|
-
}
|
|
4692
|
-
});
|
|
4693
4667
|
// POST /api/observations/query - Query observations
|
|
4694
4668
|
app.post("/observations/query", async (req, res) => {
|
|
4695
4669
|
const parsed = ObservationsQueryRequestSchema.safeParse(req.body);
|
|
@@ -6152,6 +6126,9 @@ export async function startHTTPServer() {
|
|
|
6152
6126
|
}
|
|
6153
6127
|
// eslint-disable-next-line no-console
|
|
6154
6128
|
console.log(`HTTP Actions listening on :${boundPort}`);
|
|
6129
|
+
if (process.env.NODE_ENV !== "test") {
|
|
6130
|
+
writeLocalHttpPortFile(config.projectRoot, boundPort);
|
|
6131
|
+
}
|
|
6155
6132
|
// Start background OAuth state cleanup job
|
|
6156
6133
|
import("./services/mcp_oauth.js").then((oauth) => {
|
|
6157
6134
|
oauth.startStateCleanupJob();
|