dorkos 0.2.0 → 0.3.0

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/README.md CHANGED
@@ -23,6 +23,45 @@ dorkos
23
23
 
24
24
  The server starts on port 4242 and opens your browser automatically. You'll see the DorkOS chat interface where you can start Claude Code sessions, approve tool calls, and use slash commands.
25
25
 
26
+ ## Updating
27
+
28
+ ```bash
29
+ npm install -g dorkos@latest
30
+ ```
31
+
32
+ DorkOS checks for updates automatically on startup and displays a notification when a new version is available. You can also check your current version with:
33
+
34
+ ```bash
35
+ dorkos --version
36
+ ```
37
+
38
+ ## CLI Flags
39
+
40
+ | Flag | Description |
41
+ |---|---|
42
+ | `-p, --port <port>` | Port to listen on (default: 4242) |
43
+ | `-d, --dir <path>` | Working directory (default: current directory) |
44
+ | `-b, --boundary <path>` | Directory boundary (default: home directory) |
45
+ | `-t, --tunnel` | Enable ngrok tunnel |
46
+ | `-l, --log-level <level>` | Log level (`fatal`, `error`, `warn`, `info`, `debug`, `trace`) |
47
+ | `-h, --help` | Show help message |
48
+ | `-v, --version` | Show version number |
49
+
50
+ ## Subcommands
51
+
52
+ | Command | Description |
53
+ |---|---|
54
+ | `dorkos config` | Show all effective settings |
55
+ | `dorkos config get <key>` | Get a single config value |
56
+ | `dorkos config set <key> <value>` | Set a single config value |
57
+ | `dorkos config list` | Full JSON output |
58
+ | `dorkos config reset [key]` | Reset to defaults |
59
+ | `dorkos config edit` | Open config in `$EDITOR` |
60
+ | `dorkos config path` | Print config file location |
61
+ | `dorkos config validate` | Check config validity |
62
+ | `dorkos init` | Interactive setup wizard |
63
+ | `dorkos init --yes` | Accept all defaults |
64
+
26
65
  ## Configuration
27
66
 
28
67
  ### Required
