@krapht/ork 1.0.0-alpha.19 → 1.0.0-alpha.20

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.
Files changed (45) hide show
  1. package/dist/{__build_info__-dPf4cEGL.mjs → __build_info__-D6mXC4cD.mjs} +2 -2
  2. package/dist/argument-error-CihH46Le.mjs +27 -0
  3. package/dist/{attach-BQl8nQz2.mjs → attach-C1OnxyMh.mjs} +7 -5
  4. package/dist/{attach-DhZQ87Nz.mjs → attach-CEGbRg1D.mjs} +126 -69
  5. package/dist/bin.mjs +556 -119
  6. package/dist/{brief-BQbeoPMc.mjs → brief-DH66xmj8.mjs} +11 -6
  7. package/dist/{builtin-files-CWL3JEo-.mjs → builtin-files-Cf-NZDqM.mjs} +1 -1
  8. package/dist/{command-tree-B6uvMJq1.mjs → command-tree-CEkzWNy6.mjs} +1 -1
  9. package/dist/{completion-DKPuD_Rw.mjs → completion-DS0gCZRm.mjs} +19 -12
  10. package/dist/{context-Bw6R_EYq.mjs → context-CGPh12HV.mjs} +3 -3
  11. package/dist/{detached-BQlbmqR0.mjs → detached-Dakw5RZj.mjs} +3 -3
  12. package/dist/extra-arguments-BxQMXARO.mjs +13 -0
  13. package/dist/{find-B30-rd-u.mjs → find-BTikxc54.mjs} +1 -1
  14. package/dist/{flags-ByYBx-Xb.mjs → flags-C8yCq0j5.mjs} +7 -32
  15. package/dist/{follow-ups-Cxca1Jgg.mjs → follow-ups-CtlhHbwe.mjs} +87 -26
  16. package/dist/{format-C-nEZv-P.mjs → format-BB4E-T6x.mjs} +1 -1
  17. package/dist/{in-a-run-CZFzoT3R.mjs → in-a-run-CbnKjO7t.mjs} +2 -2
  18. package/dist/{install-CsqK1avz.mjs → install-CWcpX5g4.mjs} +1 -1
  19. package/dist/{limits-CXh052II.mjs → limits-VQqsBoQk.mjs} +1 -1
  20. package/dist/{mcp-B4wME9C4.mjs → mcp-wGfkMCVF.mjs} +6 -6
  21. package/dist/{once-BKn3pOtg.mjs → once-BHxSdZz_.mjs} +43 -7
  22. package/dist/{pause-B1grR1cl.mjs → pause-C_Wxh-KM.mjs} +6 -3
  23. package/dist/{print-Bd8MWVJk.mjs → print-DNYzq4Rr.mjs} +1 -1
  24. package/dist/{project-records-BOEVs69i.mjs → project-records-XY3ku95x.mjs} +4 -1
  25. package/dist/{relay-CeNiq3GT.mjs → relay-BA6tsnpc.mjs} +1 -1
  26. package/dist/{run-D6yU2rLf.mjs → run-Bvvg-fiF.mjs} +61 -19
  27. package/dist/{run-C0C54UiU.mjs → run-DBUAq-Uu.mjs} +29 -20
  28. package/dist/{send-DqgF58hb.mjs → send-nrKtak5F.mjs} +2 -2
  29. package/dist/{src-Ciy7i3se.mjs → src-8cOPOgrT.mjs} +155 -32
  30. package/dist/{src-n-u4TGev.mjs → src-CmEvHdju.mjs} +28 -28
  31. package/dist/{src-D2qpd-G7.mjs → src-D4JSymhK.mjs} +11 -2
  32. package/dist/{src-DP02RP9O.mjs → src-I_RyKu6_.mjs} +2 -2
  33. package/dist/{store-2KXzMCEN.mjs → store-CDpk8Wtz.mjs} +1 -1
  34. package/dist/ui/assets/app--FijEXiJ.css +1 -0
  35. package/dist/ui/assets/{app-ICEKpy_C.js → app-BowhjEAe.js} +12 -12
  36. package/dist/ui/assets/{index-BGaix5wh.js → index-CrMa2oHB.js} +2 -2
  37. package/dist/ui/index.html +1 -1
  38. package/dist/{ui-CAvygxTb.mjs → ui-DY3Dnpho.mjs} +4 -4
  39. package/dist/{usage-BFBco5OS.mjs → usage-1VwSg_Qt.mjs} +4 -4
  40. package/dist/{validate-UrmC5AG1.mjs → validate-BxayjjkV.mjs} +3 -3
  41. package/dist/{watch-DTxkgB8R.mjs → watch-CT0EtLPZ.mjs} +5 -5
  42. package/dist/{workflows-8GV-SeRm.mjs → workflows-DHHi-APg.mjs} +2 -2
  43. package/dist/{worktrees-CUdUvZlO.mjs → worktrees-CZvbHzbN.mjs} +4 -4
  44. package/package.json +1 -1
  45. package/dist/ui/assets/app-C5vO1M-l.css +0 -1
