@kl-c/matrixos 0.3.32 → 0.3.34

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/cli/index.js CHANGED
@@ -2163,7 +2163,7 @@ var package_default;
2163
2163
  var init_package = __esm(() => {
2164
2164
  package_default = {
2165
2165
  name: "@kl-c/matrixos",
2166
- version: "0.3.32",
2166
+ version: "0.3.34",
2167
2167
  description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
2168
2168
  main: "./dist/index.js",
2169
2169
  types: "dist/index.d.ts",
@@ -186945,6 +186945,7 @@ function ensureKanbanTable(db) {
186945
186945
  CREATE TABLE IF NOT EXISTS matrixos_kanban (
186946
186946
  id TEXT PRIMARY KEY,
186947
186947
  title TEXT NOT NULL,
186948
+ description TEXT NOT NULL DEFAULT '',
186948
186949
  agent TEXT NOT NULL DEFAULT 'Unknown',
186949
186950
  status TEXT NOT NULL DEFAULT 'pending',
186950
186951
  priority TEXT NOT NULL DEFAULT 'medium',
@@ -187220,7 +187221,7 @@ function createDataProvider(config5) {
187220
187221
  return board;
187221
187222
  try {
187222
187223
  ensureKanbanTable(db);
187223
- const rows = db.query("SELECT id, title, agent, status, priority, created_at, updated_at FROM matrixos_kanban ORDER BY updated_at DESC").all();
187224
+ const rows = db.query("SELECT id, title, description, agent, status, priority, created_at, updated_at FROM matrixos_kanban ORDER BY updated_at DESC").all();
187224
187225
  for (const row of rows) {
187225
187226
  const status2 = row.status;
187226
187227
  if (!board.columns[status2])
@@ -187228,6 +187229,7 @@ function createDataProvider(config5) {
187228
187229
  const task2 = {
187229
187230
  id: row.id,
187230
187231
  title: row.title,
187232
+ description: row.description || "",
187231
187233
  agent: row.agent || "Unknown",
187232
187234
  priority: row.priority ?? "medium",
187233
187235
  status: status2,
@@ -187251,7 +187253,7 @@ function createDataProvider(config5) {
187251
187253
  const now = Date.now();
187252
187254
  const status2 = input.status ?? "pending";
187253
187255
  const priority = input.priority ?? "medium";
187254
- db.query("INSERT INTO matrixos_kanban (id, title, agent, status, priority, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(id, input.title, input.agent ?? "Unknown", status2, priority, now, now);
187256
+ db.query("INSERT INTO matrixos_kanban (id, title, description, agent, status, priority, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(id, input.title, input.description ?? "", input.agent ?? "Unknown", status2, priority, now, now);
187255
187257
  return { ok: true, id };
187256
187258
  } catch (e) {
187257
187259
  return { ok: false, error: e instanceof Error ? e.message : String(e) };
@@ -187274,6 +187276,10 @@ function createDataProvider(config5) {
187274
187276
  sets.push("title = ?");
187275
187277
  params.push(input.title);
187276
187278
  }
187279
+ if (input.description !== undefined) {
187280
+ sets.push("description = ?");
187281
+ params.push(input.description);
187282
+ }
187277
187283
  if (input.agent !== undefined) {
187278
187284
  sets.push("agent = ?");
187279
187285
  params.push(input.agent);
@@ -2163,7 +2163,7 @@ var package_default;
2163
2163
  var init_package = __esm(() => {
2164
2164
  package_default = {
2165
2165
  name: "@kl-c/matrixos",
2166
- version: "0.3.32",
2166
+ version: "0.3.34",
2167
2167
  description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
2168
2168
  main: "./dist/index.js",
2169
2169
  types: "dist/index.d.ts",
@@ -187000,6 +187000,7 @@ function ensureKanbanTable(db) {
187000
187000
  CREATE TABLE IF NOT EXISTS matrixos_kanban (
187001
187001
  id TEXT PRIMARY KEY,
187002
187002
  title TEXT NOT NULL,
187003
+ description TEXT NOT NULL DEFAULT '',
187003
187004
  agent TEXT NOT NULL DEFAULT 'Unknown',
187004
187005
  status TEXT NOT NULL DEFAULT 'pending',
187005
187006
  priority TEXT NOT NULL DEFAULT 'medium',
@@ -187275,7 +187276,7 @@ function createDataProvider(config5) {
187275
187276
  return board;
187276
187277
  try {
187277
187278
  ensureKanbanTable(db);
187278
- const rows = db.query("SELECT id, title, agent, status, priority, created_at, updated_at FROM matrixos_kanban ORDER BY updated_at DESC").all();
187279
+ const rows = db.query("SELECT id, title, description, agent, status, priority, created_at, updated_at FROM matrixos_kanban ORDER BY updated_at DESC").all();
187279
187280
  for (const row of rows) {
187280
187281
  const status2 = row.status;
187281
187282
  if (!board.columns[status2])
@@ -187283,6 +187284,7 @@ function createDataProvider(config5) {
187283
187284
  const task2 = {
187284
187285
  id: row.id,
187285
187286
  title: row.title,
187287
+ description: row.description || "",
187286
187288
  agent: row.agent || "Unknown",
187287
187289
  priority: row.priority ?? "medium",
187288
187290
  status: status2,
@@ -187306,7 +187308,7 @@ function createDataProvider(config5) {
187306
187308
  const now = Date.now();
187307
187309
  const status2 = input.status ?? "pending";
187308
187310
  const priority = input.priority ?? "medium";
187309
- db.query("INSERT INTO matrixos_kanban (id, title, agent, status, priority, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)").run(id, input.title, input.agent ?? "Unknown", status2, priority, now, now);
187311
+ db.query("INSERT INTO matrixos_kanban (id, title, description, agent, status, priority, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(id, input.title, input.description ?? "", input.agent ?? "Unknown", status2, priority, now, now);
187310
187312
  return { ok: true, id };
187311
187313
  } catch (e) {
187312
187314
  return { ok: false, error: e instanceof Error ? e.message : String(e) };
@@ -187329,6 +187331,10 @@ function createDataProvider(config5) {
187329
187331
  sets.push("title = ?");
187330
187332
  params.push(input.title);
187331
187333
  }
187334
+ if (input.description !== undefined) {
187335
+ sets.push("description = ?");
187336
+ params.push(input.description);
187337
+ }
187332
187338
  if (input.agent !== undefined) {
187333
187339
  sets.push("agent = ?");
187334
187340
  params.push(input.agent);
@@ -241,6 +241,8 @@ body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-pr
241
241
  .modal-box .input{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px 12px;color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-body)}
242
242
  .modal-box select.input{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23a0a8b8' stroke-width='1.5'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px;cursor:pointer}
243
243
  .modal-box select.input option{background:var(--bg-elevated);color:var(--text-primary)}
244
+ .modal-box textarea.input{resize:vertical;min-height:60px;font-family:var(--font-body)}
245
+ .kanban-card-desc{font-size:var(--text-xs);color:var(--text-secondary);margin:4px 0 2px;line-height:1.4;max-height:60px;overflow:hidden}
244
246
  .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}
245
247
 
246
248
 
@@ -209,6 +209,7 @@ function renderKanban(){
209
209
  <div class="kanban-body">${
210
210
  tasks.length?tasks.map(t=>`<div class="kanban-card" draggable="true" ondragstart="onKanbanDragStart(event,'${t.id}')" ondblclick="openKanbanModal('${t.id}')">
211
211
  <div class="kanban-card-title">${escapeHtml(t.title)}</div>
212
+ ${t.description?`<div class="kanban-card-desc">${escapeHtml(t.description)}</div>`:''}
212
213
  <div class="kanban-card-meta"><span>${escapeHtml(t.agent)}</span><span class="prio ${t.priority}">${t.priority}</span></div>
213
214
  <button class="kanban-del" onclick="deleteKanbanTask('${t.id}')" title="Delete">×</button>
214
215
  </div>`).join(''):'<div style="padding:20px;text-align:center;color:var(--text-tertiary);font-size:var(--text-xs)">No tasks</div>'
@@ -242,7 +243,13 @@ async function onKanbanDrop(e){
242
243
  if(!task||task.status===status)return
243
244
  try{
244
245
  await API.kanbanUpdate({id,status})
246
+ // Move task object between column arrays in local state
247
+ for(const s of KANBAN_STATUSES){
248
+ kanbanData.columns[s]=(kanbanData.columns[s]||[]).filter(t=>t.id!==id)
249
+ }
245
250
  task.status=status
251
+ kanbanData.columns[status]=(kanbanData.columns[status]||[])
252
+ kanbanData.columns[status].unshift(task)
246
253
  renderKanban()
247
254
  }catch(err){alert('Erreur: '+err.message)}
248
255
  }
@@ -272,6 +279,7 @@ async function openKanbanModal(id){
272
279
  <div class="modal-box">
273
280
  <h3>${task?'Edit Task':'New Task'}</h3>
274
281
  <label>Title<input id="kbTitle" class="input" value="${task?escapeHtml(task.title):''}"></label>
282
+ <label>Description<textarea id="kbDesc" class="input" rows="3" placeholder="Détails de la tâche...">${task?escapeHtml(task.description||''):''}</textarea></label>
275
283
  <label>Agent<select id="kbAgent" class="input">
276
284
  ${agentOptions||'<option value="">—</option>'}
277
285
  </select></label>
@@ -291,15 +299,16 @@ async function openKanbanModal(id){
291
299
 
292
300
  async function saveKanban(id){
293
301
  const title=document.getElementById('kbTitle').value.trim()
302
+ const description=document.getElementById('kbDesc').value.trim()
294
303
  const agent=document.getElementById('kbAgent').value.trim()
295
304
  const priority=document.getElementById('kbPriority').value
296
305
  const status=document.getElementById('kbStatus').value
297
306
  if(!title){alert('Title required');return}
298
307
  try{
299
308
  if(id){
300
- await API.kanbanUpdate({id,title,agent,priority,status})
309
+ await API.kanbanUpdate({id,title,description,agent,priority,status})
301
310
  }else{
302
- const res=await API.kanbanCreate({title,agent,priority,status})
311
+ const res=await API.kanbanCreate({title,description,agent,priority,status})
303
312
  if(!res.ok){throw new Error(res.error||'create failed')}
304
313
  }
305
314
  document.querySelector('.modal-overlay')?.remove()
@@ -40,8 +40,9 @@ export interface CostSummary {
40
40
  export interface KanbanTask {
41
41
  id: string;
42
42
  title: string;
43
+ description?: string;
43
44
  agent: string;
44
- priority: "low" | "medium" | "high" | "critical";
45
+ priority: "low" | "medium" | "high" | "urgent";
45
46
  status: "pending" | "in_progress" | "completed" | "failed";
46
47
  createdAt: string;
47
48
  updatedAt: string;
package/dist/index.js CHANGED
@@ -368019,7 +368019,7 @@ function getCachedVersion(options = {}) {
368019
368019
  // package.json
368020
368020
  var package_default = {
368021
368021
  name: "@kl-c/matrixos",
368022
- version: "0.3.32",
368022
+ version: "0.3.34",
368023
368023
  description: "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
368024
368024
  main: "./dist/index.js",
368025
368025
  types: "dist/index.d.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kl-c/matrixos",
3
- "version": "0.3.32",
3
+ "version": "0.3.34",
4
4
  "description": "MaTrixOS \u2014 Agentic OS for OpenCode. Personalizable, communicating, self-improving, resilient.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",