@@ -61,7 +100,8 @@ When running, DorkOS serves interactive API documentation at `/api/docs` (powere
61
100
 
62
101
  ## Links
63
102
 
64
- - [Documentation](https://github.com/dork-labs/dorkos/tree/main/docs)
103
+ - [Documentation](https://dorkos.dev/docs)
104
+ - [Changelog](https://dorkos.dev/docs/changelog)
65
105
  - [GitHub](https://github.com/dork-labs/dorkos)
66
106
  - [Issues](https://github.com/dork-labs/dorkos/issues)
67
107
 
package/dist/bin/cli.js CHANGED
@@ -14353,7 +14353,18 @@ var init_config_schema = __esm({
14353
14353
  ui: external_exports.object({
14354
14354
  theme: external_exports.enum(["light", "dark", "system"]).default("system")
14355
14355
  }).default(() => ({ theme: "system" })),
14356
- logging: LoggingConfigSchema.default(() => ({ level: "info" }))
14356
+ logging: LoggingConfigSchema.default(() => ({ level: "info" })),
14357
+ scheduler: external_exports.object({
14358
+ enabled: external_exports.boolean().default(false),
14359
+ maxConcurrentRuns: external_exports.number().int().min(1).max(10).default(1),
14360
+ timezone: external_exports.string().nullable().default(null),
14361
+ retentionCount: external_exports.number().int().min(1).default(100)
14362
+ }).default(() => ({
14363
+ enabled: false,
14364
+ maxConcurrentRuns: 1,
14365
+ timezone: null,
14366
+ retentionCount: 100
14367
+ }))
14357
14368
  });
14358
14369
  LOG_LEVEL_MAP = {
14359
14370
  fatal: 0,
@@ -16701,6 +16712,7 @@ var { values, positionals } = parseArgs({
16701
16712
  tunnel: { type: "boolean", short: "t", default: false },
16702
16713
  dir: { type: "string", short: "d" },
16703
16714
  boundary: { type: "string", short: "b" },
16715
+ pulse: { type: "boolean" },
16704
16716
  "log-level": { type: "string", short: "l" },
16705
16717
  help: { type: "boolean", short: "h" },
16706
16718
  version: { type: "boolean", short: "v" },
@@ -16731,6 +16743,8 @@ Options:
16731
16743
  -t, --tunnel Enable ngrok tunnel
16732
16744
  -d, --dir <path> Working directory (default: current directory)
16733
16745
  -b, --boundary <path> Directory boundary (default: home directory)
16746
+ --pulse Enable Pulse scheduler
16747
+ --no-pulse Disable Pulse scheduler
16734
16748
  -l, --log-level <level> Log level (fatal|error|warn|info|debug|trace)
16735
16749
  -h, --help Show this help message
16736
16750
  -v, --version Show version number
@@ -16752,7 +16766,7 @@ Examples:
16752
16766
  process.exit(0);
16753
16767
  }
16754
16768
  if (values.version) {
16755
- console.log("0.2.0");
16769
+ console.log("0.3.0");
16756
16770
  process.exit(0);
16757
16771
  }
16758
16772
  var DORK_HOME = path4.join(os3.homedir(), ".dork");
@@ -16806,6 +16820,11 @@ var tunnelDomain = cfgMgr.getDot("tunnel.domain");
16806
16820
  if (tunnelDomain && !process.env.TUNNEL_DOMAIN) {
16807
16821
  process.env.TUNNEL_DOMAIN = tunnelDomain;
16808
16822
  }
16823
+ if (values.pulse !== void 0) {
16824
+ process.env.DORKOS_PULSE_ENABLED = values.pulse ? "true" : "false";
16825
+ } else if (!process.env.DORKOS_PULSE_ENABLED && cfgMgr.getDot("scheduler.enabled")) {
16826
+ process.env.DORKOS_PULSE_ENABLED = "true";
16827
+ }
16809
16828
  var cliDir = values.dir;
16810
16829
  if (cliDir) {
16811
16830
  process.env.DORKOS_DEFAULT_CWD = path4.resolve(cliDir);
@@ -16847,7 +16866,7 @@ if (fs3.existsSync(envPath)) {
16847
16866
  await import("../server/index.js");
16848
16867
  var port = process.env.DORKOS_PORT || String(DEFAULT_PORT);
16849
16868
  console.log("");
16850
- console.log(` DorkOS v${"0.2.0"}`);
16869
+ console.log(` DorkOS v${"0.3.0"}`);
16851
16870
  console.log(` Local: http://localhost:${port}`);
16852
16871
  var nets = networkInterfaces();
16853
16872
  var networkUrl = null;
@@ -16864,10 +16883,10 @@ if (networkUrl) {
16864
16883
  console.log(` Network: ${networkUrl}`);
16865
16884
  }
16866
16885
  console.log("");
16867
- checkForUpdate("0.2.0").then((latestVersion) => {
16886
+ checkForUpdate("0.3.0").then((latestVersion) => {
16868
16887
  if (latestVersion) {
16869
- const msg = `Update available: ${"0.2.0"} \u2192 ${latestVersion}`;
16870
- const cmd = "Run npm update -g dorkos to update";
16888
+ const msg = `Update available: ${"0.3.0"} \u2192 ${latestVersion}`;
16889
+ const cmd = "Run npm install -g dorkos@latest to update";
16871
16890
  const width = Math.max(msg.length, cmd.length) + 6;
16872
16891
  const pad = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
16873
16892
  console.log("");
@@ -1,2 +1,2 @@
1
- import{r as n,N as h,c as x,j as r,a as f,b as u}from"./index-yeKWoOws.js";var k=u("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),p=n.memo(({children:a,result:e,language:o,className:c,...m})=>{let i=n.useMemo(()=>({backgroundColor:e.bg,color:e.fg}),[e.bg,e.fg]);return r.jsx("pre",{className:u(c,"p-4 text-sm dark:bg-(--shiki-dark-bg)!"),"data-language":o,"data-streamdown":"code-block-body",style:i,...m,children:r.jsx("code",{className:"[counter-increment:line_0] [counter-reset:line]",children:e.tokens.map((d,s)=>r.jsx("span",{className:k,children:d.map((t,l)=>r.jsx("span",{className:"dark:bg-(--shiki-dark-bg)! dark:text-(--shiki-dark)!",style:{color:t.color,backgroundColor:t.bgColor,...t.htmlStyle},...t.htmlAttrs,children:t.content},l))},s))})})},(a,e)=>a.result===e.result&&a.language===e.language&&a.className===e.className),j=({className:a,language:e,style:o,...c})=>r.jsx("div",{className:u("my-4 w-full overflow-hidden rounded-xl border border-border",a),"data-language":e,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...c}),N=({language:a,children:e})=>r.jsxs("div",{className:"flex items-center justify-between bg-muted/80 p-3 text-muted-foreground text-xs","data-language":a,"data-streamdown":"code-block-header",children:[r.jsx("span",{className:"ml-1 font-mono lowercase",children:a}),r.jsx("div",{className:"flex items-center gap-2",children:e})]}),y=({code:a,language:e,className:o,children:c,...m})=>{let{shikiTheme:i}=n.useContext(h),d=x(),s=n.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:a.split(`
1
+ import{r as n,N as h,c as x,j as r,a as f,b as u}from"./index-DlXGb_Ot.js";var k=u("block","before:content-[counter(line)]","before:inline-block","before:[counter-increment:line]","before:w-6","before:mr-4","before:text-[13px]","before:text-right","before:text-muted-foreground/50","before:font-mono","before:select-none"),p=n.memo(({children:a,result:e,language:o,className:c,...m})=>{let i=n.useMemo(()=>({backgroundColor:e.bg,color:e.fg}),[e.bg,e.fg]);return r.jsx("pre",{className:u(c,"p-4 text-sm dark:bg-(--shiki-dark-bg)!"),"data-language":o,"data-streamdown":"code-block-body",style:i,...m,children:r.jsx("code",{className:"[counter-increment:line_0] [counter-reset:line]",children:e.tokens.map((d,s)=>r.jsx("span",{className:k,children:d.map((t,l)=>r.jsx("span",{className:"dark:bg-(--shiki-dark-bg)! dark:text-(--shiki-dark)!",style:{color:t.color,backgroundColor:t.bgColor,...t.htmlStyle},...t.htmlAttrs,children:t.content},l))},s))})})},(a,e)=>a.result===e.result&&a.language===e.language&&a.className===e.className),j=({className:a,language:e,style:o,...c})=>r.jsx("div",{className:u("my-4 w-full overflow-hidden rounded-xl border border-border",a),"data-language":e,"data-streamdown":"code-block",style:{contentVisibility:"auto",containIntrinsicSize:"auto 200px",...o},...c}),N=({language:a,children:e})=>r.jsxs("div",{className:"flex items-center justify-between bg-muted/80 p-3 text-muted-foreground text-xs","data-language":a,"data-streamdown":"code-block-header",children:[r.jsx("span",{className:"ml-1 font-mono lowercase",children:a}),r.jsx("div",{className:"flex items-center gap-2",children:e})]}),y=({code:a,language:e,className:o,children:c,...m})=>{let{shikiTheme:i}=n.useContext(h),d=x(),s=n.useMemo(()=>({bg:"transparent",fg:"inherit",tokens:a.split(`
2
2
  `).map(g=>[{content:g,color:"inherit",bgColor:"transparent",htmlStyle:{},offset:0}])}),[a]),[t,l]=n.useState(s);return n.useEffect(()=>{if(!d){l(s);return}let g=d.highlight({code:a,language:e,themes:i},b=>{l(b)});if(g){l(g);return}l(s)},[a,e,i,d,s]),r.jsx(f.Provider,{value:{code:a},children:r.jsxs(j,{language:e,children:[r.jsx(N,{language:e,children:c}),r.jsx(p,{className:o,language:e,result:t,...m})]})})};export{y as CodeBlock};