@telepath-computer/television 0.1.3 → 0.1.5
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/artifact-runtime/index.js +1 -0
- package/dist/artifact-runtime/style.css +1 -0
- package/dist/browser/assets/index-BjnPQRrV.js +481 -0
- package/dist/browser/assets/index-DFSUqRXC.css +1 -0
- package/dist/browser/index.html +2 -2
- package/dist/cli.cjs +33 -6
- package/dist/electron.cjs +27 -5
- package/package.json +5 -4
- package/dist/browser/assets/index-Ctq-tqkf.js +0 -443
- package/dist/browser/assets/index-W7D1rDld.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
artifact-view{background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:10px;box-sizing:border-box;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.artifact-title-bar{display:flex;align-items:center;height:34px;padding:0 12px;flex-shrink:0;border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.artifact-title{flex:1;font-size:13px;font-weight:500;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-close-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.artifact-close-btn:hover{background:var(--color-interactive);color:var(--color-text)}.artifact-content{flex:1;min-height:0;overflow-y:auto;padding:0}artifact-view[type=markdown] .artifact-content{padding:16px 20px}artifact-view[type=html] .artifact-content{overflow:hidden}.artifact-html-frame{pointer-events:none}.markdown-body{font-size:14px;line-height:1.6;color:var(--color-text)}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3{font-weight:600;margin:1.25em 0 .5em}.markdown-body h1{font-size:1.4em}.markdown-body h2{font-size:1.2em}.markdown-body h3{font-size:1.05em}.markdown-body p{margin:.75em 0}.markdown-body code{font-family:var(--font-mono);font-size:.9em;background:var(--color-interactive);padding:.15em .35em;border-radius:4px}.markdown-body pre{background:var(--color-interactive);border-radius:6px;padding:12px 14px;overflow-x:auto}.markdown-body pre code{background:none;padding:0}.markdown-body ul,.markdown-body ol{padding-left:1.5em;margin:.75em 0}.markdown-body blockquote{margin:.75em 0;padding-left:1em;border-left:3px solid var(--color-border);color:var(--color-text-muted)}.markdown-body a{color:var(--color-text);text-decoration:underline}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:1em 0}layout-stream{width:100%;flex:1;min-width:0;min-height:0;display:flex;align-items:center;overflow:hidden;outline:none;position:relative;--layout-col-width: 300px;--layout-row-height: 133.33px;--layout-gap: 16px}layout-stream .track{display:flex;align-items:start;gap:var(--layout-gap);flex-shrink:0;width:max-content;will-change:transform;transition:transform .2s ease}layout-stream .band{display:grid;grid-template-rows:repeat(6,var(--layout-row-height));gap:var(--layout-gap);align-self:start}layout-stream .band[layout-band-cols="1"]{grid-template-columns:var(--layout-col-width);width:var(--layout-col-width)}layout-stream .band[layout-band-cols="2"]{grid-template-columns:repeat(2,var(--layout-col-width));width:calc(var(--layout-col-width) * 2 + var(--layout-gap))}layout-stream .card-slot{border-radius:12px;box-sizing:border-box;cursor:pointer;min-width:0;min-height:0}layout-stream .card-slot.placeholder{background:#94a3b829;border:2px dashed rgba(148,163,184,.7);box-shadow:inset 0 0 0 1px #0f172a0d}layout-stream .card-slot.dragging{position:fixed;z-index:100;opacity:.7;transform:rotate(2deg);pointer-events:none;cursor:grabbing}layout-stream .card-slot artifact-view{width:100%;height:100%}layout-stream .card-slot[layout-cols="1"][layout-rows="2"]{padding:16px}layout-stream .card-slot[layout-cols="1"][layout-rows="2"] artifact-view{position:relative}layout-stream .card-slot[layout-cols="1"][layout-rows="2"] .artifact-title-bar{position:absolute;top:0;left:0;right:0;z-index:2;border-radius:10px 10px 0 0;background:var(--color-bg-muted);opacity:0;pointer-events:none;transition:opacity .12s ease}layout-stream .card-slot[layout-cols="1"][layout-rows="2"]:hover .artifact-title-bar,layout-stream .card-slot[layout-cols="1"][layout-rows="2"]:focus-within .artifact-title-bar{opacity:1;pointer-events:auto}workspace-view{width:100%;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}workspace-view [data-testid=empty-workspace]{margin:0;padding:1rem}television-app{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr;grid-template-areas:"header" "main"}television-app>header{grid-area:header;position:relative;z-index:10}television-app>main{grid-area:main;grid-row:1 / -1}body.electron television-app>header{-webkit-app-region:drag;padding-left:80px;border-bottom:1px solid var(--color-border)}header{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 12px;flex-shrink:0;-webkit-user-select:none;user-select:none}television-app>header>nav{display:flex;align-items:center;gap:8px;min-width:0}workspace-picker,workspace-picker [trigger],button[variant=toolbar],.settings-server-remove-button,.settings-submit-button,.settings-cancel-button,.settings-connect-button,.settings-field input{-webkit-app-region:no-drag}workspace-picker dropdown-menu::part(panel){min-width:18rem}workspace-picker [trigger],workspace-picker [trigger][data-dropdown-trigger]{min-width:0;padding:0;border:none;background:transparent;font-size:13px;font-weight:600}workspace-picker [trigger] .trigger-label{white-space:nowrap}dropdown-group{display:block;padding:4px 0}dropdown-label{display:block;padding:0 10px 4px;font-size:12px;color:color-mix(in srgb,currentColor 60%,transparent)}dropdown-item{display:block;padding:6px 10px;border-radius:4px;cursor:pointer}dropdown-item[selected]{background:color-mix(in srgb,var(--color-border) 70%,white)}dropdown-item[action]{color:color-mix(in srgb,currentColor 50%,transparent)}dropdown-item[danger]{color:#c74343}television-app>main{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}television-app>main.auth-gate{display:flex;align-items:center;justify-content:center}.settings-panel{width:min(32rem,100%);display:flex;flex-direction:column;padding:20px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg)}.workspace-modal,.auth-modal{width:min(24rem,100%);display:flex;flex-direction:column;padding:20px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-modal-title,.auth-modal-copy{margin:0}.auth-token-input-invalid{border-color:#c74343}.workspace-form{display:flex;flex-direction:column;gap:12px}.workspace-form-actions{display:flex;gap:8px}.workspace-modal-title,.workspace-delete-copy,.workspace-delete-warning,.workspace-delete-error{margin:0}.workspace-delete-warning,.workspace-delete-error{font-size:13px}.workspace-delete-error{color:#c74343}.settings-section-title{margin:0}.settings-section,.settings-server-list,.settings-add-server-form{display:flex;flex-direction:column;gap:12px}.settings-form-actions{display:flex;gap:8px}.settings-card{padding:12px;border:1px solid var(--color-border);border-radius:8px}.settings-server{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-server-details{min-width:0}.settings-server-name{font-weight:600}.settings-server-url{font-size:13px;word-break:break-word;color:color-mix(in srgb,currentColor 70%,transparent)}.settings-server-remove-button,.settings-submit-button,.settings-cancel-button,.settings-connect-button{padding:8px 12px;border-radius:8px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field input{width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:inherit;font:inherit;box-sizing:border-box}.settings-submit-button,.settings-cancel-button,.settings-connect-button{align-self:flex-start}:root{--black: #000000;--white: #ffffff;--neutral-50: oklch(.985 .001 106.423);--neutral-100: oklch(.97 .001 106.424);--neutral-200: oklch(.923 .003 48.717);--neutral-300: oklch(.869 .005 56.366);--neutral-400: oklch(.709 .01 56.259);--neutral-500: oklch(.553 .013 58.071);--neutral-600: oklch(.444 .011 73.639);--neutral-700: oklch(.374 .01 67.558);--neutral-800: oklch(.268 .007 34.298);--neutral-900: oklch(.216 .006 56.043);--neutral-950: oklch(.147 .004 49.25)}dropdown-menu{position:relative;display:inline-block;color:inherit}dropdown-group{display:grid;gap:var(--space-4)}dropdown-label{display:block;padding:var(--space-4) var(--space-8);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase}dropdown-divider{display:block;height:1px;margin:var(--space-4) 0;background:var(--color-border)}[data-dropdown-trigger],dropdown-item{color:inherit;font:inherit;line-height:1.2}[data-dropdown-trigger],dropdown-menu::part(trigger){display:inline-flex;align-items:center;gap:var(--space-8);margin:0;padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:none;cursor:pointer}[data-dropdown-trigger]:hover,dropdown-menu::part(trigger):hover{background:var(--color-interactive-hover)}dropdown-menu[open] [data-dropdown-trigger],dropdown-menu[open]::part(trigger){background:var(--color-interactive)}[data-dropdown-trigger-label],dropdown-menu::part(trigger-label){min-width:0}[data-dropdown-trigger-icon],dropdown-menu::part(trigger-icon){display:inline-flex;align-items:center;justify-content:center;flex:none}[data-dropdown-trigger]:focus-visible,dropdown-menu::part(trigger):focus-visible,dropdown-item:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}dropdown-menu::part(panel){position:absolute;top:calc(100% + var(--space-4));left:0;z-index:var(--layer-popover);min-width:12rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-popover)}dropdown-item{display:block;margin:0;padding:.375rem .5rem;border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none}dropdown-item:hover{background:var(--color-interactive-hover)}dropdown-item[selected]{background:var(--color-interactive)}panel-view{display:block}panel-view::part(panel){display:flex;flex-direction:column;gap:var(--space-16);color:var(--color-text)}panel-view::part(header){display:flex;align-items:center;justify-content:space-between;gap:var(--space-12)}panel-view::part(title-group){display:flex;align-items:center;gap:var(--space-8);min-width:0}panel-view::part(title){margin:0;font:inherit;font-size:var(--text-lg);font-weight:600;color:var(--color-text)}panel-view::part(button){display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);box-shadow:none;cursor:pointer}panel-view::part(button):hover{background:var(--color-interactive-hover)}panel-view::part(button):focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}panel-view::part(icon){display:inline-flex;align-items:center;justify-content:center;flex:none}panel-view::part(back-icon){transform:rotate(90deg)}modal-overlay{color:inherit}modal-overlay::part(backdrop){position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--layer-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-16);background:var(--color-overlay-backdrop)}*,*:before,*:after{box-sizing:border-box}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-brand: var(--font-sans);--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--text-sm: 12px;--text-base: 14px;--text-lg: 16px;--leading-base: 1.5;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-12: 12px;--space-16: 16px;--radius-sm: .375rem;--radius-md: .5rem;--layer-popover: 10;--layer-modal: 1000;--shadow-popover: 0 12px 32px rgb(0 0 0 / .14);--shadow-modal: 0 24px 64px rgb(0 0 0 / .2);--color-bg: var(--neutral-50);--color-bg-muted: var(--neutral-100);--color-surface: var(--white);--color-surface-muted: var(--neutral-100);--color-interactive: var(--neutral-200);--color-interactive-hover: var(--neutral-300);--color-border: var(--neutral-300);--color-border-muted: var(--neutral-200);--color-text: var(--neutral-900);--color-text-muted: var(--neutral-500);--color-link: inherit;--color-focus-ring: var(--neutral-500);--color-overlay-backdrop: rgb(0 0 0 / .5)}html,body{margin:0;padding:0;width:100%;height:100%}html{color-scheme:light}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-base);color:var(--color-text);background:var(--color-bg)}a{text-underline-offset:.15em;text-decoration-thickness:.08em}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--color-link)}code,pre{font-family:var(--font-mono)}h1,h2,h3,h4,h5,h6{color:var(--color-text)}[data-ui-icon]{display:inline-block;vertical-align:middle}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:inherit;cursor:pointer}button:hover{background:var(--color-interactive)}button[variant=toolbar]{border:none;background:transparent;color:var(--color-text-muted)}button[size=sm]{min-height:26px;padding:var(--space-2) var(--space-6)}button[size=md]{min-height:32px;padding:var(--space-6) var(--space-12)}:root{--color-bg: var(--neutral-200);--color-border: var(--neutral-300)}
|
package/dist/browser/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Television</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-BjnPQRrV.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-DFSUqRXC.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body></body>
|
|
11
11
|
</html>
|
package/dist/cli.cjs
CHANGED
|
@@ -59600,6 +59600,7 @@ var TelevisionClient = class {
|
|
|
59600
59600
|
body: {
|
|
59601
59601
|
title: input.title,
|
|
59602
59602
|
content: input.content,
|
|
59603
|
+
type: input.type,
|
|
59603
59604
|
workspaceID: input.workspaceID
|
|
59604
59605
|
}
|
|
59605
59606
|
});
|
|
@@ -74800,6 +74801,7 @@ function createTools(store) {
|
|
|
74800
74801
|
type: "object",
|
|
74801
74802
|
properties: {
|
|
74802
74803
|
id: { type: "string" },
|
|
74804
|
+
type: { type: "string", enum: ["markdown", "html"] },
|
|
74803
74805
|
title: { type: "string" },
|
|
74804
74806
|
content: { type: "string" },
|
|
74805
74807
|
workspaceID: { type: "string" }
|
|
@@ -74812,6 +74814,13 @@ function createTools(store) {
|
|
|
74812
74814
|
const title = args.title;
|
|
74813
74815
|
const content = args.content;
|
|
74814
74816
|
let workspaceID = typeof args.workspaceID === "string" ? args.workspaceID : void 0;
|
|
74817
|
+
let artifactType;
|
|
74818
|
+
if (args.type !== void 0) {
|
|
74819
|
+
if (args.type !== "markdown" && args.type !== "html") {
|
|
74820
|
+
return { error: 'type must be "markdown" or "html"' };
|
|
74821
|
+
}
|
|
74822
|
+
artifactType = args.type;
|
|
74823
|
+
}
|
|
74815
74824
|
if (typeof title !== "string" || typeof content !== "string" || id !== void 0 && typeof id !== "string" || workspaceID !== void 0 && typeof workspaceID !== "string") {
|
|
74816
74825
|
return { error: "title and content must be strings" };
|
|
74817
74826
|
}
|
|
@@ -74824,7 +74833,7 @@ function createTools(store) {
|
|
|
74824
74833
|
}
|
|
74825
74834
|
}
|
|
74826
74835
|
try {
|
|
74827
|
-
const artifact = store.createArtifact({ id, title, content, workspaceID });
|
|
74836
|
+
const artifact = store.createArtifact({ id, title, content, workspaceID, type: artifactType });
|
|
74828
74837
|
return { artifact };
|
|
74829
74838
|
} catch (error2) {
|
|
74830
74839
|
return { error: error2 instanceof Error ? error2.message : "Failed to create artifact" };
|
|
@@ -75315,6 +75324,20 @@ function ulid3(seedTime, prng) {
|
|
|
75315
75324
|
|
|
75316
75325
|
// src/server/workspace-store.ts
|
|
75317
75326
|
var import_node_crypto2 = require("node:crypto");
|
|
75327
|
+
|
|
75328
|
+
// src/artifacts.ts
|
|
75329
|
+
var DEFAULT_ARTIFACT_TYPE = "markdown";
|
|
75330
|
+
function createArtifact(input) {
|
|
75331
|
+
const type = input.type ?? DEFAULT_ARTIFACT_TYPE;
|
|
75332
|
+
return {
|
|
75333
|
+
id: input.id ?? ulid3(),
|
|
75334
|
+
type,
|
|
75335
|
+
title: input.title,
|
|
75336
|
+
content: input.content
|
|
75337
|
+
};
|
|
75338
|
+
}
|
|
75339
|
+
|
|
75340
|
+
// src/server/workspace-store.ts
|
|
75318
75341
|
var import_node_fs2 = require("node:fs");
|
|
75319
75342
|
var import_node_path3 = __toESM(require("node:path"), 1);
|
|
75320
75343
|
|
|
@@ -75432,12 +75455,12 @@ var WorkspaceStore = class extends Emitter {
|
|
|
75432
75455
|
throw new Error("workspaceID is required");
|
|
75433
75456
|
}
|
|
75434
75457
|
const workspace = this.requireWorkspace(input.workspaceID);
|
|
75435
|
-
const artifact = {
|
|
75436
|
-
id: input.id
|
|
75437
|
-
type:
|
|
75458
|
+
const artifact = createArtifact({
|
|
75459
|
+
id: input.id,
|
|
75460
|
+
type: input.type,
|
|
75438
75461
|
title: input.title,
|
|
75439
75462
|
content: input.content
|
|
75440
|
-
};
|
|
75463
|
+
});
|
|
75441
75464
|
this.artifacts.set(artifact.id, artifact);
|
|
75442
75465
|
workspace.layout.push(createLayoutCardRecord(artifact.id));
|
|
75443
75466
|
this.persistArtifact(artifact);
|
|
@@ -75750,11 +75773,15 @@ function createProgram(env) {
|
|
|
75750
75773
|
});
|
|
75751
75774
|
});
|
|
75752
75775
|
});
|
|
75753
|
-
program2.command("create-artifact").description("Create an artifact in a workspace").requiredOption("--title <title>", "Artifact title").requiredOption("--content <content>", "Artifact content (markdown)").option("--workspace <id>", "Target workspace ID").option("--server <url>", "Server URL", DEFAULT_SERVER_URL).action(async (opts) => {
|
|
75776
|
+
program2.command("create-artifact").description("Create an artifact in a workspace").requiredOption("--title <title>", "Artifact title").requiredOption("--content <content>", "Artifact content").option("--type <type>", "Artifact type (markdown or html)", "markdown").option("--workspace <id>", "Target workspace ID").option("--server <url>", "Server URL", DEFAULT_SERVER_URL).action(async (opts) => {
|
|
75777
|
+
if (opts.type !== "markdown" && opts.type !== "html") {
|
|
75778
|
+
throw new Error("--type must be 'markdown' or 'html'");
|
|
75779
|
+
}
|
|
75754
75780
|
const client = createAuthenticatedClient(opts.server);
|
|
75755
75781
|
writeJSON(env.stdout, await client.createArtifact({
|
|
75756
75782
|
title: opts.title,
|
|
75757
75783
|
content: opts.content,
|
|
75784
|
+
type: opts.type,
|
|
75758
75785
|
workspaceID: opts.workspace
|
|
75759
75786
|
}));
|
|
75760
75787
|
});
|
package/dist/electron.cjs
CHANGED
|
@@ -71089,6 +71089,7 @@ function createTools(store) {
|
|
|
71089
71089
|
type: "object",
|
|
71090
71090
|
properties: {
|
|
71091
71091
|
id: { type: "string" },
|
|
71092
|
+
type: { type: "string", enum: ["markdown", "html"] },
|
|
71092
71093
|
title: { type: "string" },
|
|
71093
71094
|
content: { type: "string" },
|
|
71094
71095
|
workspaceID: { type: "string" }
|
|
@@ -71101,6 +71102,13 @@ function createTools(store) {
|
|
|
71101
71102
|
const title = args.title;
|
|
71102
71103
|
const content = args.content;
|
|
71103
71104
|
let workspaceID = typeof args.workspaceID === "string" ? args.workspaceID : void 0;
|
|
71105
|
+
let artifactType;
|
|
71106
|
+
if (args.type !== void 0) {
|
|
71107
|
+
if (args.type !== "markdown" && args.type !== "html") {
|
|
71108
|
+
return { error: 'type must be "markdown" or "html"' };
|
|
71109
|
+
}
|
|
71110
|
+
artifactType = args.type;
|
|
71111
|
+
}
|
|
71104
71112
|
if (typeof title !== "string" || typeof content !== "string" || id !== void 0 && typeof id !== "string" || workspaceID !== void 0 && typeof workspaceID !== "string") {
|
|
71105
71113
|
return { error: "title and content must be strings" };
|
|
71106
71114
|
}
|
|
@@ -71113,7 +71121,7 @@ function createTools(store) {
|
|
|
71113
71121
|
}
|
|
71114
71122
|
}
|
|
71115
71123
|
try {
|
|
71116
|
-
const artifact = store.createArtifact({ id, title, content, workspaceID });
|
|
71124
|
+
const artifact = store.createArtifact({ id, title, content, workspaceID, type: artifactType });
|
|
71117
71125
|
return { artifact };
|
|
71118
71126
|
} catch (error2) {
|
|
71119
71127
|
return { error: error2 instanceof Error ? error2.message : "Failed to create artifact" };
|
|
@@ -71604,6 +71612,20 @@ function ulid3(seedTime, prng) {
|
|
|
71604
71612
|
|
|
71605
71613
|
// src/server/workspace-store.ts
|
|
71606
71614
|
var import_node_crypto2 = require("node:crypto");
|
|
71615
|
+
|
|
71616
|
+
// src/artifacts.ts
|
|
71617
|
+
var DEFAULT_ARTIFACT_TYPE = "markdown";
|
|
71618
|
+
function createArtifact(input) {
|
|
71619
|
+
const type = input.type ?? DEFAULT_ARTIFACT_TYPE;
|
|
71620
|
+
return {
|
|
71621
|
+
id: input.id ?? ulid3(),
|
|
71622
|
+
type,
|
|
71623
|
+
title: input.title,
|
|
71624
|
+
content: input.content
|
|
71625
|
+
};
|
|
71626
|
+
}
|
|
71627
|
+
|
|
71628
|
+
// src/server/workspace-store.ts
|
|
71607
71629
|
var import_node_fs = require("node:fs");
|
|
71608
71630
|
var import_node_path2 = __toESM(require("node:path"), 1);
|
|
71609
71631
|
|
|
@@ -71721,12 +71743,12 @@ var WorkspaceStore = class extends Emitter {
|
|
|
71721
71743
|
throw new Error("workspaceID is required");
|
|
71722
71744
|
}
|
|
71723
71745
|
const workspace = this.requireWorkspace(input.workspaceID);
|
|
71724
|
-
const artifact = {
|
|
71725
|
-
id: input.id
|
|
71726
|
-
type:
|
|
71746
|
+
const artifact = createArtifact({
|
|
71747
|
+
id: input.id,
|
|
71748
|
+
type: input.type,
|
|
71727
71749
|
title: input.title,
|
|
71728
71750
|
content: input.content
|
|
71729
|
-
};
|
|
71751
|
+
});
|
|
71730
71752
|
this.artifacts.set(artifact.id, artifact);
|
|
71731
71753
|
workspace.layout.push(createLayoutCardRecord(artifact.id));
|
|
71732
71754
|
this.persistArtifact(artifact);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telepath-computer/television",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/electron.cjs",
|
|
6
6
|
"bin": {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"dev": "npm run dev:server",
|
|
14
14
|
"dev:electron": "scripts/dev-electron.sh",
|
|
15
15
|
"dev:server": "scripts/dev-server.sh",
|
|
16
|
-
"demo:layout": "vite --config vite.demo-layout.
|
|
17
|
-
"build": "npm run build:renderer && npm run build:cli && npm run build:electron",
|
|
16
|
+
"demo:layout": "vite --config config/vite.demo-layout.ts --host 127.0.0.1",
|
|
17
|
+
"build": "npm run build:artifact-runtime && npm run build:renderer && npm run build:cli && npm run build:electron",
|
|
18
18
|
"prepack": "npm run build",
|
|
19
19
|
"start": "npm run build && env -u ELECTRON_RUN_AS_NODE electron .",
|
|
20
20
|
"lint": "eslint . --ext .ts --max-warnings=0",
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"test:all": "npm test && npm run test:e2e && npm run test:electron",
|
|
28
28
|
"test:watch": "vitest",
|
|
29
29
|
"verify": "npm run lint && npm run type-check && npm run test:all",
|
|
30
|
-
"build:
|
|
30
|
+
"build:artifact-runtime": "vite build --config config/vite.artifact-runtime.ts",
|
|
31
|
+
"build:renderer": "vite build --config config/vite.app.ts",
|
|
31
32
|
"build:electron": "esbuild src/electron/index.ts --bundle --platform=node --target=node18 --format=cjs --outfile=dist/electron.cjs --external:electron --external:@rupertsworld/electron-ipc",
|
|
32
33
|
"build:cli": "esbuild src/cli/index.ts --bundle --platform=node --target=node18 --format=cjs --banner:js=\"#!/usr/bin/env node\" --outfile=dist/cli.cjs"
|
|
33
34
|
},
|