@@ -1,10 +1,10 @@
1
- import { $t as stepActs, An as requestPause, C as detectInstaller, Cn as liveSessionOf, Ct as checkWorkflowText, Dn as linkNodes, Fn as pausedOf, Gt as followUpListTable, Hn as nestItems, Ht as LIST_TABLES, I as activeTree, In as runStatus, Jn as changeFollowUp, Jr as workflowDirOf, Jt as worktreeListTable, Kn as loadProject, Kr as runDirOf, Kt as runListTable, L as isNodeEvent, Mn as tellLiveRun, Nn as liveStatus, O as triggersReport, On as unlinkNodes, Qt as planClean, R as openStore, S as runningScript, Sr as readCondition, Tt as walkSummary, Ur as placeFiles, Ut as decisionListTable, Wr as placeFor, Wt as feedbackListTable, Xn as findFollowUp, Xt as cleanStep, Yn as dueCause, Yr as inside, Yt as applyClean, Zn as followUpActions, Zr as LESSON_CAP_TOKENS, Zt as keyOf, _ as usageReport, _i as expandEdge, _n as checkFollowUpsDue, _r as feedbackActions, a as planRemove, ai as newWorkflowText, ar as previewPost, at as answerDecision, b as releaseNotes, bn as startFollowUpChecks, d as mergeStateOf, di as parseWorkflow, dr as DISCUSSIONS, en as stepPrunes, er as endOf, f as planLine, fr as planPost, ft as detachRun, gn as postFollowUpMessage, gt as limitsReport, i as lostWork, ii as applyEdits, jn as requestStop, kn as requestContinue, ln as nodeSays, lt as detachResume, m as stateParts, mi as EdgeInputSchema, mr as sendPost, ni as skillsIn, o as projectHead, oi as readDocument, ot as pendingDecisions, p as removeRefusal, pr as runGh, pt as followEvents, qt as usageListTable, r as applyRemove, ri as WorkflowEditSchema, rr as END_KINDS, s as readWorktrees, sr as recordNote, u as labelOf, ui as renderJsonSchema, ut as resumable, v as capsHere, vr as openFixRun, vt as explainWorkflowText, wn as DEFAULT_FOLLOW_UPS_RULE, wt as walkChecks, x as runningRunIds, y as planUpgrade, yi as NodeSchema, z as storePath, zn as processAlive, zr as loadAgents } from "./src-Ciy7i3se.mjs";
2
- import { i as placeOf$1, n as acceptItem, r as lessonPlaceOf, t as runInstall } from "./install-CsqK1avz.mjs";
1
+ import { $t as planClean, An as requestContinue, Bn as processAlive, Br as loadAgents, C as detectInstaller, Cr as readCondition, Et as walkSummary, Gr as placeFor, Gt as feedbackListTable, I as activeTree, In as pausedOf, Jt as usageListTable, Kt as followUpListTable, L as isNodeEvent, Ln as runStatus, Mn as requestStop, Nn as tellLiveRun, O as triggersReport, On as linkNodes, Pn as liveStatus, Qn as followUpActions, Qr as LESSON_CAP_TOKENS, Qt as keyOf, R as openStore, S as runningScript, Tn as DEFAULT_FOLLOW_UPS_RULE, Tt as walkChecks, Un as nestItems, Ut as LIST_TABLES, Wr as placeFiles, Wt as decisionListTable, Xn as dueCause, Xr as inside, Xt as applyClean, Yn as changeFollowUp, Yr as workflowDirOf, Yt as worktreeListTable, Zn as findFollowUp, Zt as cleanStep, _ as usageReport, _n as postFollowUpMessage, _t as limitsReport, a as planRemove, ai as applyEdits, b as releaseNotes, bi as NodeSchema, cr as recordNote, d as mergeStateOf, di as renderJsonSchema, dt as resumable, en as stepActs, f as planLine, fi as parseWorkflow, fr as DISCUSSIONS, hi as EdgeInputSchema, hr as sendPost, i as lostWork, ii as WorkflowEditSchema, ir as END_KINDS, jn as requestPause, kn as unlinkNodes, m as stateParts, mr as runGh, mt as followEvents, o as projectHead, oi as newWorkflowText, or as previewPost, ot as answerDecision, p as removeRefusal, pr as planPost, pt as detachRun, qn as loadProject, qr as runDirOf, qt as runListTable, r as applyRemove, ri as skillsIn, s as readWorktrees, si as readDocument, st as pendingDecisions, tn as stepPrunes, tr as endOf, u as labelOf, un as nodeSays, ut as detachResume, v as capsHere, vi as expandEdge, vn as checkFollowUpsDue, vr as feedbackActions, wn as liveSessionOf, wt as checkWorkflowText, x as runningRunIds, xn as startFollowUpChecks, y as planUpgrade, yr as openFixRun, yt as explainWorkflowText, z as storePath } from "./src-8cOPOgrT.mjs";
2
+ import { i as placeOf$1, n as acceptItem, r as lessonPlaceOf, t as runInstall } from "./install-CWcpX5g4.mjs";
3
3
  import { t as applyFilters } from "./apply-Mb0fNpCX.mjs";
