This package is the VS Code-specific extension surface for the ai-provenance repo.
It intentionally lives under ides/vscode because the repo itself is broader than one IDE.
Marketplace Release
0.2.0 is the first Marketplace-oriented minor release for the provenance-side TRACEABLE package.
It is aimed at operators who need bounded provenance work in VS Code rather than broad autonomous orchestration.
Install path:
- open the VS Code Extensions view
- search for
Tiinex Traceable Provenance - install the extension published by
tiinex
Release highlights in 0.2.0:
- bounded TRACEABLE child-lane execution through
#runTraceableSubagent - bounded role and model discovery through
#listTraceableAgentsand#listTraceableModels - reconstructed
.trace.mdevidence inspection through#viewTraceableSubagent - provenance-owned TRACEABLE viewer UX with reopen-to-source and reopen-to-markdown-preview flows
- persisted runtime-decision visibility for model selection and request routing in evidence artifacts
Quick Start
After you install the extension in VS Code, the shortest useful first flow is:
- type
#in chat and pick#listTraceableAgentsor#listTraceableModels - run one narrow lane with
#runTraceableSubagent - inspect the returned evidence file with
#viewTraceableSubagent
The important operator detail is that chat usually exposes the prompt-reference names after #, not the raw internal tool ids. In practice you should expect #listTraceableAgents, not list_traceable_agents.
What To Expect
This package is built for bounded provenance-first TRACEABLE work.
- It helps you preflight roles and models before a run.
- It can export and reopen
.trace.mdevidence artifacts when the lane requestsexportToFolderor when the user explicitly chooses export. - It is designed for narrow investigation slices, not broad autonomous orchestration.
- In chat, the first-class invocation surface is usually
#plus the prompt reference name.
Marketplace Fit
This extension is a good fit when you want to:
- run a bounded TRACEABLE lane against one narrow investigative slice
- export
.trace.mdevidence and inspect it without rerunning the child lane - inspect runtime decisions, request contracts, lineage, and outcome surfaces from one evidence artifact
- keep provenance-oriented tooling separate from Local-chat session-store and delete tooling
This extension is not trying to be:
- a general autonomous agent framework
- a replacement for
ai-vscode-toolsLocal-chat/store workflows - a hidden tool-routing layer with opaque evidence output
Current status:
- buildable as a real VS Code extension
- ready for local main-host junction linking on Windows
- now carries the provenance-side TRACEABLE tool surface:
list_traceable_agents,list_traceable_models,view_traceable_subagent, andrun_traceable_subagent - now also carries the reconstructed
.trace.mdevidence viewer UX with source/preview reopen commands on the provenance side - now also carries the first host-independent TRACEABLE contract slice: request/result, request-envelope, payload extraction, result construction, full markdown rendering, and evidence-related types
- now carries release-check, VSIX packaging, and semantic-version scripts for Marketplace-oriented delivery
Current included surface:
Tiinex: Inspect TRACEABLE Evidenceparses the embeddedTraceable Stateblock from a.trace.mdfile and lets you choose a bounded surface without rerunning the child laneOpen Reconstructed Traceable Viewopens a provenance-owned reconstructed viewer for a.trace.mdartifact, can reopen back into source or markdown preview, and is now anchored with the built-in Explorer open/navigation actions rather than the custom Traceable command block- Explorer rename or move on a
.trace.mdfile now uses a trace-aware move model withAlone,Lineage, andUnmodified. WhenLineageis available, TRACEABLE only offers the meaningful scope variants for the selected file, such asLeaves,Branch, orTree, and rewrites affectedparentTracePathreferences for the files it carries. - When multiple
.trace.mdfiles are moved together, TRACEABLE now normalizes overlapping selections so the highest selected parent in the same branch wins over selected descendants before lineage planning runs. Multi-select lineage moves only exposeLeavesorBranch, andtiinex.aiProvenance.traceableDefaultMultiSelectLineageScopecan preselect that multi-select lineage strategy. tiinex.aiProvenance.traceableDefaultMoveActioncan now preselect the move-sideAlone,Lineage, orUnmodifiedaction instead of always prompting, andtiinex.aiProvenance.traceableDefaultCopyActionreserves the same shape for the upcoming copy flowRewrite Move Trace...provides an explicit trace-aware rewrite move from the Explorer so the extension can compute the final destination filename before renaming, which avoids the host collision prompt path that ordinary drag-and-drop can still hitCopy Trace...provides the explicit trace-aware copy path from the Explorer and now shares the sameAloneorLineagedecision model as the move-side surface- native Explorer copy/paste of existing
.trace.mdartifacts is intentionally fail-closed: VS Code create hooks do not expose the source trace or replace intent, so TRACEABLE removes those created copies and directs you toCopy Trace...instead of leaving behind an untracked duplicate - native Explorer drag/drop and cut/paste moves of existing
.trace.mdartifacts across folders now reuse the trace-aware move takeover on the current host surface when the destination stays inside the same workspace folder as the source artifact - native Explorer move attempts that escape the source workspace folder remain fail-closed; TRACEABLE stops them rather than letting
.trace.mdartifacts land in a different repo root or the org root Return to Parent Trace...provides an explicit path back to the selected trace's current parent location, skips itself when the selected trace has no readable parent or is already in the parent folder, and reuses the sameAlone,Lineage, andUnmodifieddecision model as the interactive rename flow. The Explorer menu now shows it only for.trace.mdfiles whose current parsedparentTracePathresolves to a different folder than the selected file.Add File to Traceable Chatis now present as an Explorer placeholder near the normal chat-attachment area; it is intentionally not implemented yet and will later target the Traceable UX chat composerlist_traceable_agentsexposes the bounded workspace-supported traceable agent catalog from the provenance sidelist_traceable_modelsexposes the bounded runtime-discoverable traceable model catalog from the provenance siderun_traceable_subagentruns the provenance-owned TRACEABLE child-lane runtime with optional evidence export support- current bounded surfaces: rendered-output, request-summary, summary, outcome, tool-ledger, status-history, tool-summary, file-summary, and state-json
- a separate provenance LM tool namespace is now present through
list_traceable_agents,list_traceable_models,view_traceable_subagent, andrun_traceable_subagent - provenance-specific settings now live under
tiinex.aiProvenance.*
What it exposes in VS Code:
- display name:
Tiinex Traceable Provenance - LM tool surfaces:
list_traceable_agents,list_traceable_models,view_traceable_subagent,run_traceable_subagent - command namespace:
tiinex.aiProvenance.* - settings namespace:
tiinex.aiProvenance.* - TRACEABLE panel/status shell under the provenance namespace
Canonical tool usage:
Canonical prompt references in chat:
#listTraceableAgents: use this first when you want a grounded role-backed run; copy the exact returned display name or file path intorun_traceable_subagent.agentRoleinstead of guessing a role label.#listTraceableModels: use this first when you need explicit model control; prefersendableOnly: true, narrow withquerywhen useful, and treat entries markedPolicy: blockedas non-selectable forrun_traceable_subagent.#runTraceableSubagent: choose the input mode deliberately.OPERATIVE,EPISTEMIC, andNON_LEADING_EPISTEMICuse the classicuserInputplusparentTaskform.DIRECTuses onlyuserInputwhile still allowing lineage and runtime overrides.RESUMErequiresparentTracePathand resumes without any freshuserInput,parentTask, orparentFrame.#viewTraceableSubagent: after a run returns an evidence file, inspect that artifact before rerunning the child lane; start withsummaryoroutcome, then usetool-ledgerorstate-jsononly when deeper debugging is needed.
Input mode quick guide:
OPERATIVE: requiresuserInputandparentTask; use this for bounded operational delegation, with optionalparentTracePathfor continuation and handover.EPISTEMIC: requiresuserInputandparentTask; use this for inquiry-shaped delegation where the parent still carries the bounded task contract.NON_LEADING_EPISTEMIC: requiresuserInputandparentTask; use this when the child should preserve a non-leading investigative contract and surface input-mode validation explicitly.DIRECT: requires onlyuserInput; use this for a live-chat-like fresh turn, optionally withparentTracePath, but without inheriting or injectingparentTaskorparentFrame.RESUME: requiresparentTracePath; use this for strict prompt-free continuation. Do not pass freshuserInput,parentTask, orparentFramehere.
Canonical examples:
- Role-grounded preflight flow:
#listTraceableAgents->#runTraceableSubagentwithagentRole->#viewTraceableSubagenton the returned evidence file. - Model-grounded preflight flow:
#listTraceableModels-> copy one allowed exact model id ->#runTraceableSubagentwithmodelSelector.id->#viewTraceableSubagenton the returned evidence file. - Recovery flow: if a run already produced
.trace.mdthroughexportToFolderor explicit export, inspect it with#viewTraceableSubagentbefore launching another lane.
Example payloads:
OPERATIVE:{ "inputMode": "OPERATIVE", "userInput": "Read README.md and summarize the current validation gap.", "parentTask": "Produce a bounded operational summary grounded in the named file.", "allowedToolNames": ["copilot_readFile"], "budgetPolicy": { "maxIterations": 2, "maxToolCalls": 2 } }DIRECT:{ "inputMode": "DIRECT", "userInput": "What changed in the last trace and what should I inspect next?", "parentTracePath": "ai-provenance/.topics/m3-lineage-chain/01-anchor.trace.md", "modelSelector": { "id": "copilot/gpt-5-mini" } }RESUME:{ "inputMode": "RESUME", "parentTracePath": "ai-provenance/.topics/m3-lineage-chain/01-anchor.trace.md", "allowedToolNames": ["copilot_readFile", "view_traceable_subagent"], "reveal": true }
The DIRECT and RESUME examples above omit budgetPolicy intentionally so the child sees live-like conditions and any undeclared runtime fail-safe stays internal. Add budgetPolicy only when you want the child to treat that budget as part of the explicit request contract.
When budgetPolicy is omitted, TRACEABLE falls back to the hidden runtime fail-safe settings tiinex.aiProvenance.traceableUndeclaredMaxIterations and tiinex.aiProvenance.traceableUndeclaredMaxToolCalls instead of surfacing a synthesized default budget to the child.
Local development loop:
- This section is for extension contributors rather than Marketplace-first users.
npm testbuilds and runs the current validation slicenpm run package:vsixproduces a local VSIX for install testingnpm run release:checkis the release gate used before publishing
Release flow:
npm testnpm run package:vsixnpm run release:checknpm run release:patch,npm run release:minor,npm run release:majornpm run publish:vsce
Non-goal for this package scaffold:
- no MCP server surface
- no extra agent runtime surface
- no claim of native
runSubagentUX parity or of broader host-private agent enumeration beyond the bounded provenance traceable surfaces