icoa-cli 2.19.450 → 2.19.452
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/dist/commands/ai4ctf.js +1 -1
- package/dist/commands/ctf4ai-demo.js +1 -1
- package/dist/commands/ctf4vla.js +1 -1
- package/dist/commands/demo2.js +1 -1
- package/dist/commands/exam.js +1 -1
- package/dist/commands/learn.js +1 -1
- package/dist/commands/sim.js +1 -1
- package/dist/commands/sprint.js +1 -1
- package/dist/lib/open-file.d.ts +27 -1
- package/dist/lib/open-file.js +1 -1
- package/dist/lib/sprint-meta.d.ts +7 -0
- package/dist/lib/sprint-meta.js +1 -1
- package/package.json +1 -1
package/dist/lib/sprint-meta.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,join as i}from"node:path";import{fileURLToPath as
|
|
1
|
+
import{existsSync as e,readFileSync as t}from"node:fs";import{dirname as n,join as i}from"node:path";import{fileURLToPath as o}from"node:url";const a=n(o(import.meta.url));export function sprintDataPath(t){const n=[i(a,"..","data",t),i(a,"..","..","src","data",t)];for(const t of n)if(e(t))return t;return n[0]}let r=null;export function loadSprintTasks(){if(r)return r;try{const e=JSON.parse(t(sprintDataPath("sprint-tasks.json"),"utf8"));r=Array.isArray(e?.tasks)?e.tasks.slice().sort((e,t)=>e.seq-t.seq):[]}catch{r=[]}return r}export function sprintTaskForComp(e){if(!e)return null;const t=e.trim().toLowerCase();return loadSprintTasks().find(e=>(e.comp||"").toLowerCase()===t)??null}export function taskSteps(e){const t=[];return e.media&&t.push(`teleload ${e.media.pack}`),"teleload"===e.status?t.length>0?t:[`teleload ${e.comp??""}`.trim()]:(e.comp&&t.push(`kaggle ${e.comp}`),t)}export function baselineChip(e,t){const n=(e.baseline||"").trim();if(!n)return"";if("none"===n)return t?"📊 无 baseline — 特征要你自己建(见下)":"📊 no baseline — you build the features (below)";if("pack"===n)return t?"📊 官方 baseline.ipynb 在数据包里":"📊 the pack ships the official baseline.ipynb";const i=t?`📊 开箱 baseline ${n}`:`📊 out-of-the-box baseline ${n}`;return/\b0\.(0\d|1\d|2\d)/.test(n)||/\b0\.000/.test(n)?i+(t?" — 线性模型对这题本就无效,不是坏了":" — a linear model cannot express this task; not a bug"):i}export function computeChip(e,t){return e.needs_gpu?t?"⚡ 数据大/训练重 · GPU 可选 —— baseline 本机就能跑":"⚡ heavy (GPU optional) — the baseline still runs on your laptop":t?"💻 CPU 可做 · 现在就能开":"💻 CPU is enough · start now"}export function computeLegend(e){return e?" ⚡ 数据大/训练重(GPU 可选,baseline 本机就能跑) · teleload 数据是大包,用 teleload 拉 · 可出分 交上去有真分数":" ⚡ heavy — GPU optional, the baseline still runs locally · teleload big pack, pull with teleload · scored real score on submit"}function s(e,t){switch(e){case"audio":return t?"本机 aienv:scipy.io.wavfile.read → numpy → scipy.signal 求谱(没有 librosa)· GPU 箱上 librosa/torchaudio 都有":"on your laptop: scipy.io.wavfile.read → numpy → scipy.signal (no librosa here) · on the GPU box librosa/torchaudio both exist";case"image":return t?"PIL.Image.open 读图 → numpy":"PIL.Image.open → numpy";case"weights":return t?"torch.load(..., weights_only=True) 读权重(输入就是模型)":"torch.load(..., weights_only=True) — the model IS the input here";default:return t?"先解开包里的压缩档再读":"unpack the archive inside the pack first"}}export function mediaHelpLines(e,t){const n=e.media;if(!n)return[];const i="audio"===n.kind?t?"音频":"audio":"image"===n.kind?t?"图片":"images":"weights"===n.kind?t?"模型权重":"model weights":t?"附件档":"an archive",o="none"===(e.baseline||"").trim()?t?`⚠ 这题的信号在${i}里,CSV 只有 id 和标签 —— 通用 starter 会在第 3 格停下。`:`⚠ The signal is in the ${i}; the CSVs carry only ids and labels — the generic starter stops at cell 3.`:t?`⚠ 真信号在${i}里。只喂 CSV 也能跑完,但分数接近瞎猜(${e.baseline})。`:`⚠ The real signal is in the ${i}. CSV-only does finish, but scores near chance (${e.baseline}).`;return t?[o,`▸ 先拉数据(${n.mb}MB):teleload ${n.pack}`,`▸ 然后把 FEATURES 那一格换成:${s(n.kind,!0)}`,...n.glob?[` 文件在 <数据目录>/${n.glob}`]:[]]:[o,`▸ Pull it first (${n.mb}MB): teleload ${n.pack}`,`▸ Then replace the FEATURES cell: ${s(n.kind,!1)}`,...n.glob?[` files live at <data dir>/${n.glob}`]:[]]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "icoa-cli",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.452",
|
|
4
4
|
"description": "ICOA CLI — The world's first CLI-native cyber & AI security olympiad terminal: AI4CTF (Day 1), CTF4AI (Day 2), VLA4CTF (Pioneer Round — embodied AI)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|