4
4
  import { i as parseLimit, n as unknownProjectRefusal, r as parseFilters, t as limitRefusal } from "./refusals-DQQX3AIb.mjs";
5
- import { t as builtinProblem } from "./builtin-files-CWL3JEo-.mjs";
6
- import { n as newRunId, t as findRun } from "./find-B30-rd-u.mjs";
7
- import { a as registryShown, c as fetchLatest, d as readUpdateCache, f as refreshUpdateCache, h as nodeSession, i as registryOf, l as newerVersion, m as writeUpdateCache, o as updateSwitchOff, p as updateCachePath, s as checkDue } from "./__build_info__-dPf4cEGL.mjs";
5
+ import { t as builtinProblem } from "./builtin-files-Cf-NZDqM.mjs";
6
+ import { n as newRunId, t as findRun } from "./find-BTikxc54.mjs";
7
+ import { a as registryShown, c as fetchLatest, d as readUpdateCache, f as refreshUpdateCache, h as nodeSession, i as registryOf, l as newerVersion, m as writeUpdateCache, o as updateSwitchOff, p as updateCachePath, s as checkDue } from "./__build_info__-D6mXC4cD.mjs";
8
8
  import { t as outputsText } from "./outputs-text-CNTJ7Qq_.mjs";
9
9
  import path from "node:path";
10
10
  import { z } from "zod";
@@ -953,6 +953,29 @@ const route = async (handlers, req, res, url) => {
953
953
  else sendJson(res, reply.status, reply.body);
954
954
  return true;
955
955
  };
