dorsaltegmentum/lt-suite
v0.2.4AGPL-3.0-or-later
Unofficial tools to capture, draft, diagram, fill and export Lt learning modules.
commands
- node
scripts
- lt-module-answer
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/approvals.py
- scripts/_shared/ltcore/boundaries.py
- scripts/_shared/ltcore/check_answer.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/quarantine.py
184 more
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/reconcile.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/stamp.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
- scripts/_shared/ltcore/validate.py
- scripts/page_kinds.py
- scripts/question_digest.py
- scripts/reconcile.py
- scripts/resolve_week.py
- scripts/scan_quarantine.py
- scripts/validate_answers.py
- lt-module-capture
- scripts/_shared/browser/cache_status.js
- scripts/_shared/browser/guard.js
- scripts/_shared/browser/lt_guard.js
- scripts/_shared/browser/lt_net.js
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/approvals.py
- scripts/_shared/ltcore/boundaries.py
- scripts/_shared/ltcore/check_answer.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/ltjs.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/reconcile.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
- scripts/_shared/ltcore/validate.py
- scripts/browser/capture.js
- scripts/browser/fetch_media.js
- scripts/collect_downloads.py
- scripts/media_plan.py
- scripts/sink.py
- scripts/stamp_capture.py
- lt-module-export
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/approvals.py
- scripts/_shared/ltcore/boundaries.py
- scripts/_shared/ltcore/check_answer.py
- scripts/_shared/ltcore/cleaners.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/fonts.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/palettes.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/quarantine.py
- scripts/_shared/ltcore/raster.py
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/reconcile.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/stamp.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
- scripts/_shared/ltcore/validate.py
- scripts/export_module.py
- scripts/module_pdf.py
- scripts/module_pdf_qc.py
- scripts/pdf_base.py
- lt-module-fill
- scripts/_shared/browser/cache_status.js
- scripts/_shared/browser/guard.js
- scripts/_shared/browser/lt_guard.js
- scripts/_shared/browser/lt_net.js
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/approvals.py
- scripts/_shared/ltcore/boundaries.py
- scripts/_shared/ltcore/check_answer.py
- scripts/_shared/ltcore/cleaners.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/fonts.py
- scripts/_shared/ltcore/ltjs.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/palettes.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/reconcile.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
- scripts/_shared/ltcore/validate.py
- scripts/annotate_micrograph.py
- scripts/browser/check_answer.js
- scripts/browser/confirm_dialog.js
- scripts/browser/fill_lib.js
- scripts/browser/fill_runner.js
- scripts/browser/model_answer.js
- scripts/browser/probe_panels.js
- scripts/browser/upload.js
- scripts/emit_fill.py
- scripts/gridref.py
- scripts/make_fill_report.py
- scripts/page_kinds.py
- scripts/plan_fill.py
- lt-suite-setup
- scripts/_catalog.py
- scripts/_shared/browser/cache_status.js
- scripts/_shared/browser/guard.js
- scripts/_shared/browser/lt_guard.js
- scripts/_shared/browser/lt_net.js
- scripts/_shared/lt_chrome/lt-chrome.cjs
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/approvals.py
- scripts/_shared/ltcore/boundaries.py
- scripts/_shared/ltcore/check_answer.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/fonts.py
- scripts/_shared/ltcore/ltjs.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/palettes.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/reconcile.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
- scripts/_shared/ltcore/validate.py
- scripts/browser/ping.js
- scripts/build_ledger.py
- scripts/improve.py
- scripts/preview.py
- scripts/setup.py
- mechanistic-diagram
- engine/_bootstrap.py
- engine/_legacy.py
- engine/access.py
- engine/anki_cards.py
- engine/artifact_logic.js
- engine/artifact_ui.js
- engine/autoplace.py
- engine/build.py
- engine/case.py
- engine/casekit.py
- engine/consistency.py
- engine/core.py
- engine/decor.py
- engine/diffviz.py
- engine/drawio.py
- engine/finalize.py
- engine/floor.py
- engine/fontset.py
- engine/grade_prep.py
- engine/guideline.py
- engine/icons.py
- engine/layout_engine.py
- engine/make_artifact.py
- engine/mkverify.py
- engine/new_case.py
- engine/opt.py
- engine/recolour.py
- engine/regress.py
- engine/render.py
- engine/style.py
- engine/textrules.py
- engine/themes.py
- engine/variant_build.py
- examples/toy-case/artifact_content.py
- examples/toy-case/content.py
- examples/toy-case/layout.py
- scripts/_shared/ltcore/__init__.py
- scripts/_shared/ltcore/cleaners.py
- scripts/_shared/ltcore/config.py
- scripts/_shared/ltcore/digest.py
- scripts/_shared/ltcore/fonts.py
- scripts/_shared/ltcore/page_kinds.py
- scripts/_shared/ltcore/palettes.py
- scripts/_shared/ltcore/paths.py
- scripts/_shared/ltcore/rat.py
- scripts/_shared/ltcore/requirements.py
- scripts/_shared/ltcore/store.py
- scripts/_shared/ltcore/streams.py
- scripts/_shared/ltcore/tomlw.py
plugin.json
- name
- lt-suite
- version
- 0.2.4
- description
- Unofficial tools to capture, draft, diagram, fill and export Lt learning modules.
- author
- dorsaltegmentumhttps://github.com/dorsaltegmentum
- license
- AGPL-3.0-or-later
mcp.json
- lt-chromestdionode -e (function(a){var fs=require('fs'),P=require('path'),os=require('os'),cp=require('child_process');var R=[],via='unknown',L=null;a.forEach(function(s){var i=s.indexOf('='),k=s.slice(0,i),v=s.slice(i+1);if(k=='root'){if(v.indexOf('$')==-1){if(P.isAbsolute(v)){R.push(v)}}}else if(k=='via'){if(v.replace(/[a-z0-9._-]/g,'')==''){if(v.length){if(v.slice(0,40)==v){via=v}}}}});R.forEach(function(r){if(L==null){var f=P.join(r,'skills/lt-suite-setup/scripts/_shared/lt_chrome/lt-chrome.cjs');if(fs.existsSync(f)){L=f}}});if(L){require(L).main(a);return}var e=process.env;['LT_SUITE_CONFIG','XDG_CONFIG_HOME','XDG_CACHE_HOME','APPDATA','LOCALAPPDATA'].forEach(function(q){var v=e[q];if(v){if(v.indexOf('$')==-1){return}}delete e[q]});var p=process.platform,W=p=='win32',x=e.XDG_CACHE_HOME,h=e.HOME?e.HOME:os.homedir(),c;if(W){h=e.USERPROFILE?e.USERPROFILE:h;c=P.join(e.LOCALAPPDATA?e.LOCALAPPDATA:P.join(h,'AppData','Local'),'lt-suite','cache')}else if(p=='darwin'){c=P.join(h,'Library','Caches','lt-suite')}else{c=P.join(x?(P.isAbsolute(x)?x:P.join(h,'.cache')):P.join(h,'.cache'),'lt-suite')}var d=P.join(c,'lt-chrome','run'),w=process.cwd(),r=R.length?'no lt-chrome launcher under the plugin folder':'this agent did not pass the plugin folder',why=r;try{d=P.join(d,require('crypto').createHash('sha256').update(fs.readFileSync(process.execPath)).digest('hex'));fs.mkdirSync(d,{recursive:true,mode:448});fs.writeFileSync(P.join(d,'package.json'),'{}');var b=P.join(d,'node_modules','.bin');fs.mkdirSync(b,{recursive:true,mode:448});if(W){var N=P.join(b,'node.exe'),S=false;if(fs.existsSync(N)){S=fs.readFileSync(N).equals(fs.readFileSync(process.execPath))}if(S==false){fs.copyFileSync(process.execPath,N)}}else{var q=String.fromCharCode(39),Q=String.fromCharCode(34);[['node',process.execPath],['sh','/bin/sh']].forEach(function(t){var s=q+t[1].split(q).join(q+'\\'+q+q)+q;fs.writeFileSync(P.join(b,t[0]),String.fromCharCode(35,33)+'/bin/sh\nexec '+s+' '+Q+'$@'+Q+'\n',{mode:448})})}w=d}catch(z){why=r+'; '+d+' is not writable, so npx runs in the agent folder'}process.stderr.write('lt-chrome: '+why+'; it runs as in lt-suite 0.1.0 (auto-connect, browser settings ignored). Run setup.py lt-chrome snippet to use your settings.\n');var n=P.dirname(process.execPath),j=[P.join(n,'node_modules','npm','bin','npx-cli.js'),P.join(n,'..','lib','node_modules','npm','bin','npx-cli.js')].filter(function(f){return fs.existsSync(f)})[0];var A=['--no-workspaces', '-y', 'chrome-devtools-mcp@1.12.0', '--autoConnect', '--no-usage-statistics', '--no-performance-crux', '--no-category-input', '--no-category-network', '--no-category-memory', '--no-category-performance', '--no-category-emulation', '--redact-network-headers'];var v={};Object.keys(e).forEach(function(q){var u=W?q.toUpperCase():q;if(u.indexOf('CHROME_DEVTOOLS_MCP_')==0){return}if(u=='PLUGIN_DATA'){return}v[q]=e[q]});if(W){v.PATHEXT='.EXE;.CMD;.BAT'}v.CHROME_DEVTOOLS_MCP_NO_CONFIG_DISCOVERY='1';v.CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS='1';var o={stdio:'inherit',cwd:w,env:v,shell:false},k;if(j){k=cp.spawn(process.execPath,[j].concat(A),o)}else if(W){o.shell=true;k=cp.spawn('npx '+A.join(' '),o)}else{k=cp.spawn('npx',A,o)}k.on('spawn',function(){try{fs.writeFileSync(P.join(c,'lt-chrome','last-fallback-'+via+'.json'),JSON.stringify({time:new Date().toISOString(),lt_suite_version:'0.2.4',via:via,action:'fallback',reason:r}))}catch(z){}});['SIGINT','SIGTERM','SIGHUP'].forEach(function(s){process.on(s,function(){k.kill(s)})});k.on('error',function(){process.exit(1)});k.on('exit',function(c2){process.exit(c2==null?1:c2)})})(process.argv.slice(1)) -- via=mcp.json root=${PLUGIN_ROOT}
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "lt-suite",
"version": "0.2.4",
"description": "Unofficial tools to capture, draft, diagram, fill and export Lt learning modules.",
"homepage": "https://github.com/dorsaltegmentum/lt-suite",
"repository": "https://github.com/dorsaltegmentum/lt-suite",
"license": "AGPL-3.0-or-later",
"keywords": [
"lt",
"learning-module",
"agent-skills",
"study",
"diagram",
"pdf"
],
"author": {
"name": "dorsaltegmentum",
"url": "https://github.com/dorsaltegmentum"
}
}
What else this package ships
These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.
- 163Python files
- 25JavaScript files
- 69JSON files
- 26text files
- 22configuration files
- 8fonts
- 2other files
- clearance.svg