Docs · 05

Format berkas.

Semua di CommandAGI adalah berkas biasa yang bisa Anda baca, bandingkan, dan salin. Ini daftarnya.

Aturan

  • Hanya berkas biasa. Hal paling jauh yang dilakukan berkas adalah bertambah saat merekam — records.jsonl sebuah aliran, berkas media-nya, members.jsonl sebuah eksekusi. Tidak ada basis data tersembunyi, berkas penunjuk, atau paket.
  • Referensi berupa path dan id. Sebuah eksekusi memakai aset pada path-nya saat ini; tidak ada yang mengunci hash.
  • Folder adalah proyek. Tidak ada tata letak proyek yang di-hard-code ke dalam meja kerja.
  • Tingkat. Setiap definisi, dunia dan pengaturan bisa ada di cloud atau lokal, pada tingkat global, pengguna dan proyek, dan digabung dari yang luas ke yang spesifik.

Perangkat

devices/<id>/definition.tsx, dengan asetnya di sampingnya di devices/<id>/assets/ (misalnya model.glb). Definisi adalah kode: meja kerja menjalankannya dan membaca <device> yang dideklarasikannya.

Definisi menyebut mesinnya (name, manufacturer, model_number, product_url …), model 3D-nya (model), dan channels-nya:

tsx
export default () => (
  <device name="CNC 3018" manufacturer="…">
    <channel id="gcode" dir="duplex" medium="records" format="gcode-chat" dialect="grbl" transport="serial" baud={115200} />
  </device>
);

dir adalah in, out atau duplex; medium adalah records, video, audio atau bytes. Sebuah unit di dalam dunia bisa mengganti sebuah saluran.

Dunia

worlds/<id>/world.tsx, kode yang mendeklarasikan satu <world>:

tsx
export default () => (
  <world name="Shop floor" kind="physical">
    <space origin_mm={[0, 0, 0]} size_mm={[6000, 4000, 3000]} />
    <unit uid="mill-1" name="Mill" device="../../devices/cnc-3018/definition.tsx" position={[1200, 800, 0]} rotation={0} />
  </world>
);

Setiap perubahan di meja kerja ditulis kembali ke dalam kode sebagai perubahan terkecil.

kind adalah physical atau simulation. Sebuah dunia bisa menyebut adegan 3D (model, sebuah .3d.tsx) dan, jika dunia itu simulasi, sebuah berkas simulasi (sim, sebuah .sim.json). Dunia bukan model 3D, dan eksekusi bukan dunia.

Eksekusi dan aliran

runs/<run>/ adalah satu eksekusi di dalam satu dunia:

berkasisinya
run.jsonid, world, kind (session, recipe atau thread), started, ended, from (eksekusi dan waktu tempat ia dicabangkan)
members.jsonlsiapa dan apa yang ikut serta, ditambahkan saat mereka bergabung
steps.jsonllangkah-langkah sebuah resep
streams/<uid>.<channel>@<replica>/satu aliran: stream.json beserta datanya — records.jsonl, atau satu video.webm/.mp4, audio.webm/.mp4, atau data.bin
streams/chat@<replica>/obrolan sebuah percakapan
streams/sim@<replica>/, streams/sim-input@<replica>/bingkai sebuah simulasi dan masukan yang diterapkan padanya
evidence/berkas yang disimpan sebagai bukti

Sebuah rekaman adalah satu baris JSON:

json
{ "t": 7.180, "seq": 41, "hlc": "001790561647180-00000", "src": "operator", "kind": "note", "text": "agent:night-shift: run_program", "by": "agent:night-shift" }

src adalah device, sim atau operator; kind adalah command, event, ack, reply, state, evidence atau note; seq naik dengan ketat. Keadaan yang tidak diketahui ditulis { "kind": "state", "status": "unknown" }.

Dokumen

Setiap dokumen editor adalah satu berkas JSON — { "format": "commandagi-document", "kind", "title", "meta", "body" } — dengan aset besar di folder <name>.assets/ di sampingnya.

ekstensidibuka di
.3d.tsxdesain 3D (komponen, rakitan, adegan)
.cam.tsx, .slice.tsxdesain 3D dalam mode CAM dan pemotongan (slicing); program disimpan di sampingnya sebagai .gcode
.nest.tsxmode nesting pada aplikasi vektor (pekerjaan laser dan lembaran), dalam kode
.draw.tsx, .paint.tsx, .img.tsxmenggambar, melukis dan mengedit gambar, dalam kode; piksel tetap berupa berkas gambar di sampingnya
.vid.tsxeditor video, dalam kode; media tetap berupa berkas di sampingnya
.mus.tsxmusik, dalam kode
.geo.tsxruang kerja geoekonomi

Format lain

berkasisinya
<name>.sch.tsx + <name>.pcb.tsxsebuah sirkuit dalam kode: skematiknya, dan papan yang menamainya
<name>.sheet.tsx, <name>.page.tsx, <name>.deck.tsxlembar kerja, halaman dan dek slide, ditulis sebagai kode: lembar, dokumen dan dek yang ditulis editor ke dalam berkas pada setiap perubahan
<name>.sim.jsonsebuah simulasi
<name>.trials.jsonsebuah eksperimen: banyak eksekusi simulasi pada sapuan parameter
<name>.graph.jsonsebuah graf (pengetahuan, memori)
<name>.dashboard.tsxsebuah dasbor dalam kode: panel dan berkas yang ditampilkannya
<name>.geo.tsxsebuah proyek geoekonomi dalam kode
<name>.opgraph.tsxsebuah graf simpul dalam kode
<name>.task.tsx, <name>.project.tsxsebuah tugas dan sebuah proyek, dalam kode
<name>.market.jsonlpita, buku, pesanan dan posisi sebuah pasar
calendar/<calendar>/<event>.ics, contacts/<email>.vcfkalender dan kontak
.xlsx, .md, .pdf, .ipynb, .gcode, .step, .stl, .glb …dibuka apa adanya, di editor untuk jenisnya

Pengaturan

Pengaturan adalah berkas settings.json bergaya VS Code (komentar diperbolehkan), satu per tingkat, digabung dari yang luas ke yang spesifik: tingkat global cloud dan lokal, organisasi Anda, akun Anda, lalu komputer ini (~/.commandagi/settings.json) dan proyek ini (.commandagi/settings.json).

json
{
  "workbench.theme": "dark",
  "threads.agentControl": false,
  "devices.lanListener": true,
  "[.gcode]": { "editor.default": "gcode" }
}

Blok "[.ext]" menimpa pengaturan untuk satu ekstensi berkas.