956
+ // ../server/src/list-fields-routes.ts
957
+ /**
958
+ * @file `GET /api/list-fields`: the filter fields of each list, from core's
959
+ * tables (RFC-017), as text without their functions, so the UI builds its
960
+ * filter bar without importing core.
961
+ */
962
+ const infoOf = (field) => ({
963
+ name: field.name,
964
+ description: field.description,
965
+ type: field.type,
966
+ ...field.values === void 0 ? {} : { values: [...field.values] },
967
+ ...field.all === true ? { all: true } : {}
968
+ });
969
+ /** The answer, built once: the tables do not change while the server runs. */
970
+ const listFields = () => ({
971
+ runs: LIST_TABLES.ps.fields.map(infoOf),
972
+ feedback: LIST_TABLES["feedback list"].fields.map(infoOf),
973
+ "follow-ups": LIST_TABLES["follow-ups list"].fields.map(infoOf),
974
+ decisions: LIST_TABLES["decide --list"].fields.map(infoOf),
975
+ worktrees: LIST_TABLES["worktrees list"].fields.map(infoOf),
976
+ usage: LIST_TABLES.usage.fields.map(infoOf)
977
+ });
978
+ const listFieldsRoutes = () => ({ listFields: () => ok(listFields()) });
956
979
  // ../server/src/context.ts
957
980
  /**
958
981
  * @file What the server's handlers share: the store it reads and writes, where
@@ -1716,29 +1739,6 @@ const treeWithEnds = (roots, stored) => {
1716
1739
  };
1717
1740
  return roots.map((node) => dress(node));
1718
1741
  };
1719
- // ../server/src/list-fields-routes.ts
1720
- /**
1721
- * @file `GET /api/list-fields`: the filter fields of each list, from core's
1722
- * tables (RFC-017), as text without their functions, so the UI builds its
1723
- * filter bar without importing core.
1724
- */
1725
- const infoOf = (field) => ({
1726
- name: field.name,
1727
- description: field.description,
1728
- type: field.type,
1729
- ...field.values === void 0 ? {} : { values: [...field.values] },
1730
- ...field.all === true ? { all: true } : {}
1731
- });
1732
- /** The answer, built once: the tables do not change while the server runs. */
1733
- const listFields = () => ({
1734
- runs: LIST_TABLES.ps.fields.map(infoOf),
1735
- feedback: LIST_TABLES["feedback list"].fields.map(infoOf),
1736
- "follow-ups": LIST_TABLES["follow-ups list"].fields.map(infoOf),
1737
- decisions: LIST_TABLES["decide --list"].fields.map(infoOf),
1738
- worktrees: LIST_TABLES["worktrees list"].fields.map(infoOf),
1739
- usage: LIST_TABLES.usage.fields.map(infoOf)
1740
- });
1741
- const listFieldsRoutes = () => ({ listFields: () => ok(listFields()) });
1742
1742
  // ../server/src/list-query.ts
1743
1743
  /**
1744
1744
  * @file Reads a list route's filter fields the way the CLI reads its flags
@@ -1,4 +1,4 @@
1
- import { Bt as programFound, Er as MASK, Or as maskSecrets, Pi as AGENT_DRIVERS, Un as countedTokens, Vt as startAt, cr as FEEDBACK_KINDS, ir as endFor, lr as FEEDBACK_SEVERITIES, mn as FOLLOW_UP_KINDS, rr as END_KINDS, tr as outcomeEnd, ur as FEEDBACK_TARGETS, xt as parseReport, zt as lowerChild } from "./src-Ciy7i3se.mjs";
1
+ import { Bt as lowerChild, Dr as MASK, Fi as AGENT_DRIVERS, Ht as startAt, St as parseReport, Vt as programFound, Wn as countedTokens, ar as endFor, dr as FEEDBACK_TARGETS, hn as FOLLOW_UP_KINDS, ir as END_KINDS, kr as maskSecrets, lr as FEEDBACK_KINDS, nr as outcomeEnd, ur as FEEDBACK_SEVERITIES } from "./src-8cOPOgrT.mjs";
2
2
  import { n as holdGuard, r as orphanGuard } from "./orphan-guard-BFKg8VSd.mjs";
3
3
  import path from "node:path";
4
4
  import { z } from "zod";
@@ -2764,11 +2764,20 @@ const serverOf = (entry) => {
2764
2764
  headers
2765
2765
  };
2766
2766
  };
2767
+ /**
2768
+ * The node's servers, refusing one named `ork` or `ork_<x>`: OpenCode names a
2769
+ * tool `<server>_<tool>`, so its tools could pass for Ork's `ork_<tool>`. The
2770
+ * error names the server only, never its env or headers.
2771
+ */
2772
+ const nodeServers = (spec) => Object.entries(spec.mcpServers ?? {}).map(([name, entry]) => {
2773
+ if (name === "ork" || name.startsWith(`ork_`)) throw new Error(`the MCP server \`${name}\` can't load under OpenCode: the name \`ork\` and the prefix \`ork_\` are reserved for Ork's tools; rename it in .mcp.json`);
2774
+ return [name, serverOf(entry)];
2775
+ });
2767
2776
  /** The whole config file for one session. */
