Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
51f9ffaa661399ba3ea9a65459ec5f995969ccb5407c0d6ada0a09c89fc1e51a
8a81160891246015bdef6063b3385ea00a60abb368da735c3f2f511437b6df8d
2 changes: 1 addition & 1 deletion billing/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
02e0153705f4f4e86cacd1cbb8974aec050467ffcf0d4de9ee123d9d1ae5da21
2b2ca14aab7e8cc4f2dcda8e8a70aa570bfb7ae897bdbc4f7e372eae8c673ae5
4 changes: 3 additions & 1 deletion chat.css
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,13 @@ html[data-chat-waiting]::after{content:"ask \00b7 " attr(data-chat-waiting);pos
.rbchat-diagram-failed{margin:0;font-size:.85rem}
/* An org chart's marks: Mermaid sets the host's token as an svg.label-icon before a person's name,
sized to the text; a person's mark is the firm brightness and an agent's the mid, as the
Processes page draws them, and both beat the linked label's own color. An open position is a
Processes page draws them, and both beat the linked label's own color; a system's element mark
is the firm brightness too, since a system is a thing and not an agent. An open position is a
dashed box with no fill, and the frame the agents of a group stand in is shaded. */
.rbchat-diagram-box svg .label-icon{width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.3em}
.rbchat-diagram-box svg .rbchat-mark.human{color:var(--c-firm,var(--ink))!important}
.rbchat-diagram-box svg .rbchat-mark.agent{color:var(--c-mid)!important}
.rbchat-diagram-box svg .rbchat-mark.element{color:var(--c-firm,var(--ink))!important}
.rbchat-diagram-box svg .node.open rect{fill:none!important}
.rbchat-diagram-box svg .cluster.agents rect{fill:var(--press)!important}
.rbchat-diagram-reading{margin:.35rem .1rem 0;font-size:.8rem;line-height:1.4;color:var(--dim)}
Expand Down
23 changes: 15 additions & 8 deletions chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@
github: "{title} on GitHub", commit: "commit {sha}",
modalClose: "Close \u00b7 Esc",
ask: { from: "The link you opened asks:", label: "A question from the link you opened", send: "Send", edit: "Edit", discard: "Discard" },
diagram: { concepts: "Concepts", process: "Process", neighborhood: "Connections", schema: "Meta-model", context: "Context map", aggregate: "Aggregate", flow: "Flow", lifecycle: "Lifecycle", organization: "Organization", reading: { context: "One-way arrows run from upstream to downstream; each arrow names the pattern between the two contexts.", aggregate: "The root holds what the diamonds join; the dashed arrows are the events it emits.", flow: "Solid arrows are commands sent to the aggregate, dashed arrows the events it emits; a box names the condition of each branch.", lifecycle: "Each arrow is a step from one state to the next, labeled with the command that takes it where there is one.", organization: "Solid arrows run from a lead to the leads below; a dashed line joins staff to the head they serve; a dashed box is an open position, beside a lead the search for a successor; agents stand in the shaded frame." }, expand: "Open full screen", shut: "Close full screen", zoomIn: "Zoom in", zoomOut: "Zoom out", fit: "Fit", fitTip: "Fit to the screen", failed: "The diagram could not be drawn; this is its source." },
diagram: { concepts: "Concepts", process: "Process", neighborhood: "Connections", schema: "Meta-model", context: "Context map", aggregate: "Aggregate", flow: "Flow", lifecycle: "Lifecycle", organization: "Organization", system: "Landscape", holds: "Data held", reading: { context: "One-way arrows run from upstream to downstream; each arrow names the pattern between the two contexts.", aggregate: "The root holds what the diamonds join; the dashed arrows are the events it emits.", flow: "Solid arrows are commands sent to the aggregate, dashed arrows the events it emits; a box names the condition of each branch.", lifecycle: "Each arrow is a step from one state to the next, labeled with the command that takes it where there is one.", organization: "Solid arrows run from a lead to the leads below; a dashed line joins staff to the head they serve; a dashed box is an open position, beside a lead the search for a successor; agents stand in the shaded frame.", system: "Solid arrows run from the system the data comes from to the one that takes it, labeled with the interface, what is carried and how; a dotted line joins a system to what it runs on; a rounded box is a service the system provides; a cylinder is data it holds, by a heavy arrow where its copy leads, a solid one where it writes and a dotted one where it only reads.", holds: "Each cylinder is data kept of the concept named under it; a heavy arrow marks the system whose copy leads, a solid one a system that writes a copy of its own, a dotted one a system that only reads." }, expand: "Open full screen", shut: "Close full screen", zoomIn: "Zoom in", zoomOut: "Zoom out", fit: "Fit", fitTip: "Fit to the screen", failed: "The diagram could not be drawn; this is its source." },
refusal: {
too_long: "That message is over 1,000 characters.",
too_much: "The conversation has grown too long to send; start a new one.",
Expand Down Expand Up @@ -177,7 +177,7 @@
github: "{title} auf GitHub", commit: "Commit {sha}",
modalClose: "Schliessen \u00b7 Esc",
ask: { from: "Der Link, den Sie geöffnet haben, enthält diese Frage:", label: "Eine Frage aus dem Link, den Sie geöffnet haben", send: "Senden", edit: "Bearbeiten", discard: "Verwerfen" },
diagram: { concepts: "Konzepte", process: "Prozess", neighborhood: "Verbindungen", schema: "Meta-Modell", context: "Context Map", aggregate: "Aggregat", flow: "Ablauf", lifecycle: "Lebenszyklus", organization: "Organisation", reading: { context: "Einfache Pfeile laufen vom Upstream- zum Downstream-Kontext; jeder Pfeil nennt das Muster zwischen den beiden Kontexten.", aggregate: "Die Wurzel des Aggregats hält, was die Rauten verbinden; die gestrichelten Pfeile sind die Ereignisse, die sie auslöst.", flow: "Durchgezogene Pfeile sind Befehle an das Aggregat, gestrichelte die Ereignisse, die es auslöst; ein Kasten nennt die Bedingung jedes Zweigs.", lifecycle: "Jeder Pfeil ist ein Schritt von einem Zustand zum nächsten, beschriftet mit dem Befehl, der ihn auslöst, wo es einen gibt.", organization: "Durchgezogene Pfeile laufen von einer Führungskraft zu den Führungskräften darunter; eine gestrichelte Linie verbindet eine Stabsstelle mit der Leitung, der sie zuarbeitet; ein gestrichelter Kasten ist eine offene Stelle, neben einer Führungskraft die Suche nach ihrer Nachfolge; Software-Agenten stehen im farbig hinterlegten Rahmen." }, expand: "Im Vollbild öffnen", shut: "Vollbild schliessen", zoomIn: "Vergrössern", zoomOut: "Verkleinern", fit: "Einpassen", fitTip: "Auf den Bildschirm einpassen", failed: "Das Diagramm konnte nicht gezeichnet werden; dies ist seine Quelle." },
diagram: { concepts: "Konzepte", process: "Prozess", neighborhood: "Verbindungen", schema: "Meta-Modell", context: "Context Map", aggregate: "Aggregat", flow: "Ablauf", lifecycle: "Lebenszyklus", organization: "Organisation", system: "Landschaft", holds: "Datenbestand", reading: { context: "Einfache Pfeile laufen vom Upstream- zum Downstream-Kontext; jeder Pfeil nennt das Muster zwischen den beiden Kontexten.", aggregate: "Die Wurzel des Aggregats hält, was die Rauten verbinden; die gestrichelten Pfeile sind die Ereignisse, die sie auslöst.", flow: "Durchgezogene Pfeile sind Befehle an das Aggregat, gestrichelte die Ereignisse, die es auslöst; ein Kasten nennt die Bedingung jedes Zweigs.", lifecycle: "Jeder Pfeil ist ein Schritt von einem Zustand zum nächsten, beschriftet mit dem Befehl, der ihn auslöst, wo es einen gibt.", organization: "Durchgezogene Pfeile laufen von einer Führungskraft zu den Führungskräften darunter; eine gestrichelte Linie verbindet eine Stabsstelle mit der Leitung, der sie zuarbeitet; ein gestrichelter Kasten ist eine offene Stelle, neben einer Führungskraft die Suche nach ihrer Nachfolge; Software-Agenten stehen im farbig hinterlegten Rahmen.", system: "Durchgezogene Pfeile laufen vom System, aus dem die Daten stammen, zum System, das sie übernimmt, beschriftet mit der Schnittstelle und mit dem, was übertragen wird und wie; eine gepunktete Linie verbindet ein System mit dem, worauf es läuft; ein abgerundeter Kasten ist ein Service, den das System bereitstellt; ein Zylinder ist ein Datenbestand, den es hält – mit einem dicken Pfeil, wo seine Kopie führend ist, einem durchgezogenen, wo es schreibt, und einem gepunkteten, wo es nur liest.", holds: "Jeder Zylinder ist ein Datenbestand zum darunter genannten Konzept; ein dicker Pfeil markiert das System, dessen Kopie führend ist, ein durchgezogener ein System, das eine eigene Kopie schreibt, ein gepunkteter ein System, das nur liest." }, expand: "Im Vollbild öffnen", shut: "Vollbild schliessen", zoomIn: "Vergrössern", zoomOut: "Verkleinern", fit: "Einpassen", fitTip: "Auf den Bildschirm einpassen", failed: "Das Diagramm konnte nicht gezeichnet werden; dies ist seine Quelle." },
refusal: {
too_long: "Diese Nachricht ist länger als 1’000 Zeichen.",
too_much: "Das Gespräch ist zu lang geworden, um es zu senden; beginnen Sie ein neues.",
Expand Down Expand Up @@ -918,18 +918,25 @@
// The picture the one modal holds, its handle, and the zoom controls it carries in its head.
var modalFig = null, modalHandle = null, zoomBar = null, zoomIn = null, zoomOut = null, zoomFit = null;

// The two natures' marks, lib/marks.mjs's own, which a test holds this copy to. The host writes
// `fak:fa-human` or `fak:fa-agent` before a person's name, and Mermaid swaps the token for the
// mark before it measures the label, so the box fits it. Registered once per Mermaid, whoever
// loaded it; each body is wrapped in a group whose class chat.css colors.
// The marks, lib/marks.mjs's own, which a test holds this copy to: the two natures', and the six
// ArchiMate elements a system's kind names, at the firm brightness. The host writes `fak:fa-human`
// or `fak:fa-agent` before a person's name and `fak:fa-<element>` before a system's, and Mermaid
// swaps the token for the mark before it measures the label, so the box fits it. Registered once
// per Mermaid, whoever loaded it; each body is wrapped in a group whose class chat.css colors.
var MARKS = {
human: '<circle cx="8" cy="4.6" r="3.1" fill="currentColor"/><path d="M1.6 15.4a6.4 6.4 0 0 1 12.8 0z" fill="currentColor"/>',
agent: '<g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"><rect x="2" y="5.4" width="12" height="8.6" rx="2.6"/><path d="M8 5.4V3.2"/></g><circle cx="8" cy="2.1" r="1.1" fill="currentColor"/><circle cx="5.7" cy="9.6" r="1.05" fill="currentColor"/><circle cx="10.3" cy="9.6" r="1.05" fill="currentColor"/>'
agent: '<g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"><rect x="2" y="5.4" width="12" height="8.6" rx="2.6"/><path d="M8 5.4V3.2"/></g><circle cx="8" cy="2.1" r="1.1" fill="currentColor"/><circle cx="5.7" cy="9.6" r="1.05" fill="currentColor"/><circle cx="10.3" cy="9.6" r="1.05" fill="currentColor"/>',
"application-component": '<rect x="4.5" y="2" width="9.5" height="12" rx="1" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2" y="4.6" width="5" height="2.4" fill="currentColor"/><rect x="2" y="9" width="5" height="2.4" fill="currentColor"/>',
node: '<path d="M2.5 5.5L5.5 2.5H13.5V10.5L10.5 13.5H2.5ZM2.5 5.5H10.5V13.5M10.5 5.5L13.5 2.5" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round"/>',
"system-software": '<circle cx="7" cy="9" r="5.5" fill="none" stroke="currentColor" stroke-width="1.4"/><circle cx="10.5" cy="5.5" r="3.4" fill="none" stroke="currentColor" stroke-width="1.4"/>',
device: '<rect x="2" y="2.5" width="12" height="8.5" rx="1" fill="none" stroke="currentColor" stroke-width="1.4"/><path d="M5 14h6M8 11v3" fill="none" stroke="currentColor" stroke-width="1.4"/>',
equipment: '<circle cx="8" cy="8" r="3" fill="none" stroke="currentColor" stroke-width="1.4"/><path d="M8 1.5v2.3M8 12.2v2.3M1.5 8h2.3M12.2 8h2.3M3.4 3.4l1.6 1.6M11 11l1.6 1.6M3.4 12.6l1.6-1.6M11 5l1.6-1.6" fill="none" stroke="currentColor" stroke-width="1.4"/>',
"communication-network": '<circle cx="3.2" cy="11.5" r="2.1" fill="currentColor"/><circle cx="12.8" cy="4.5" r="2.1" fill="currentColor"/><circle cx="12.8" cy="11.5" r="2.1" fill="currentColor"/><path d="M5 10.2L11 5.8M5.3 11.5h5.4" stroke="currentColor" stroke-width="1.3"/>'
};
function withMarks(m){
if (m && typeof m.registerIconPacks === "function" && !m.rbMarks) {
var icons = {};
Object.keys(MARKS).forEach(function(k){ icons[k] = { body: '<g class="rbchat-mark ' + k + '">' + MARKS[k] + "</g>" }; });
Object.keys(MARKS).forEach(function(k){ icons[k] = { body: '<g class="rbchat-mark ' + (k === "human" || k === "agent" ? k : "element " + k) + '">' + MARKS[k] + "</g>" }; });
m.registerIconPacks([{ name: "fak", icons: { prefix: "fak", width: 16, height: 16, icons: icons } }]);
m.rbMarks = true;
}
Expand Down
2 changes: 1 addition & 1 deletion model/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
62621dc202a81b9f3eef57a00d2a07ddede86be2669fda1572b8b950df692ea9
a56f9d8a0330f4bf1263d9a079589b755d59b70c87bc7333d1267d421a54257e
2 changes: 1 addition & 1 deletion og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
26c61439f947f01b412a70d7a7c9ccd2e1c03f28a8fc87b7459b67f3bd91da2d
f198ed2f7abb8b5d3483171fd5b6e4f424d57103b74e4b0746323f6ffc731f5c
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"pin:check": "node pin-check.mjs"
},
"devDependencies": {
"@robertblust/design": "github:robertblust/design#v0.146.0",
"@robertblust/design": "github:robertblust/design#v0.147.0",
"companygraph-mcp-server": "github:companygraph/mcp-server#v0.62.0",
"pdf-lib": "^1.17.1",
"playwright": "^1.63.0",
Expand Down
2 changes: 1 addition & 1 deletion principles/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
305bbef0aa0366e829db71a0fdd70089eabaedd39aeffe2b47d804aa24b1cc39
701606c27a0fc17be786b4c71a8cb0809e705a84445c166c6209c998a87d3e10
2 changes: 1 addition & 1 deletion privacy/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f6d7a5f2d275ad749f91ca7bc4493064bf506e76b4b6f5137e5d02205ef42c0d
06ee2d61deda8cd7ad52dc834d659e2c1604c6191eca547f608702731d420270
2 changes: 1 addition & 1 deletion problems/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6d3e78d7f4c73c4cd538f3c0cc5e45c241d3c2394e1cfb30c4a824e77e5052f1
c7e2a5f245d2fbfcdf0078937671e8f00048dce26277630693d6b9901b2b726d
2 changes: 1 addition & 1 deletion processes/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7a0f3c3f1dd453f6028d2b9628558be9599ae1ad10a305044a56589d64f5c09a
6a6f4c4205f7c519ed2bf7d4c4f645efb0d42074013a70ec2df177dfa72e40a7
2 changes: 1 addition & 1 deletion processes/pictures/answering.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
36c28e3a9af3515c5be560e9624c91141c16e421bd306706ba20317deedc0d48
7dc6b54276daeafea6eed35f7d101da47758ab2b436cdd845c33176932ea9909
2 changes: 1 addition & 1 deletion processes/pictures/contribution.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
39fbe2b63466e47740d5a0b18e0e7539b0ca1c1b772697a597a6e4dce4a052fa
33d3c66da218c8978a554b39d3517e80ba1e1558aea0b43196332dd593076c84
2 changes: 1 addition & 1 deletion processes/pictures/deciding.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
38fbc888caadf93f21afae94897af7ae56985f3c40064fde31ed04c7e282af06
c6e6621c5b8192f1327eb4b7a0c1d5ada7e26b28111787b3925f3537f93a86ea
2 changes: 1 addition & 1 deletion processes/pictures/delivery.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
cd93b530078ab085dec3fd07ca7d4da66ab9d5bf81fa551353840562c7e1433d
6a6e06aa0eaba47199ef309fa97db0b7a723c9fe833b7c9fd6c872c41afab028
2 changes: 1 addition & 1 deletion processes/pictures/feature-request.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
69b2ec4eec4dc11171187c708c60f0c447e3434b7548d80c8ebeab6a7425cef4
c4eba458643112eb2876655be56af4b7206fcc1b7367b07d795190e244f4f568
2 changes: 1 addition & 1 deletion processes/pictures/narrating.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
048e6e882f2082f7259c87825cd3f7a5a4c78c12e53c9866f75069d6d0119b24
527c0dd790ba7dc2fc0c18e2c835914de7e283581a8ed11b727d7c49b5df5c58
2 changes: 1 addition & 1 deletion surfaces/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3e1f1dd4434aab3436b5e62cf8546bcc2902f86d25109679f09f9c5986d1949f
46e0e491acf35ac3de7db370350add2e11177f120d5189fca76f10acebc13444
2 changes: 1 addition & 1 deletion talks/intro/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ce0fc93d958f918cffb3e9bc490bee4a4f2804d5d88d350e8036e71bb46fb8ac
1f9f6d049ed514c5f616368a23322b9126e805977dd0d5f7a143cb720e5ba474
2 changes: 1 addition & 1 deletion talks/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4a8276464058b68abd8dad5826ab61fdc61646b210ce507fe5841c249ad03a3e
a3859b2cb8729328f832c93bff6a73a553c240a18bee14738ac28f1c8088fc1a
Loading