79 lines
5.5 KiB
Markdown
79 lines
5.5 KiB
Markdown
# Capability Source Matrix
|
|
|
|
Date: 2026-07-09
|
|
Stage: B source discovery
|
|
Evidence index: `docs/source-discovery/2026-07-09-n12-pre-zyl-index.md`
|
|
|
|
## Source priority
|
|
|
|
1. Existing bridge / API / local service.
|
|
2. Local data, log, cache, or database source.
|
|
3. UIA helper source through C# WinHelper.
|
|
4. Network/protocol source.
|
|
5. Mock source for tests only.
|
|
|
|
## Matrix
|
|
|
|
| MCP tool | Primary source | Fallback source | Evidence file | Decision status | Next implementation slice |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| `isphere_receive_messages` | `zyl\iSphere\8c5e81a7f6dd1169.10083\27000000\Account\90005981\MsgLib.db` | `zyl\Impp\Account\90005981\MsgLib.db` plus `Smark.SendReceive`, `SaveToDB`, and `PacketReader.ProcessPacket` logs | `docs/source-discovery/2026-07-09-n12-pre-zyl-index.md#first-extraction-target-list` | selected for schema inspection; implementation starts after message table mapping is confirmed | first |
|
|
| `isphere_search_contacts` | contact/conversation/person tables inside `MsgLib.db`, if schema exposes display names or account ids | infer from message rows; then UIA helper source through current WinHelper if DB lacks contact display names | `docs/source-discovery/2026-07-09-n12-pre-zyl-index.md#msglibdb-candidates` | candidate pending DB schema inspection | second |
|
|
| `isphere_search_groups` | group/conversation tables inside `MsgLib.db`, if schema exposes group ids or group display names | infer from group-message rows; then UIA helper source through current WinHelper if DB lacks group display names | `docs/source-discovery/2026-07-09-n12-pre-zyl-index.md#msglibdb-candidates` | candidate pending DB schema inspection | third |
|
|
| `isphere_receive_files` | importal hashed document cache mapped through `MsgLib.db` attachment/file-reference rows | `Smark.SendReceive` and `SaveToDB` logs for file-reference traces | `docs/source-discovery/2026-07-09-n12-pre-zyl-index.md#receiveddocument-cache-candidates` | candidate pending DB schema and cache-reference inspection | fourth |
|
|
|
|
## Stage C entry rule
|
|
|
|
Open implementation only after the selected row links to a concrete file or directory in the evidence index and the schema/log inspection notes state which fields map to the MCP output contract.
|
|
|
|
## Stage B2 extraction and inspection order
|
|
|
|
| Order | Target | Why | Expected output |
|
|
| --- | --- | --- | --- |
|
|
| 1 | `zyl\iSphere\8c5e81a7f6dd1169.10083\27000000\Account\90005981\MsgLib.db` | latest visible iSphere message DB; best candidate for `isphere_receive_messages` | schema summary, table list, sample redacted row shapes |
|
|
| 2 | `zyl\Impp\Account\90005981\MsgLib.db` | same account id in older/parallel IMPP tree | schema comparison with iSphere DB |
|
|
| 3 | `zyl\Impp\Account\27091282\MsgLib.db` | largest DB, likely richer schema/data variety | schema comparison and attachment/contact table clues |
|
|
| 4 | `zyl\importal\localcache\8c5e81a7f6dd1169.10083\27000000\Log\90005981\SaveToDB\2026-07-07_1.log` | may reveal which DB table receives message data | log field summary and DB/table clues |
|
|
| 5 | `zyl\importal\localcache\8c5e81a7f6dd1169.10083\27000000\Log\90005981\Smark.SendReceive\2026-07-07_1.log` | send/receive trace near latest DB timestamp | message-id or payload-shape clues |
|
|
| 6 | `zyl\importal\localcache\8c5e81a7f6dd1169.10083\27000000\Log\90005981\PacketReader.ProcessPacket\2026-07-07_1.log` | packet processing trace near latest DB timestamp | packet-to-message mapping clues |
|
|
| 7 | `zyl\importal\localcache\8c5e81a7f6dd1169.10083\27000000\Log\90005981\LoginInfo\2026-07-07_1.log` | account/session context for source mapping | account id and environment context |
|
|
|
|
## Tool-by-tool decision notes
|
|
|
|
### `isphere_receive_messages`
|
|
|
|
Selected first because the latest `90005981` iSphere `MsgLib.db` and same-day logs align around `2026-07-07 15:30-15:43`. Stage B2 must inspect the DB schema and produce a field mapping for:
|
|
|
|
- message id
|
|
- conversation id or peer id
|
|
- sender id/name
|
|
- timestamp
|
|
- message body or content reference
|
|
- attachment/file reference if present
|
|
|
|
After schema mapping, Stage C can start with a local DB-backed source abstraction before registering the business MCP tool.
|
|
|
|
### `isphere_search_contacts`
|
|
|
|
Candidate path is DB-first. If the DB contains contact/person tables, use those. If not, derive a minimal contact search result from message conversation rows and sender/peer identifiers, then use UIA as fallback for display-name enrichment.
|
|
|
|
### `isphere_search_groups`
|
|
|
|
Candidate path is DB-first. If the DB contains group/conversation tables, use those. If not, infer group-like conversations from message rows and use UIA as fallback for display-name enrichment.
|
|
|
|
### `isphere_receive_files`
|
|
|
|
Candidate path is DB/cache mapping. The hashed `zyl\importal\<hash>` directories appear to hold received document cache files. This tool needs DB/log references to map those hashed directories back to conversations/messages before implementation.
|
|
|
|
## Stage C first slice recommendation
|
|
|
|
Start Stage C with a narrow `isphere_receive_messages` source abstraction:
|
|
|
|
1. Extract the selected DB/log files into `runs/offline-evidence-intake/zyl-qqfile-20260709/extracted/`.
|
|
2. Inspect schema and record a schema note under `docs/source-discovery/`.
|
|
3. Implement a local DB source interface only after the table/field mapping is confirmed.
|
|
4. Keep MCP registration as the next commit after the source abstraction test passes.
|
|
|
|
## Stop condition for this matrix
|
|
|
|
If DB schema inspection shows no message table or no usable message fields, do not start Stage C implementation. Return to Stage B and promote the log source or UIA helper source to the first candidate.
|