2768
2777
  const sessionConfig = (spec, endpoint, instructions) => ({
2769
2778
  instructions: [instructions],
2770
2779
  mcp: { servers: {
2771
- ...Object.fromEntries(Object.entries(spec.mcpServers ?? {}).map(([name, entry]) => [name, serverOf(entry)])),
2780
+ ...Object.fromEntries(nodeServers(spec)),
2772
2781
  ["ork"]: {
2773
2782
  type: "remote",
2774
2783
  url: endpoint.url,
@@ -1,5 +1,5 @@
1
- import { At as runScope, Di as TOOL_PREFIX, Ei as INTEGRATIONS, Ft as stoppedEnd, It as declaredProblem, Lt as slotClock, Nt as endedWith, Oi as integrationFor, Pi as AGENT_DRIVERS, Pt as failedWith, Q as sessionRefusals, St as reportSchemaFor, Ti as timeoutMs, Un as countedTokens, Vt as startAt, Wr as placeFor, _t as planReason, an as envReadsOf, bi as isClaudeNode, br as parseTemplate, bt as planNodeSession, ci as beforeOf, cn as sessionDriver, di as parseWorkflow, dn as MCP_FILE, er as endOf, fn as mcpNotText, ir as endFor, jt as calledWorkflows, kt as heldTimeout, li as programsRunBy, nr as END_DETAIL_LIMIT, pi as markValue, pn as serversIn, tr as outcomeEnd, un as declaredOutputOf, xi as isToolNode, xr as renderTemplate, yr as evaluate, z as storePath, zt as lowerChild } from "./src-Ciy7i3se.mjs";
2
- import { t as runOnce } from "./run-D6yU2rLf.mjs";
1
+ import { At as heldTimeout, Bt as lowerChild, Ct as reportSchemaFor, Di as INTEGRATIONS, Ei as timeoutMs, Fi as AGENT_DRIVERS, Ft as failedWith, Gr as placeFor, Ht as startAt, It as stoppedEnd, Lt as declaredProblem, Mt as calledWorkflows, Oi as TOOL_PREFIX, Pt as endedWith, Q as sessionRefusals, Rt as slotClock, Si as isToolNode, Sr as renderTemplate, Wn as countedTokens, ar as endFor, br as evaluate, dn as declaredOutputOf, fi as parseWorkflow, fn as MCP_FILE, jt as runScope, ki as integrationFor, li as beforeOf, ln as sessionDriver, mi as markValue, mn as serversIn, nr as outcomeEnd, on as envReadsOf, pn as mcpNotText, rr as END_DETAIL_LIMIT, tr as endOf, ui as programsRunBy, vt as planReason, xi as isClaudeNode, xr as parseTemplate, xt as planNodeSession, z as storePath } from "./src-8cOPOgrT.mjs";
2
+ import { t as runOnce } from "./run-Bvvg-fiF.mjs";
3
3
  import { n as holdGuard, r as orphanGuard, t as KILL_AFTER_MS } from "./orphan-guard-BFKg8VSd.mjs";
4
4
  import path from "node:path";
5
5
  import { accessSync, constants, lstatSync, mkdirSync, readFileSync, realpathSync, rmSync, writeFileSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { R as openStore } from "./src-Ciy7i3se.mjs";
1
+ import { R as openStore } from "./src-8cOPOgrT.mjs";
2
2
  // src/store.ts
3
3
  /**
4
4
  * @file Opening the user's store (`~/.ork/state.db`) for the length of one