harness-wingman 0.9.3 → 0.9.4

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.
@@ -618,6 +618,10 @@ var init_render = __esm({
618
618
  "packages/i18n/dist/catalog/en/render.js"() {
619
619
  "use strict";
620
620
  render_default = {
621
+ "panel.render.originExec": "Codex CLI \xB7 exec",
622
+ "panel.render.originCli": "Codex CLI",
623
+ "panel.render.originDesktop": "Codex Desktop",
624
+ "panel.render.originSource": "Source: session_meta.originator / source",
621
625
  "panel.render.projectsPageTitle": "Project overview",
622
626
  "panel.render.projectsPageHint": "Goals, progress and decisions across your coding apps.",
623
627
  "panel.render.controlsPageHint": "Manage tools, preferences and how you return to a session.",
@@ -746,9 +750,6 @@ var init_render = __esm({
746
750
  "panel.render.sourceClickToExpandThePanel": "{p0} \xB7 {p1}{p2}\nSource: {p3}; click to expand the panel",
747
751
  "panel.render.compactPillSource": "{p0} \xB7 {p1}{p2}\nSource: {p3}",
748
752
  "panel.render.project": "Project",
749
- "panel.render.inTheLiveStream": "In the live stream",
750
- "panel.render.events": "events",
751
- "panel.render.entries": "entries",
752
753
  "panel.render.residentTok": "Resident {p0} tok",
753
754
  "panel.render.residentTotal": "Resident total",
754
755
  "panel.render.totalResidentTokensOfEnabledItems": "Total = resident tokens of enabled items across all slots; ",
@@ -1176,12 +1177,17 @@ var init_render = __esm({
1176
1177
  "panel.render.branchCurrentPointsSource": "Source: currentPoints within this top-level node subtree",
1177
1178
  "panel.render.noCurrentBranchProvided": "No current branch provided",
1178
1179
  "panel.render.currentTaskLabel": "Current task",
1180
+ "panel.render.morePoints": "{count} more items",
1181
+ "panel.render.oneMorePoint": "{count} more item",
1179
1182
  "panel.render.sourceFirstScreenCurrentPointsLength": "Source: firstScreen.currentPoints.length",
1180
1183
  "panel.render.parallel": "Parallel",
1181
1184
  "panel.render.thePlanHasNoStepMarked": "The plan has no step marked in progress",
1182
1185
  "panel.render.recentActivityLabel": "Recent activity",
1183
1186
  "panel.render.thePlanHasNoSteps": "The plan has no steps",
1184
1187
  "panel.render.planTree": "Plan tree",
1188
+ "panel.render.fullRecord": "Full record",
1189
+ "panel.render.completedMilestones": "{count} completed \xB7 Latest: {name}",
1190
+ "panel.render.completedMilestonesSource": "Source: completed or cancelled top-level plan.nodes; latest in document order",
1185
1191
  "panel.render.sessionsNotLinkedToAStep": "Sessions not linked to a step",
1186
1192
  "panel.render.sourcePlanLastGood": "Source: plan.lastGood",
1187
1193
  "panel.render.lastReadableVersion": "Last readable version",
@@ -1887,6 +1893,10 @@ var init_render2 = __esm({
1887
1893
  "packages/i18n/dist/catalog/zh/render.js"() {
1888
1894
  "use strict";
1889
1895
  render_default2 = {
1896
+ "panel.render.originExec": "Codex CLI \xB7 exec",
1897
+ "panel.render.originCli": "Codex CLI",
1898
+ "panel.render.originDesktop": "Codex \u684C\u9762\u7248",
1899
+ "panel.render.originSource": "\u6765\u6E90:session_meta.originator / source",
1890
1900
  "panel.render.projectsPageTitle": "\u9879\u76EE\u603B\u89C8",
1891
1901
  "panel.render.projectsPageHint": "\u96C6\u4E2D\u67E5\u770B\u5404\u4E2A\u7F16\u7A0B\u5DE5\u5177\u4E2D\u7684\u76EE\u6807\u3001\u8FDB\u5EA6\u548C\u5F85\u51B3\u4E8B\u9879\u3002",
1892
1902
  "panel.render.controlsPageHint": "\u7BA1\u7406\u5DE5\u5177\u3001\u504F\u597D\u8BBE\u7F6E\uFF0C\u4EE5\u53CA\u8FD4\u56DE\u4F1A\u8BDD\u7684\u65B9\u5F0F\u3002",
@@ -2015,9 +2025,6 @@ var init_render2 = __esm({
2015
2025
  "panel.render.sourceClickToExpandThePanel": "{p0} \xB7 {p1}{p2}\n\u6765\u6E90:{p3};\u70B9\u51FB\u5C55\u5F00\u9762\u677F",
2016
2026
  "panel.render.compactPillSource": "{p0} \xB7 {p1}{p2}\n\u6765\u6E90:{p3}",
2017
2027
  "panel.render.project": "\u9879\u76EE",
2018
- "panel.render.inTheLiveStream": "\u5B9E\u51B5\u6D41\u5185",
2019
- "panel.render.events": "\u4E8B\u4EF6",
2020
- "panel.render.entries": "\u6761",
2021
2028
  "panel.render.residentTok": "\u5E38\u9A7B {p0} tok",
2022
2029
  "panel.render.residentTotal": "\u5E38\u9A7B\u5408\u8BA1",
2023
2030
  "panel.render.totalResidentTokensOfEnabledItems": "\u5408\u8BA1 = \u5404\u69FD\u4F4D\u542F\u7528\u6761\u76EE\u7684\u5E38\u9A7B token \u4E4B\u548C;",
@@ -2445,12 +2452,17 @@ var init_render2 = __esm({
2445
2452
  "panel.render.branchCurrentPointsSource": "\u6765\u6E90:currentPoints \u4E2D\u5C5E\u4E8E\u8BE5\u9876\u5C42\u8282\u70B9\u5B50\u6811\u7684\u5F53\u524D\u70B9",
2446
2453
  "panel.render.noCurrentBranchProvided": "\u5C1A\u672A\u63D0\u4F9B\u6240\u5728\u5206\u652F",
2447
2454
  "panel.render.currentTaskLabel": "\u5F53\u524D\u4EFB\u52A1",
2455
+ "panel.render.morePoints": "\u8FD8\u6709 {count} \u9879",
2456
+ "panel.render.oneMorePoint": "\u8FD8\u6709 {count} \u9879",
2448
2457
  "panel.render.sourceFirstScreenCurrentPointsLength": "\u6765\u6E90:firstScreen.currentPoints.length",
2449
2458
  "panel.render.parallel": "\u5E76\u884C",
2450
2459
  "panel.render.thePlanHasNoStepMarked": "\u8BA1\u5212\u672A\u6807\u8BB0\u8FDB\u884C\u4E2D\u6B65\u9AA4",
2451
2460
  "panel.render.recentActivityLabel": "\u6700\u8FD1\u6D3B\u52A8",
2452
2461
  "panel.render.thePlanHasNoSteps": "\u8BA1\u5212\u6CA1\u6709\u6B65\u9AA4",
2453
2462
  "panel.render.planTree": "\u8BA1\u5212\u6811",
2463
+ "panel.render.fullRecord": "\u5B8C\u6574\u8BB0\u5F55",
2464
+ "panel.render.completedMilestones": "\u5DF2\u5B8C\u6210 {count} \u9879 \xB7 \u6700\u8FD1:{name}",
2465
+ "panel.render.completedMilestonesSource": "\u6765\u6E90:plan.nodes \u4E2D\u5DF2\u5B8C\u6210\u6216\u5DF2\u53D6\u6D88\u7684\u9876\u5C42\u8282\u70B9;\u6700\u8FD1\u9879\u6309\u6587\u6863\u987A\u5E8F",
2454
2466
  "panel.render.sessionsNotLinkedToAStep": "\u672A\u5173\u8054\u5230\u6B65\u9AA4\u7684\u4F1A\u8BDD",
2455
2467
  "panel.render.sourcePlanLastGood": "\u6765\u6E90:plan.lastGood",
2456
2468
  "panel.render.lastReadableVersion": "\u4E0A\u6B21\u53EF\u89E3\u6790\u7248\u672C",
@@ -16741,6 +16753,25 @@ var init_protocol3 = __esm({
16741
16753
  }
16742
16754
  });
16743
16755
 
16756
+ // packages/adapter-codex/dist/session-origin.js
16757
+ function describeSessionOrigin(originator, source) {
16758
+ if (!originator)
16759
+ return void 0;
16760
+ const raw = source ? `${originator} / ${source}` : originator;
16761
+ let key = "other";
16762
+ if (originator === "codex_exec") {
16763
+ key = source === "exec" ? "exec" : "cli";
16764
+ } else if (originator === "codex_work_desktop" || originator === "Codex Desktop") {
16765
+ key = "desktop";
16766
+ }
16767
+ return { key, raw };
16768
+ }
16769
+ var init_session_origin = __esm({
16770
+ "packages/adapter-codex/dist/session-origin.js"() {
16771
+ "use strict";
16772
+ }
16773
+ });
16774
+
16744
16775
  // packages/adapter-codex/dist/protocol-user.js
16745
16776
  import { homedir as homedir13 } from "node:os";
16746
16777
  import { join as join22, resolve as resolve10 } from "node:path";
@@ -16773,6 +16804,7 @@ var dist_exports3 = {};
16773
16804
  __export(dist_exports3, {
16774
16805
  HOOK_EVENTS: () => HOOK_EVENTS,
16775
16806
  createAdapter: () => createAdapter3,
16807
+ describeSessionOrigin: () => describeSessionOrigin,
16776
16808
  feedbackSignals: () => feedbackSignalsCodex,
16777
16809
  installProtocolCodex: () => installProtocolCodex,
16778
16810
  installProtocolCodexUser: () => installProtocolCodexUser,
@@ -16805,6 +16837,7 @@ var init_dist6 = __esm({
16805
16837
  init_plugin_tools();
16806
16838
  init_protocol3();
16807
16839
  init_scan2();
16840
+ init_session_origin();
16808
16841
  init_protocol_user2();
16809
16842
  }
16810
16843
  });
@@ -17361,6 +17394,8 @@ function parseSessionMeta(payload, timestamp) {
17361
17394
  assignString(line, "cwd", optionalString(payload?.cwd));
17362
17395
  assignString(line, "cliVersion", optionalString(payload?.cli_version));
17363
17396
  assignString(line, "modelProvider", optionalString(payload?.model_provider));
17397
+ assignString(line, "originator", optionalString(payload?.originator));
17398
+ assignString(line, "source", optionalString(payload?.source));
17364
17399
  return line;
17365
17400
  }
17366
17401
  function parseTurnContext(payload, timestamp) {
@@ -19335,7 +19370,7 @@ function resolveWingmanVersion({ defined, moduleUrl = import.meta.url, readPacka
19335
19370
  return void 0;
19336
19371
  }
19337
19372
  function wingmanVersion() {
19338
- const defined = false ? void 0 : "0.9.3";
19373
+ const defined = false ? void 0 : "0.9.4";
19339
19374
  return resolveWingmanVersion({
19340
19375
  defined,
19341
19376
  readPackage: (url) => JSON.parse(readFileSync17(url, "utf8"))
@@ -20067,12 +20102,14 @@ function createNarrativeService(options = {}) {
20067
20102
  const infos = [...sessions.values()].map((session) => {
20068
20103
  const user = overlayEntries[`${harness}:${session.id}`];
20069
20104
  const lastActivity = lastActivityOf(session);
20105
+ const state = deriveCached(harness, session, configuredPlugins, configuredMcpServers);
20070
20106
  return {
20071
20107
  id: session.id,
20108
+ ...state.origin === void 0 ? {} : { origin: state.origin },
20072
20109
  label: session.projectResolution?.isHome ? t("narrative.homeDirectory") : session.label ?? shortSessionId(session.id),
20073
20110
  ...session.cwd === void 0 ? {} : { cwd: session.cwd },
20074
20111
  lastActivity,
20075
- waiting: deriveCached(harness, session, configuredPlugins, configuredMcpServers).waiting !== null,
20112
+ waiting: state.waiting !== null,
20076
20113
  ended: isEnded(session, nowIso),
20077
20114
  archived: user?.archived === true,
20078
20115
  archivedHasNewActivity: user?.archived === true && user.archivedAt !== void 0 && Date.parse(lastActivity) > Date.parse(user.archivedAt),
@@ -20296,6 +20333,7 @@ function createNarrativeService(options = {}) {
20296
20333
  id: session.id,
20297
20334
  label,
20298
20335
  ended: info?.ended ?? false,
20336
+ ...state?.origin === void 0 ? {} : { origin: state.origin },
20299
20337
  ...state?.skillsUsed === void 0 ? {} : { skillsUsed: state.skillsUsed },
20300
20338
  title: attachedTitle !== void 0 ? { text: attachedTitle, source: "plan.md \u6B65\u9AA4" } : planInstruction !== void 0 ? { text: truncate(planInstruction, DETAIL_LIMIT), source: "\u8BA1\u5212\u6240\u5C5E\u6307\u4EE4" } : instructionTitle !== void 0 ? { text: truncate(instructionTitle, DETAIL_LIMIT), source: "\u6700\u65B0\u6307\u4EE4" } : { text: label, source: "\u5DE5\u4F5C\u76EE\u5F55" },
20301
20339
  user: {
@@ -21040,9 +21078,16 @@ function derive(harness, session, nowIso, configuredPlugins, configuredMcpServer
21040
21078
  const skillsUsed = harness === "cc" ? observedSkills(lines2) : [];
21041
21079
  const mcpUsed = harness === "cc" ? observedMcpServers(lines2, configuredMcpServers) : [];
21042
21080
  const pluginsUsed = harness === "codex" ? observedPlugins(codexLines, configuredPlugins) : [];
21081
+ const meta = session.codexLines.find((line) => line.kind === "session_meta");
21043
21082
  return {
21044
21083
  harness,
21045
21084
  sessionId: session.id,
21085
+ ...harness !== "codex" || !meta?.originator ? {} : {
21086
+ origin: {
21087
+ originator: meta.originator,
21088
+ ...meta.source === void 0 ? {} : { source: meta.source }
21089
+ }
21090
+ },
21046
21091
  transcriptPath: session.transcriptPath ?? null,
21047
21092
  ...skillsUsed.length === 0 ? {} : { skillsUsed },
21048
21093
  ...mcpUsed.length === 0 ? {} : { mcpUsed },
@@ -0,0 +1 @@
1
+ :root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--pill: #050505;--ink: #ffffff;--ink2: #c3c2b7;--muted: #898781;--hairline: rgba(255, 255, 255, .1);--grid: #2c2c2a;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--warn: #fab219;--bad: #e5534b;--fs-1: 18px;--fs-2: 14px;--fs-3: 12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--page);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:28px 16px 48px}.wrap{display:flex;width:100%;max-width:100%;min-width:0;flex-direction:column;align-items:center}.pill{display:flex;max-width:min(100%,640px);min-width:0;align-items:center;gap:10px;background:var(--pill);border:1px solid var(--hairline);border-radius:999px;padding:10px 18px;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 8px 30px #0000008c;transition:transform .15s ease}.pill:hover{transform:scale(1.03)}.dot{width:8px;height:8px;border-radius:50%;background:var(--s1);animation:pulse 1.6s infinite;flex:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.dot.quiet{animation:none;background:var(--muted);opacity:.6}.dot.live{background:var(--s3);box-shadow:0 0 8px #199e70cc}.pill .t1{font-size:13px;font-weight:600;flex:none}.pill .t2{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ink2)}.pill .chev{color:var(--muted);font-size:11px;flex:none}.dot.wait{background:var(--warn);box-shadow:0 0 8px #fab219cc;animation:pulse 1.2s infinite}.pill.waiting{border-color:#fab2198c}.pill.waiting .t2{color:var(--warn)}.panel{display:none;width:min(700px,94vw);background:var(--surface);border:1px solid var(--hairline);border-radius:20px;padding:20px 22px 16px;box-shadow:0 18px 60px #0009;transform-origin:top center}.open .panel{display:block;animation:drop .22s ease}.open .pill{display:none}.panel-region{display:contents}@keyframes drop{0%{opacity:0;transform:scale(.92) translateY(-8px)}to{opacity:1;transform:none}}.head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.head .title{font-size:15px;font-weight:700}.head .meta{font-size:12px;color:var(--muted)}.badge{font-size:10px;letter-spacing:.1em;color:var(--warn);border:1px solid var(--warn);border-radius:4px;padding:2px 6px}.collapse{margin-left:auto;background:none;border:1px solid var(--hairline);color:var(--ink2);border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer}.collapse:hover{border-color:var(--muted)}.tabs{display:flex;gap:4px;background:var(--pill);border:1px solid var(--hairline);border-radius:10px;padding:3px;width:max-content;margin-bottom:6px}.tab{border:none;background:none;color:var(--muted);font-size:12.5px;padding:5px 14px;border-radius:8px;cursor:pointer;font-family:inherit}.tab.act{background:var(--surface);color:var(--ink);font-weight:600;border:1px solid var(--hairline)}.now{background:var(--pill);border:1px solid var(--hairline);border-radius:12px;padding:10px 14px;margin:8px 0 10px}.now .ntask{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}.now .ntask .muted{color:var(--muted);font-weight:400}.now .ndoing{font-size:12px;color:var(--ink2);margin-top:5px}.now .ndoing b{color:var(--ink);font-weight:600}.now .nquote{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.6}.now .nwait{font-size:12px;color:var(--warn);border:1px solid rgba(250,178,25,.55);border-radius:8px;padding:5px 9px;margin-bottom:8px;animation:pulse 1.2s infinite}.taskflow{margin:8px 0 10px;font-size:var(--fs-2);line-height:1.55}.box{background:var(--pill);border:1px solid var(--hairline);border-radius:12px;padding:12px}.box+.box,.ask-line+.box,.fold{margin-top:16px}.box>*+*{margin-top:8px}.ask-box.active{border-color:var(--warn);color:var(--warn)}.ask-text{font-size:var(--fs-2);font-weight:650}.ask-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:var(--fs-3)}.ask-generic{font-size:var(--fs-3)}.ask-meta button{margin-left:auto;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:4px 8px}.ask-line{display:flex;align-items:baseline;gap:8px;color:var(--muted);font-size:var(--fs-3)}.wfheading{display:flex;align-items:baseline;gap:12px}.wfheading :where(.wftitle){flex:1;min-width:0}.wfheading :where(.task-status){flex-shrink:0}.wftitle{font-size:var(--fs-1);font-weight:650}.wfgoal,.wflead{display:flex;align-items:baseline;gap:8px;color:var(--ink2)}.wfsteps[data-expanded=false]{max-height:3.1em;-webkit-line-clamp:unset}.wfsteps[data-expanded=true]{max-height:none}.wflabel{display:inline-block;margin-right:8px;color:var(--muted);font-size:var(--fs-3);flex:none}.wfsource{color:var(--muted);font-size:var(--fs-3)}.wfsteps{margin-top:5px}.wfstep{display:flex;gap:7px;align-items:baseline}.wfstep.completed{color:var(--muted)}.wfstep.in_progress{font-weight:600}.wfrecent{display:flex;flex-wrap:wrap;gap:4px 8px}.wfrecent-step{color:var(--ink2)}.wfproject,.wfproject-details{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;color:var(--ink2)}.wfcurrent{display:flex;align-items:baseline;min-width:0;gap:6px}.wfproject-node{padding:1px 7px}.wfproject-link{border:1px solid var(--hairline);border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer;font:inherit;font-size:var(--fs-3);padding:2px 8px}.wfverify{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--ink2)}.wfverify-sep{color:var(--muted)}.wfverify-action{border:1px solid var(--hairline);border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer;font:inherit;font-size:var(--fs-3);padding:2px 8px}.wfverify-error{margin-top:5px}.fold>summary{display:flex;align-items:baseline;gap:8px;cursor:pointer;list-style:none}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸";color:var(--muted);font-size:var(--fs-3);flex:none}.fold[open]>summary:before{content:"▾"}.fold>summary .wflabel{min-width:5em;margin-right:0}.fold-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2);font-size:var(--fs-2)}.fold-body{margin-top:8px;padding:8px 12px;border-left:1px solid var(--hairline);color:var(--ink2);overflow-wrap:anywhere}.protocol-foot{margin-top:16px;color:var(--muted);font-size:var(--fs-3)}.protocol-foot button{margin-left:8px;border:0;padding:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.evidencegroup+.evidencegroup{margin-top:6px}.vtabs{display:flex;gap:22px;border-bottom:1px solid var(--grid);margin-bottom:4px}.vtab{background:none;border:none;font-family:inherit;font-size:13px;color:var(--muted);padding:8px 2px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.vtab.act{color:var(--ink);font-weight:700;border-bottom-color:var(--s1)}.vtab .vcnt{font-size:11px;color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums}.pane{display:none}.pane.act{display:block}.td{padding:8px 0;border-top:1px dashed var(--grid);font-size:13px}.td:first-child{border-top:none}.tdr{display:flex;align-items:center;gap:9px}.tdr[data-act]{cursor:pointer}.mk{width:16px;flex:none;text-align:center;font-size:12px;color:var(--s3)}.mk.doing{color:var(--s1)}.td .tdc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td.done .tdr{color:var(--muted)}.td.done .tdc{text-decoration:line-through}.td.todo .tdr{color:var(--muted)}.td .tdc b{font-weight:700}.ag{font-size:10px;color:var(--s1);border:1px solid rgba(57,135,229,.5);border-radius:999px;padding:0 8px;flex:none}.loc{margin-left:auto;flex:none;font-size:10.5px;font-family:inherit;color:var(--ink2);background:none;border:1px solid var(--grid);border-radius:7px;padding:2px 8px;cursor:pointer}.loc:hover{border-color:var(--muted)}.trace{margin:8px 0 2px 24px;border-left:2px solid var(--grid);padding-left:14px}.tr{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:var(--ink2);cursor:pointer}.tr .ic{width:8px;height:8px;border-radius:50%;background:var(--s3);flex:none;margin-left:-19px;border:2px solid var(--surface)}.tr.bad .ic{background:var(--bad)}.tr.run .ic{background:var(--s1)}.tr .trlabel{flex:none}.tr .dur,.trs .dur{margin-left:auto;color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums;flex:none;white-space:nowrap}.failchip{font-size:10px;color:var(--bad);border:1px solid var(--bad);border-radius:999px;padding:0 7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.steps{margin-left:6px;padding:2px 0 4px}.trs{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:11.5px;color:var(--muted)}.trs .cmd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;color:var(--ink2);flex:none}.trs .sdetail{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trs.bad .cmd{color:var(--bad)}.rawsec .rawhead{background:none;border:none;font-family:inherit;font-size:11px;letter-spacing:.14em;color:var(--muted);padding:0;cursor:pointer}.rawsec .rawhead:hover{color:var(--ink2)}.rawsec .rawbody{display:none}.rawsec .rawbody.open{display:block;margin-top:8px}.ubox{max-height:220px;overflow-y:auto;border:1px solid var(--grid);border-radius:8px;padding:2px 10px}.urow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:11.5px;border-top:1px dashed var(--grid);color:var(--ink2)}.urow:first-child{border-top:none}.urow .utime{color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums;flex:none}.urow .unums{color:var(--muted);font-variant-numeric:tabular-nums;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.urow .utot{margin-left:auto;color:var(--ink);font-variant-numeric:tabular-nums;flex:none}.urow .ucost{color:var(--s3);font-variant-numeric:tabular-nums;flex:none}.sessions-empty,.session-notice{margin-top:8px;padding:7px 10px;border:1px solid var(--grid);border-radius:6px;color:var(--ink2);font-size:11px}.session-notice{display:flex;gap:8px;cursor:pointer}.session-notice-close{margin-left:auto;color:var(--ink3)}.session-chip-group{margin-top:8px}.old-sessions{margin:6px 0}.schips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 2px}.schip{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid var(--grid);border-radius:999px;padding:2px 10px;font-family:inherit;font-size:11px;color:var(--ink2);cursor:pointer}.schip:hover{border-color:var(--ink2)}.schip.act{color:var(--ink);border-color:var(--ink2);font-weight:600}.schip.ended{opacity:.55}.schip .sdot{width:6px;height:6px;border-radius:50%;background:var(--s1);flex:none}.schip .sdot.wait{background:var(--warn);animation:pulse 1.2s infinite}.schip .snew{padding:0 5px;border:1px solid var(--s1);border-radius:999px;color:var(--s1);font-size:9px;font-weight:700}.schip.has-session-origin{max-width:100%}.session-chip-title{min-width:4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wftitle.has-session-origin,.session-title-with-origin{display:flex;align-items:baseline;gap:6px;min-width:0}.chip.session-origin{font-size:11px;font-weight:400;line-height:1.4;color:var(--muted);border:1px solid var(--hairline);border-radius:4px;padding:1px 5px;flex:0 1 auto;min-width:0;max-width:16em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedbacksignal{margin:8px 0 2px;border:1px solid rgba(250,178,25,.4);border-radius:8px;padding:5px 9px;color:var(--warn);font-size:12px}.suggslot:empty{display:none}.suggslot{border-top:1px solid var(--grid);padding:8px 0 2px}.sugg{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:var(--ink2)}.sugg .sugtext{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sugg.r-waiting-timeout .sugtext{color:var(--warn)}.sugg .sugbtn,.sugg .sugdismiss{background:none;border:1px solid var(--grid);border-radius:6px;padding:1px 8px;font-family:inherit;font-size:11px;color:var(--ink2);cursor:pointer;flex:none}.sugg .sugbtn{color:var(--ink);border-color:var(--ink2);margin-left:auto}.sugg .sugbtn:hover{background:var(--grid)}.sugg .sugdismiss{color:var(--muted)}.sugg .sugbtn+.sugdismiss{margin-left:0}.sugg .sugdismiss:only-of-type{margin-left:auto}.sugg .sugdismiss:hover{color:var(--ink2)}.tr.waitrow{cursor:default}.tr.waitrow .trlabel{color:var(--warn)}.sec{border-top:1px solid var(--grid);padding:13px 0}.sec.first{border-top:none;padding-top:2px}.sec .label{font-size:11px;letter-spacing:.14em;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:8px}.tier{font-size:10px;letter-spacing:0;color:var(--ink2);border:1px solid var(--grid);border-radius:999px;padding:1px 8px;font-weight:400}.sec .headline{font-size:13px;color:var(--ink2);margin-bottom:10px}.sec .headline b{color:var(--ink);font-weight:700}.stack{display:flex;height:16px;margin-bottom:10px}.seg{margin-right:2px;cursor:default}.seg:last-child{margin-right:0}.seg:first-child{border-radius:4px 0 0 4px}.seg:last-child{border-radius:0 4px 4px 0}.seg:hover{filter:brightness(1.18)}.legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 18px}@media(max-width:560px){.legend{grid-template-columns:1fr}}.lrow{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink2);min-width:0}.sw{width:10px;height:10px;border-radius:3px;flex:none}.lrow .nat,.gtitle .nat{font-size:10.5px;color:var(--muted);border:1px solid var(--grid);border-radius:4px;padding:0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lrow .v{margin-left:auto;color:var(--ink);font-variant-numeric:tabular-nums;flex:none}.lrow .cnt{color:var(--muted);font-size:10.5px;flex:none}.lrow.na,.lrow.na .v{color:var(--muted)}.grp{margin-bottom:10px}.grp:last-child{margin-bottom:0}.gtitle{font-size:11.5px;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:7px}.gdot{width:8px;height:8px;border-radius:2px;flex:none}.crow{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:12.5px;border-top:1px dashed var(--grid)}.cname{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offrow .cname{color:var(--muted)}.chip{font-size:10px;color:var(--muted);border:1px solid var(--grid);border-radius:999px;padding:1px 7px;flex:none}.statechip{font-size:10px;border-radius:999px;padding:1px 7px;flex:none}.statechip.off{color:var(--warn);border:1px solid var(--warn)}.statechip.invocation:not(.off){color:var(--s3);border:1px solid var(--grid)}.statechip.nofile{color:var(--muted);border:1px dashed var(--grid)}.ctok{margin-left:auto;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;flex:none}.crow.emptyrow{color:var(--muted);font-size:12px}.livenone{font-size:12.5px;color:var(--muted);border:1px dashed var(--grid);border-radius:8px;padding:10px 12px;margin-bottom:8px;line-height:1.7}.livenone:last-child{margin-bottom:0}.livenone code{color:var(--ink2);background:var(--pill);border:1px solid var(--grid);border-radius:4px;padding:1px 5px}.tier.none{color:var(--muted);border-style:dashed}.conn{font-size:10px;letter-spacing:0;font-weight:400;border-radius:999px;padding:1px 8px;border:1px solid var(--grid);color:var(--muted)}.conn.open{color:var(--s3);border-color:var(--s3)}.conn.retrying{color:var(--warn);border-color:var(--warn)}.conn.replay{color:var(--warn);border-style:dashed}.demobtn{margin-left:auto;background:none;border:1px dashed var(--warn);color:var(--warn);border-radius:6px;padding:2px 8px;font-size:10.5px;letter-spacing:0;cursor:pointer;font-family:inherit}.demobtn:hover:not(:disabled){border-style:solid}.demobtn:disabled{opacity:.5;cursor:default}.feed{max-height:240px;overflow-y:auto;border:1px solid var(--grid);border-radius:8px;padding:2px 10px}.lvrow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;border-top:1px dashed var(--grid)}.lvrow:first-child{border-top:none}.lvtime{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;flex:none}.lvname{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lvrow.own .lvname{font-weight:600}.lvrow.other{opacity:.45}.lvharness{margin-left:auto;font-size:10px;color:var(--muted);border:1px solid var(--grid);border-radius:4px;padding:0 5px;flex:none}.lvrow.own .lvharness{color:var(--ink2);border-color:var(--hairline)}.mockchip{font-size:9px;letter-spacing:.08em;color:var(--warn);border:1px solid var(--warn);border-radius:4px;padding:0 4px;flex:none}.labr{margin-left:auto;display:flex;align-items:center;gap:8px}.sharelink{background:none;border:1px solid var(--grid);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:10.5px;letter-spacing:0;cursor:pointer;font-family:inherit}.sharelink:hover{color:var(--ink2);border-color:var(--muted)}.sharebox{max-height:320px;overflow:auto;border:1px solid var(--grid);border-radius:8px;background:var(--pill);padding:6px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.5}.shline{display:flex;gap:7px;align-items:flex-start;padding:1px 0}.shdel{flex:none;background:none;border:1px solid var(--grid);color:var(--muted);border-radius:4px;font-size:9px;line-height:1.3;padding:0 4px;margin-top:1px;cursor:pointer}.shdel:hover{color:var(--s2);border-color:var(--s2)}.shtext{color:var(--ink2);white-space:pre-wrap;word-break:break-all}.btn:disabled{opacity:.45;cursor:default}.btn:disabled:hover{filter:none}.empty-state{display:flex;flex-direction:column;align-items:center}.empty-card{width:min(460px,94vw);background:var(--surface);border:1px solid var(--hairline);border-radius:16px;padding:28px 26px;text-align:center}.empty-title{font-size:15px;font-weight:700;margin-bottom:8px}.empty-detail{font-size:12px;color:var(--warn);margin-bottom:8px;word-break:break-all}.empty-hint{font-size:12.5px;color:var(--muted);line-height:1.7}.empty-hint code{color:var(--ink2);background:var(--pill);border:1px solid var(--grid);border-radius:4px;padding:1px 5px}#tip{position:fixed;display:none;pointer-events:none;z-index:9;background:#050505;border:1px solid var(--hairline);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--ink);max-width:300px;box-shadow:0 8px 24px #00000080;white-space:pre-line;line-height:1.5}.toggle{width:30px;height:17px;border-radius:999px;background:var(--grid);position:relative;cursor:pointer;flex:none;transition:background .15s;border:none;padding:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:var(--ink2);transition:left .15s}.toggle.on{background:var(--s1)}.toggle.on:after{left:15px;background:#fff}.cc-feature{flex-wrap:wrap}.cc-feature .cname{flex:1;min-width:140px}.cc-feature-help{flex-basis:100%;min-width:0}.cc-warning{color:var(--muted);margin-left:6px}.cc-feature-help>summary{width:fit-content;color:var(--ink2);font-size:13px;cursor:pointer}.cc-help-body{max-width:68ch;color:var(--ink2);font-size:13px;line-height:1.7;overflow-wrap:anywhere}.cc-help-body p{margin:10px 0 0}.cc-status{flex-basis:100%;font-size:11px;color:var(--muted)}.cc-status.blocked{color:var(--warn)}.cc-segments{display:inline-flex;border:1px solid var(--grid);border-radius:6px;overflow:hidden}.cc-segments button{padding:4px 7px;font:inherit;font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer}.cc-segments button+button{border-left:1px solid var(--grid)}.cc-segments button[aria-pressed=true]{background:var(--s1);color:#fff}.cc-feature button:disabled{opacity:.45;cursor:not-allowed}.cc-disable-all{padding:3px 7px;font-size:11px}.cright{display:flex;align-items:center;gap:8px;flex:none}.cfgnote{font-size:11px;color:var(--muted);padding:5px 0 2px;border-top:1px dashed var(--grid);line-height:1.6}.licbar{display:block;width:100%;text-align:left;font-size:12px;font-family:inherit;color:var(--warn);background:none;border:1px solid var(--warn);border-radius:8px;padding:6px 10px;margin-bottom:10px;cursor:pointer}.licbar.expired{color:var(--s2);border-color:var(--s2)}.licbar:hover{filter:brightness(1.12)}.licrow{display:flex;align-items:stretch;gap:8px;margin-bottom:10px}.licrow .licbar{flex:1;margin-bottom:0}.licimport{flex:none;font-size:11px;font-family:inherit;color:var(--muted);background:none;border:1px solid var(--grid);border-radius:8px;padding:6px 10px;cursor:pointer}.licimport:hover{color:var(--ink2);border-color:var(--muted)}.licfoot{margin-top:12px;text-align:center}.licfootlink{font-size:11px;font-family:inherit;color:var(--muted);background:none;border:none;padding:2px 4px;cursor:pointer;text-decoration:underline;text-decoration-color:var(--grid);text-underline-offset:3px}.licfootlink:hover{color:var(--ink2)}.feedbackfoot{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:0 18px 16px;color:var(--muted);font-size:10.5px;line-height:1.45;text-align:center}.feedbackfoot a{color:var(--ink2);text-underline-offset:2px}.feedbackfoot a:hover{color:var(--ink)}.feedbacklink{font-weight:650}.lictrial{margin:-2px 0 8px;text-align:right}.lictrial .licfootlink{text-decoration:none}#drop{position:fixed;inset:0;z-index:40;display:none;align-items:center;justify-content:center;background:#000000a6;border:2px dashed var(--s1);color:var(--ink);font-size:15px;pointer-events:none}.overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.scrim{position:absolute;inset:0;background:#0009}.modal{position:relative;width:min(560px,94vw);max-height:86vh;overflow-y:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:16px;padding:16px 18px;box-shadow:0 18px 60px #0009;animation:drop .18s ease}.mhead{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mtitle{font-size:14px;font-weight:700}.mclose{margin-left:auto;background:none;border:1px solid var(--hairline);color:var(--ink2);border-radius:8px;padding:2px 8px;font-size:12px;cursor:pointer}.mclose:hover{border-color:var(--muted)}.mnote{font-size:11px;color:var(--warn);border:1px dashed var(--warn);border-radius:8px;padding:8px 10px;margin-bottom:10px;line-height:1.6}.msec{border-top:1px solid var(--grid);padding:10px 0}.mlabel{font-size:11px;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.mtext{font-size:12.5px;color:var(--ink2);line-height:1.7;word-break:break-all}.mtext.muted{color:var(--muted)}.mtext code,.mpath{color:var(--ink2);background:var(--pill);border:1px solid var(--grid);border-radius:4px;padding:1px 5px;font-size:11px;word-break:break-all}.mfile{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:12px;flex-wrap:wrap}.mkind{font-size:10px;border-radius:4px;padding:1px 6px;flex:none;border:1px solid var(--grid);color:var(--ink2)}.mkind.create{color:var(--s3);border-color:var(--s3)}.mkind.modify{color:var(--s4);border-color:var(--s4)}.mkind.delete{color:var(--s2);border-color:var(--s2)}.mlines{margin-left:auto;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.mref{display:flex;gap:8px;padding:4px 0;font-size:12px;align-items:baseline;flex-wrap:wrap}.mctx{color:var(--muted);font-size:11.5px;line-height:1.5}.merror{font-size:12px;color:var(--warn);border:1px solid var(--warn);border-radius:8px;padding:8px 10px;margin-bottom:8px;white-space:pre-wrap;word-break:break-all}.mact{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.btn{border-radius:8px;padding:6px 14px;font-size:12.5px;cursor:pointer;font-family:inherit}.btn.ghost{background:none;border:1px solid var(--hairline);color:var(--ink2)}.btn.ghost:hover{border-color:var(--muted)}.btn.primary{background:var(--s1);border:1px solid var(--s1);color:#fff;font-weight:600}.btn.primary:hover{filter:brightness(1.1)}.projects{display:grid;gap:12px;padding:12px 14px 16px}.project-shell{min-width:0}.projects-empty,.project-empty{color:var(--muted);font-size:12px;padding:8px 0}.project-card{border:1px solid var(--hairline);border-radius:12px;padding:12px;background:var(--surface)}.project-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.project-organization{display:flex;align-items:center;gap:6px}.project-organization button{color:var(--muted);background:transparent;border:0;cursor:pointer;font-size:12px;padding:4px}.project-organization button:disabled{opacity:.35;cursor:default}.project-organization button[aria-pressed=true]{color:var(--ink2)}.project-row{display:flex;align-items:center;gap:10px;min-height:36px;cursor:pointer}.project-row-layout{display:flex;align-items:center;gap:12px;overflow-x:auto}.project-row-layout>.project-row{flex:1;min-width:min-content}.project-row-actions{display:flex;flex:none;align-items:center;gap:6px;white-space:nowrap}.project-row>span{white-space:nowrap}.project-row-name{flex:none;font-weight:600}.project-row-goal,.project-row-task{flex:1;width:0;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.project-row-action{flex:none;min-width:max-content;font-size:12px;border:1px solid var(--hairline);border-radius:4px;padding:3px 6px}.project-row-action[data-kind=ended]{color:var(--muted)}.project-row-action[data-kind=decision],.project-row-action[data-kind=checkpoint]{color:var(--warn)}.project-row:focus-visible{outline:2px solid var(--ink2);outline-offset:4px}.projects-toggle,.project-collapse{color:var(--muted);background:transparent;border:0;font-size:12px;padding:6px 0;cursor:pointer}.project-collapse{display:block;margin-left:auto}.project-progress{display:grid;gap:7px;margin-top:12px;font-size:12px}.project-progress>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px}.project-branches,.project-current-points{flex:1;min-width:0;display:grid;gap:5px}.project-branch{display:flex;align-items:baseline;gap:5px}.project-branches .fold,.project-current-points .fold{margin-top:0}.project-action{margin-top:14px;padding:10px 0;border-block:1px solid var(--hairline);font-size:12px}.project-action[data-kind=decision],.project-action[data-kind=checkpoint]{color:var(--warn)}.project-action-title{font-weight:650}.project-action-title>span{margin-left:6px;font-weight:400}.project-action-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;margin-top:8px}.project-tech{margin-top:14px;color:var(--muted);font-size:11px}.project-tech>summary,.project-plan-help>summary,.project-node-children>summary{cursor:pointer}.project-tech>summary{margin-bottom:7px}.project-node-children>summary{color:var(--muted);font-size:11px}.project-plan-help{margin-top:7px}.project-plan-help pre{white-space:pre-wrap}.project-action button:focus-visible,.project-tech summary:focus-visible,.project-node-children summary:focus-visible{outline:2px solid var(--s1);outline-offset:3px}.project-card.unavailable,.project-last-good{background:color-mix(in srgb,var(--surface) 88%,var(--grid))}.project-card-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.project-title{font-size:15px;font-weight:700}.project-source{margin-left:7px;color:var(--muted);font-size:10.5px}.project-branch .project-source{flex:none;white-space:nowrap}.project-presence{color:var(--muted);font-size:11px;margin-top:4px}.project-memory-warning,.anatomy-refresh-warning{color:var(--warn);font-size:11px}.project-memory-warning{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.project-memory-warning button{color:inherit;background:transparent;border:0;cursor:pointer}.project-root,.project-meta,.project-counts,.project-facts{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.project-meta{margin-top:4px}.project-protocols{display:grid;gap:6px;margin-top:8px}.project-protocol-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.project-protocol-chip,.project-protocol-copy{border:1px solid var(--hairline);border-radius:999px;color:var(--ink2);font-family:inherit;font-size:10.5px;padding:2px 7px}.project-protocol-chip.plan_present,.project-protocol-chip.session_wrote_plan{border-color:var(--s3);color:var(--s3)}.project-protocol-chip.installed_not_loaded{border-color:var(--warn);color:var(--warn)}.project-protocol-note{color:var(--muted);font-size:10px;overflow-wrap:anywhere}.project-protocol-copy{background:transparent;cursor:pointer;padding-inline:6px}.project-protocol-copy:hover{border-color:var(--s1)}.project-goal,.project-section,.project-counts,.project-facts,.project-complete,.project-l0,.project-error,.project-last-good{margin-top:10px}.project-label{color:var(--ink2);font-size:11px;font-weight:650;margin-right:8px}.project-l0,.project-error{border:1px solid var(--hairline);border-radius:8px;padding:8px 10px;font-size:12px}.project-error{color:var(--warn);border-color:var(--warn)}.project-complete{color:var(--s3);font-size:12px;font-weight:650}.project-points{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}.project-checkpoints{margin-top:5px}.project-checkpoint{font-size:12px;font-weight:400}.project-crumb{border:1px solid var(--hairline);border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer;font-family:inherit;font-size:11px;padding:3px 8px}.project-crumb:hover{border-color:var(--s1)}.project-node-text,.project-crumb,.project-checkpoint{display:-webkit-box;min-width:0;max-width:100%;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.project-node-text{flex:1}.project-facts-group+.project-facts-group{margin-top:4px}.project-facts-toggle{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left}.project-facts-items{display:grid;gap:3px;margin:4px 0 0 14px}.task-filters{display:grid;gap:7px;padding:12px 14px 0}.task-filter-group{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:var(--muted);font-size:10.5px}.task-filter-chip,.task-badge,.task-status{border:1px solid var(--hairline);border-radius:999px;background:transparent;color:var(--ink2);font-family:inherit;font-size:10.5px;padding:2px 7px}.task-filter-chip{cursor:pointer}.task-filter-chip:hover,.task-filter-chip.act{border-color:var(--s1);color:var(--s1)}.task-filter-summary,.task-hidden{color:var(--muted);font-size:11px}.task-filter-summary{padding:7px 14px 0}.task-hidden{margin:5px 0 0 19px}.task-card-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px}.task-card{display:block;width:100%;border:0;border-radius:12px;background:#262624;color:var(--ink);cursor:pointer;font-family:inherit;padding:16px 40px 16px 16px;text-align:left}.task-card:hover{background:#2d2d2a}.task-card-head{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:baseline;gap:14px}.task-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:9px 0 0 106px}.task-title{min-width:0;font-size:15px;font-weight:550;line-height:1.65;overflow-wrap:anywhere}.task-status.waiting{border-color:var(--warn);color:var(--warn)}.task-status.active,.task-status.complete{border-color:var(--s3);color:var(--s3)}.task-status.ended{color:var(--muted)}.task-card .task-badge,.task-card .task-status{border:0;padding:0;font-size:12px;line-height:1.6}.task-card .task-badge{color:#aaa9a2}.task-card .task-status.active{color:var(--ink2)}.task-card .task-status.active:before,.task-card .task-status.waiting:before{content:"";display:inline-block;width:6px;height:6px;margin:0 7px 1px 0;border-radius:50%;background:#9ab6a4}.task-card .task-status.waiting:before{background:var(--warn)}.task-card .task-status.complete{color:#aab9af}.task-skills{display:block;margin-top:6px;color:var(--muted);font-size:10.5px}.task-card-wrap{position:relative}.task-menu-button{position:absolute;top:6px;right:7px;width:28px;height:26px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font:700 17px / 1 inherit}.task-menu-button:hover,.task-menu-button[aria-expanded=true]{border-color:var(--hairline);color:var(--ink)}.task-menu{display:grid;gap:7px;max-width:100%;margin-top:5px;padding:8px;border:1px solid var(--hairline);border-radius:9px;background:color-mix(in srgb,var(--surface) 92%,var(--grid))}.task-menu label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:center;color:var(--muted);font-size:10.5px}.task-menu input{min-width:0;border:1px solid var(--hairline);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;padding:5px 7px}.task-menu-actions{display:flex;flex-wrap:wrap;gap:6px}.return-target-option,.return-settings-dismiss,.task-menu-actions button,.task-resume-command button,.task-unhide,.task-hidden-toggle{border:1px solid var(--hairline);border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer;font:inherit;font-size:10.5px;padding:3px 8px}.task-resume-command{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.task-resume-command code{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.task-return-result,.task-resume-note,.task-resume-unavailable,.task-error{grid-column:1 / -1;color:var(--muted);font-size:10.5px;overflow-wrap:anywhere}.task-error{margin-top:5px;color:var(--warn)}.session-archived{margin-top:8px}.session-archived-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 0}.task-hidden-group{margin-top:6px}.task-hidden-toggle{color:var(--muted)}.project-organization .task-menu-button{position:static}.project-root-block{border-top:1px solid var(--hairline);padding-top:16px;margin-top:16px}.project-root-block>.project-card-head .project-title{font-size:14px}.project-archived{display:grid;gap:8px;margin-top:12px}.project-archived>.task-hidden-toggle{justify-self:start}.project-archived>.project-card,.project-archived>.project-shell{min-width:0}.task-card-hidden{opacity:.58}.task-unhide{margin-top:5px}@media(max-width:560px){.task-menu label{grid-template-columns:1fr}}.project-tree,.project-tree ul{list-style:none;margin:5px 0 0;padding-left:17px}.project-tree{padding-left:0}.project-plan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-node-heading{flex:1;min-width:0}.project-node-detail{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-node{margin:4px 0;font-size:12px}.project-node-line{display:flex;gap:7px;align-items:baseline}.project-node.in_progress>.project-node-line{color:var(--s3)}.project-node.completed,.project-node.cancelled,.project-node.collapsed{color:var(--muted)}.project-mark{width:12px;flex:none;text-align:center}.project-verify{color:var(--muted);font-size:11px;margin:3px 0 0 19px}.project-session-wrap,.task-card-wrap{margin:5px 0 6px 19px}.project-last-good{opacity:.72;border-radius:8px;padding:8px}html.island,html.island body{background:transparent}html.island body{padding:8px 0 12px;overflow:hidden}html.island .pill{box-shadow:0 2px 6px #0000008c}html.island .panel{box-shadow:0 2px 6px #0009}html.island #app{display:flex;flex-direction:column;width:100%;height:calc(100vh - 20px)}html.island[data-island-edge=bottom] #app{justify-content:flex-end}html.island[data-island-edge=left] .wrap{align-items:flex-start;padding-left:8px}html.island[data-island-edge=right] .wrap{align-items:flex-end;padding-right:8px}html.island-compact body{padding:8px 0}html.island-compact #app{height:calc(100vh - 16px)}html.island-compact .pill{height:32px;max-width:min(100%,360px);gap:8px;padding:0 12px;cursor:default}html.island-compact .pill:hover{transform:none}html.island-tab-mode body{padding:0}html.island-tab-mode #app{height:100vh}.island-tab{width:6px;height:64px;border:0;border-radius:3px;padding:0;flex:none;cursor:pointer;background:var(--muted);opacity:.6}.island-tab.live{background:var(--s3);opacity:1}.island-tab.wait{background:var(--warn);opacity:1}.island-tab.pulse{animation:pulse 1.2s 1}.island-tab:focus-visible{outline:1px solid var(--ink);outline-offset:-1px}.island-transition-tab{position:fixed;pointer-events:none}html.island[data-island-edge=left] .wrap:not(.open),html.island[data-island-edge=right] .wrap:not(.open){min-height:64px;justify-content:center}html.island .pill.island-edge-left{--island-edge-offset: calc(-100% - 8px) }html.island .pill.island-edge-right{--island-edge-offset: calc(100% + 8px) }html.island .pill.island-reveal{transform:translate(0);opacity:1;transition:transform .2s ease-out,opacity .2s ease-out}html.island .pill.island-retract{transform:translate(var(--island-edge-offset));opacity:0;transition:transform .15s ease-in,opacity .15s ease-in}html.island .pill.island-prepare{transform:translate(var(--island-edge-offset));opacity:0;transition:none}html.island .pill.island-motion-reduced{transform:none;transition:opacity 80ms linear}html.island .pill.island-motion-reduced.island-prepare{transition:none}@media(prefers-reduced-motion:reduce){html.island .pill.island-reveal,html.island .pill.island-retract{transform:none;transition:opacity 80ms linear}html.island .pill.island-prepare{transition:none}}html.island .open .panel{height:calc(100vh - 20px);overflow-y:auto}html.island .scrim{border-radius:20px}.return-target-options{display:flex;flex-wrap:wrap;gap:6px}.return-target-option.act{color:var(--s1);border-color:var(--s1);background:var(--surface)}.return-target-option:hover,.return-settings-dismiss:hover{color:var(--ink)}.return-target-option:focus-visible,.return-settings-dismiss:focus-visible{outline:2px solid var(--s1);outline-offset:2px}.return-target-option:disabled{opacity:.6;cursor:default}[data-expand-text]{display:-webkit-box;min-width:0;max-width:100%;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}[data-expand-text][data-expanded=true]{-webkit-line-clamp:unset;white-space:normal;overflow:visible}.ask-line>[data-expand-text],.wfgoal>[data-expand-text],.wflead>[data-expand-text]{flex:1}.wftitle.has-session-origin>[data-expand-text],.session-title-with-origin>.task-title{flex:0 1 auto;min-width:4em}.expand{border:0;background:transparent;color:var(--s1);cursor:pointer;font:inherit;font-size:11px;padding:2px 4px}.expand[hidden]{display:none}.expand:focus-visible{outline:2px solid var(--s1);outline-offset:2px}.project-branch>.expand{flex:none;white-space:nowrap}.protocol-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px;border-color:var(--hairline);color:var(--ink2);font-size:var(--fs-3)}.protocol-banner small{color:var(--muted);font-size:var(--fs-3)}.protocol-banner.highlighted{outline:2px solid var(--ink2);outline-offset:2px}.taskflow .task-status{color:var(--ink2);border-color:var(--hairline)}.panel:has(.taskflow) .head .dot,.panel:has(.taskflow) .schip .sdot{background:var(--muted)}.panel:has(.taskflow) .schip .snew,.panel:has(.taskflow) .head .badge{color:var(--muted);border-color:var(--muted)}.panel:has(.taskflow) .vtab.act{border-bottom-color:var(--muted)}.ask-box .task-return-result{font-size:var(--fs-3)}.taskflow .mk,.taskflow .ag,.taskflow .expand,.taskflow .mockchip,.taskflow .failchip,.taskflow .trs.bad .cmd,.taskflow .tr.waitrow .trlabel,.taskflow .task-error{color:var(--ink2)}.taskflow .box .muted,.taskflow .fold .muted{color:var(--muted)}.taskflow .tr .ic{background:var(--muted)}.taskflow .mockchip,.taskflow .ag,.taskflow .failchip,.taskflow .project-crumb:hover,.taskflow .project-protocol-copy:hover,.protocol-banner .project-protocol-copy:hover{border-color:var(--muted)}.taskflow .cfgnote,.taskflow .ag,.taskflow .mockchip,.taskflow .task-error,.taskflow .statechip,.taskflow .mk,.taskflow .tr,.taskflow .tr .dur,.taskflow .trs,.taskflow .trs .cmd,.taskflow .trs .dur,.taskflow .failchip,.taskflow .expand,.taskflow .livenone,.taskflow .project-crumb,.taskflow .project-protocol-copy,.taskflow .project-protocol-note{font-size:var(--fs-3)}.taskflow button:focus-visible,.taskflow summary:focus-visible,.protocol-banner button:focus-visible,.protocol-foot button:focus-visible{outline:2px solid var(--ink2);outline-offset:3px}.lang{font-size:12px;color:inherit;background:transparent;border:0}.project-card.compact>.task-error,.project-card.compact>.project-error{flex-basis:100%}.page-heading{margin:24px 0 22px}.page-heading h2{margin:0 0 6px;color:var(--ink);font-size:24px;font-weight:600;letter-spacing:-.025em;line-height:1.3}.page-heading p{margin:0;color:#aaa9a2;font-size:13px;line-height:1.65}.panel .sec>.label{font-size:13px;letter-spacing:0;font-weight:500}.panel .configure-section{border-top:0;padding-top:0}.panel .configure-section>.grp{margin:12px 0;padding:14px 16px;border:1px solid var(--hairline);border-radius:12px;background:#20201e}.panel .configure-section>details.grp>summary{flex-wrap:wrap;gap:6px 10px}.panel .configure-section>details.grp>summary .wflabel{color:var(--ink);font-size:14px;font-weight:500}.panel .configure-section .fold-summary{flex-basis:100%;margin:3px 0 0 14px;color:#aaa9a2;font-size:12px}.panel .gtitle{margin-bottom:9px;color:var(--ink2);font-size:13px}.panel .crow{gap:8px;padding:11px 0;border-top-style:solid;line-height:1.5}.panel .cfgnote{color:#aaa9a2;font-size:12px;line-height:1.65}.panel .usage-section{padding:16px 18px;border:1px solid var(--hairline);border-radius:12px;background:#20201e}.panel .usage-section .livenone{border:0;padding:0;margin:12px 0 0}.panel .sec .headline{margin:14px 0 18px}.panel .sec .headline b{display:block;margin-top:4px;font-size:22px;font-weight:500;letter-spacing:-.025em}.panel .legend{gap:13px 22px;padding:10px 0}.panel .lrow{flex-wrap:wrap}.panel .lrow .nat{order:5;flex-basis:calc(100% - 17px);border:0;padding:0 0 0 17px;white-space:normal}.panel .context-detail .sec{margin-top:0;border:0}.panel .feedback-reason>summary{cursor:pointer;padding:6px 0 10px;color:#aaa9a2;font-size:12px}.panel .feedback-reason .cfgnote{margin-bottom:12px;overflow-wrap:anywhere}.panel .projects-tools{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:18px}.panel .task-filters{margin-bottom:0}.panel .project-row-layout{align-items:flex-start;flex-wrap:nowrap;overflow:visible}.panel .project-row-layout>.project-row{display:grid;grid-template-columns:fit-content(40%) minmax(0,1fr) auto;flex:1;min-width:0;gap:3px 12px}.panel .project-row>span:not(.project-row-action){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}.panel .project-row-name{grid-column:1;grid-row:1;font-size:15px}.panel .project-row-action{grid-column:3;grid-row:1 / 3;align-self:start;min-width:max-content;overflow:visible}.panel .project-row-goal,.panel .project-row-task{width:auto;font-size:13px}.panel .project-row-goal{grid-column:2;grid-row:1;color:var(--ink2)}.panel .project-row-task{grid-column:1 / 3;grid-row:2}.panel .project-row-actions{margin-left:auto;white-space:normal;flex-wrap:wrap}.panel .projects{gap:8px}.panel .projects-tools{margin-bottom:10px}.panel .project-goal{margin-top:9px;color:var(--ink2);font-size:14px;line-height:1.6}.panel .project-title{font-size:19px}.panel .project-action{padding:14px;border:0;border-radius:8px;background:#292927;font-size:13px}.panel .project-action[data-kind=decision],.panel .project-action[data-kind=checkpoint]{background:#fab21912}.panel .project-progress{gap:12px;margin-block:18px}.panel .project-progress>div>.project-label:first-child{flex-basis:100%}.panel .project-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--hairline)}.panel .project-tech>summary{padding:12px 0;font-size:12px}.modal{padding:24px;border-radius:18px;line-height:1.6}.modal .mhead{margin-bottom:20px}.modal .mtitle{font-size:20px;font-weight:600;letter-spacing:-.02em}.modal .msec{padding:16px 0}.modal .mlabel{font-size:12px;letter-spacing:0}.modal .mtext{font-size:13px;overflow-wrap:anywhere}.modal .mact{position:sticky;bottom:-24px;padding:16px 0;background:var(--surface);border-top:1px solid var(--hairline);flex-wrap:wrap}.modal button:focus-visible,.modal input:focus-visible,.modal textarea:focus-visible{outline:2px solid #a8c7ff;outline-offset:3px}html:not(.island) .panel{width:min(780px,calc(100vw - 32px))}.panel{padding:24px 26px 18px;line-height:1.55}.panel .head{gap:10px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--hairline)}.panel .head .title{font-size:19px;font-weight:600;letter-spacing:-.02em}.panel .head .dot{animation:none}.panel .lang{margin-left:auto;font-size:13px;padding:7px 5px}.panel .collapse{margin-left:4px;padding:7px 11px}.panel .tabs{width:100%;max-width:100%;overflow-x:auto;background:none;border:0;padding:0;gap:6px;margin-bottom:18px}.panel .tab{flex:none;border:1px solid transparent;padding:8px 13px;font-size:13px;color:var(--ink2)}.panel .tab.act{background:#292927;border-color:#41413c;color:var(--ink)}.panel .vtabs{gap:26px;margin-bottom:16px}.panel .vtab{padding:9px 1px;font-size:13px}.panel .pane{min-width:0}.panel button,.panel select,.empty-state button{font-family:inherit}.panel button:focus-visible,.panel summary:focus-visible,.panel select:focus-visible,.panel a:focus-visible,.empty-state summary:focus-visible{outline:2px solid #a8c7ff;outline-offset:3px}.task-empty{padding:38px 20px 42px;text-align:center}.empty-eyebrow{color:var(--ink2);font-size:13px}.task-empty h2{margin:12px 0;color:#f1f1ef;font-size:26px;font-weight:500;line-height:1.3;letter-spacing:-.025em}.task-empty p{max-width:430px;margin:0 auto;color:#aaa9a2;font-size:14px;line-height:1.7;text-wrap:pretty}.empty-action{margin-top:24px;border:1px solid transparent;border-radius:9px;background:#a8c7ff;color:#112340;padding:10px 16px;font-size:13px;font-weight:500;cursor:pointer}.empty-action.secondary{margin-top:18px;color:#b2b1aa;background:none;font-weight:400}.empty-action:hover{filter:brightness(1.12)}.panel-detail{border-top:1px solid var(--hairline);margin-top:0;font-size:13px}.panel-detail>summary{padding:13px 2px;color:var(--ink2);gap:10px;line-height:1.5}.panel-detail>summary>span:first-of-type{flex-shrink:0}.panel-detail>summary .fold-summary{font-size:12px;color:#a4a39c;margin-left:auto;text-align:right}.panel-detail .fold-body{padding:4px 4px 16px;overflow-wrap:anywhere}.panel-detail .sessions-empty{border:0;padding:0;margin:10px 0}.connection-meta,.connection-command{color:var(--ink2);font-size:12px}.connection-command{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.connection-command>span:first-child{flex-basis:100%}.connection-command code{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.connection-command button,.protocol-link button{color:var(--ink2);border:1px solid var(--hairline);border-radius:7px;padding:5px 9px;background:none;cursor:pointer}.protocol-link{padding-top:12px}.protocol-link button{font-size:12px;border:0;padding-left:0}.protocol-detail .protocol-banner,.protocol-detail .protocol-foot{margin:0;border:0;padding:6px 0}.panel-footer{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 20px;margin-top:24px;padding-top:10px;border-top:1px solid var(--hairline)}.panel .suggestions-section{margin:20px 0;border-top:1px solid var(--hairline);padding-top:18px}.panel .suggestions-section h3{margin:0;color:var(--ink);font-size:15px;font-weight:500}.panel .suggestions-section>p{margin:6px 0 12px;color:#aaa9a2;font-size:12px;line-height:1.65}.panel .suggestions-section .suggslot{border:0;padding:0}.panel .suggestions-section .sugg{flex-wrap:wrap;padding:10px 0;font-size:13px;line-height:1.6}.panel .suggestions-section .sugg+.sugg{border-top:1px solid var(--hairline)}.panel .suggestions-section .sugtext{flex:1 1 280px;white-space:normal;overflow:visible;overflow-wrap:anywhere}.panel .suggestions-section .sugbtn,.panel .suggestions-section .sugdismiss{min-height:28px;font-size:12px}.panel .suggestions-section .sugactions{display:inline-flex;flex:none;gap:8px;margin-left:auto}.panel-footer .licfoot{margin:0;text-align:left}.panel-footer .help-detail{border:0;margin-left:auto}.panel-footer .help-detail[open]{flex-basis:100%}.help-detail .feedbackfoot{margin:0;padding:4px 0;text-align:left;align-items:flex-start;font-size:12px;line-height:1.65}.help-detail .feedbackfoot>span{color:#aaa9a2}.panel .taskflow{margin-top:10px}.panel .box{background:#20201e;border-radius:12px;padding:16px 18px}.panel .ask-box.active{background:#fab2190b}.panel .wftitle{font-size:21px;line-height:1.4;font-weight:600}.panel .wfgoal,.panel .wflead{margin-top:12px;line-height:1.6}.panel .taskflow>.fold>summary{padding-top:12px;padding-bottom:12px}.panel .taskflow>.fold{margin-top:0;border-bottom:1px solid var(--hairline)}.panel .taskflow>.box+.fold{margin-top:16px}.panel .project-card{background:#20201e;border-color:var(--hairline);border-radius:12px}.panel .project-title{font-weight:600;line-height:1.5}.panel .project-card:not(.compact){padding:18px}.panel .project-card.compact{padding:9px 14px}.panel .sec>.label{color:var(--ink2);line-height:1.6}.panel .livenone,.panel .emptyrow{line-height:1.65}.panel-detail code,.panel .livenone code{white-space:pre-wrap;overflow-wrap:anywhere}.panel :is(.td,.urow,.crow,.lvrow,.cfgnote){border-top-style:solid;border-color:var(--hairline)}.panel :is(.statechip.nofile,.tier.none,.conn.replay,.demobtn){border-style:solid;border-color:var(--hairline)}.panel .livenone{border:0;padding:10px 0}.panel .task-menu{border:0;border-radius:12px;background:#292927;padding:12px}.task-card-wrap:has(>.expand:not([hidden]))>.task-card{border-bottom-left-radius:0;border-bottom-right-radius:0}.task-card-wrap>.expand:not([hidden]){display:block;width:100%;margin:0;padding:0 16px 12px;border-radius:0 0 12px 12px;background:#262624;color:var(--ink2);text-align:right;font-size:12px}@media(max-width:640px){.panel .project-row-layout{flex-wrap:wrap}.panel .project-row-layout>.project-row{flex-basis:100%}}@media(max-width:520px){.schip.has-session-origin .snew{display:none}.task-card-head{grid-template-columns:minmax(0,1fr);gap:5px}.task-card-meta{margin-left:0}.panel .suggestions-section .sugtext{flex-basis:100%}.panel .crow{flex-wrap:wrap}.panel .crow .cname{white-space:normal;overflow-wrap:anywhere}.panel .crow .ctok{flex-basis:100%}.panel .project-row-layout>.project-row{grid-template-columns:minmax(0,1fr)}.panel .project-row-layout{flex-wrap:wrap}.panel .project-row-layout>.project-row{flex-basis:100%}.panel .project-row-action{grid-column:1;grid-row:auto;justify-self:start}.panel .project-row-goal,.panel .project-row-task{grid-column:1;grid-row:auto}.modal{padding:18px}.panel{padding:18px 16px 14px}.panel .head{gap:6px}.panel .head .badge{flex-basis:auto;font-size:9px}.panel .tabs{gap:2px}.panel .tab{padding:7px 9px;font-size:12px}.task-empty{padding:28px 8px 32px}.task-empty h2{font-size:23px}.panel .box{padding:14px}.panel .wftitle{font-size:19px}.panel .project-card:not(.compact){padding:14px}.panel-detail>summary{flex-wrap:wrap}.panel-detail>summary .fold-summary{white-space:normal}}@media(max-width:380px){.chip.session-origin{max-width:6em}}