@hraness/wordcell 0.25.1 → 0.26.1

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 (48) hide show
  1. package/README.md +57 -43
  2. package/dist/capture.js +6 -6
  3. package/dist/cli-bin.js +14 -0
  4. package/dist/cli-release-cf48w61z.js +802 -0
  5. package/dist/cli.js +26 -23
  6. package/dist/clip/acquire.js +3 -3
  7. package/dist/clip/cli.js +6 -6
  8. package/dist/clip/doctor.js +4 -4
  9. package/dist/evaluation-builder-bin.js +14 -0
  10. package/dist/evaluation-builder.js +12 -17
  11. package/dist/evaluation-kb.js +6 -6
  12. package/dist/graph-percolation.js +2 -2
  13. package/dist/index-3t0v457d.js +18 -0
  14. package/dist/{index-47893rgw.js → index-5h5awwh4.js} +4 -4
  15. package/dist/index-6jz050v0.js +64 -0
  16. package/dist/index-8pabwzqg.js +909 -0
  17. package/dist/{index-1wccy765.js → index-8w1zsgcm.js} +63 -930
  18. package/dist/{index-7drercgk.js → index-9fywek7g.js} +1 -1
  19. package/dist/{index-hz2wyggk.js → index-9paxge84.js} +1 -1
  20. package/dist/{index-mcpppwbq.js → index-9zkba8hr.js} +6 -6
  21. package/dist/{index-59bcxqee.js → index-j2jt49gr.js} +1 -1
  22. package/dist/{index-nwrehke7.js → index-nd8v7r0z.js} +1 -1
  23. package/dist/{index-t3abkwk4.js → index-zbv70qmk.js} +15 -15
  24. package/dist/index.js +40 -40
  25. package/dist/pdf.js +2 -2
  26. package/dist/portfolio.js +5 -5
  27. package/dist/sdk.js +4 -4
  28. package/dist/{support-adj7bbge.js → support-ym4mpf7w.js} +19 -18
  29. package/dist/url-intelligence.js +3 -3
  30. package/dist/workflows/decision-context.js +5 -5
  31. package/dist/workflows/index.js +5 -5
  32. package/package.json +13 -6
  33. package/skills/wordcell/SKILL.md +10 -1
  34. package/src/cli-bin.ts +5 -0
  35. package/src/cli-help.ts +12 -0
  36. package/src/cli-program.ts +3 -57
  37. package/src/cli-release.ts +737 -0
  38. package/src/cli-startup.ts +76 -0
  39. package/src/cli-update.ts +53 -0
  40. package/src/cli.ts +5 -4
  41. package/src/evaluation-builder-bin.ts +5 -0
  42. package/src/evaluation-builder-cli-args.ts +30 -0
  43. package/src/evaluation-builder.ts +3 -27
  44. package/src/import-supermemory.ts +3 -1
  45. package/dist/{index-hxyjer3x.js → index-hacpnaew.js} +3 -3
  46. package/dist/{index-qfqjfxaa.js → index-m9p2a4mj.js} +4 -4
  47. package/dist/{index-xwxy71ew.js → index-ncwzmsge.js} +5 -5
  48. package/dist/{index-e26mdwxz.js → index-wqx1x32f.js} +3 -3
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-h170byqw.js";
5
5
  import {
6
6
  packUntrustedSearchContext
7
- } from "./index-mcpppwbq.js";
7
+ } from "./index-9zkba8hr.js";
8
8
 
9
9
  // src/workflows/decision-context.ts
10
10
  var decisionContextWorkflow = defineWorkflow({
@@ -5,7 +5,7 @@ import {
5
5
  MAX_SEARCH_RESULTS,
6
6
  openKnowledgeBase,
7
7
  validateKnowledgeBaseSearchHistory
8
- } from "./index-mcpppwbq.js";
8
+ } from "./index-9zkba8hr.js";
9
9
  import {
10
10
  expandSearchRequest,
11
11
  parseSearchRules
@@ -12,14 +12,9 @@ import {
12
12
  UntrustedContentBudgetError,
13
13
  createUntrustedToolResult
14
14
  } from "./index-4j3tt0c3.js";
15
- import {
16
- MAX_RERANK_CANDIDATES,
17
- MAX_RERANK_SNIPPET_BYTES,
18
- applyRerank
19
- } from "./index-j70m75wd.js";
20
15
  import {
21
16
  percolateWithGraph
22
- } from "./index-e26mdwxz.js";
17
+ } from "./index-wqx1x32f.js";
23
18
  import {
24
19
  openGraphAuthority
25
20
  } from "./index-3gc2yk4k.js";
@@ -27,6 +22,11 @@ import {
27
22
  validateGraphPercolationOptions,
28
23
  validateGraphQueryRequest
29
24
  } from "./index-pgtm2nhf.js";
25
+ import {
26
+ MAX_RERANK_CANDIDATES,
27
+ MAX_RERANK_SNIPPET_BYTES,
28
+ applyRerank
29
+ } from "./index-j70m75wd.js";
30
30
  import {
31
31
  GitHistoryError,
32
32
  gitHistoryForNotes,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  MAX_SEARCH_RESULTS,
4
4
  openKnowledgeBase
5
- } from "./index-mcpppwbq.js";
5
+ } from "./index-9zkba8hr.js";
6
6
  import {
7
7
  MAX_EVALUATION_EVIDENCE_BYTES,
8
8
  redactEvaluationMachinePaths
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  isolatedAgentBrowserEnvironment
4
- } from "./index-xwxy71ew.js";
4
+ } from "./index-ncwzmsge.js";
5
5
  import {
6
6
  BoundedByteBuffer
7
7
  } from "./index-gh719d91.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  acquireArchiveTodaySnapshot,
4
4
  discoverArchiveTodaySnapshot
5
- } from "./index-hxyjer3x.js";
5
+ } from "./index-hacpnaew.js";
6
6
  import {
7
7
  canonicalizeUrl,
8
8
  chooseBestExtraction,
@@ -18,7 +18,7 @@ import {
18
18
  inspectClipEnvironment,
19
19
  renderAdapterCapabilities,
20
20
  renderDoctorReport
21
- } from "./index-nwrehke7.js";
21
+ } from "./index-nd8v7r0z.js";
22
22
  import {
23
23
  cloneBrowserProfile
24
24
  } from "./index-5n05se68.js";
@@ -34,7 +34,7 @@ import {
34
34
  renderCookiePermissionNotice,
35
35
  renderCookiePermissionRecovery,
36
36
  setCookiePermissionReporter
37
- } from "./index-xwxy71ew.js";
37
+ } from "./index-ncwzmsge.js";
38
38
  import {
39
39
  CONTENT_REWRITE_TRUNCATION_WARNING,
40
40
  buildClipMarkdown,
@@ -60,6 +60,15 @@ import {
60
60
  renderCookieHeader,
61
61
  renderNetscapeCookieJar
62
62
  } from "./index-2gv8y733.js";
63
+ import {
64
+ abortCaptureBundle,
65
+ beginCaptureBundle,
66
+ commitCaptureBundle,
67
+ redactSensitiveText,
68
+ redactSensitiveTextWithCount,
69
+ sanitizeArtifactUrl,
70
+ writeCaptureBundle
71
+ } from "./index-mxxxytys.js";
63
72
  import {
64
73
  startNetworkProxy
65
74
  } from "./index-w2zc0vwa.js";
@@ -68,23 +77,14 @@ import {
68
77
  decodeBytes,
69
78
  safeFetch
70
79
  } from "./index-e5fbsywq.js";
80
+ import {
81
+ BoundedByteBuffer
82
+ } from "./index-gh719d91.js";
71
83
  import {
72
84
  captureUrl,
73
85
  parseArguments,
74
86
  usage
75
87
  } from "./index-byz4kzww.js";
76
- import {
77
- BoundedByteBuffer
78
- } from "./index-gh719d91.js";
79
- import {
80
- abortCaptureBundle,
81
- beginCaptureBundle,
82
- commitCaptureBundle,
83
- redactSensitiveText,
84
- redactSensitiveTextWithCount,
85
- sanitizeArtifactUrl,
86
- writeCaptureBundle
87
- } from "./index-mxxxytys.js";
88
88
  import {
89
89
  sanitizeTerminalLine,
90
90
  sanitizeTerminalText
package/dist/index.js CHANGED
@@ -19,6 +19,11 @@ import {
19
19
  import {
20
20
  initVault
21
21
  } from "./index-23z4zxgg.js";
22
+ import {
23
+ DEFAULT_SYSTEMONE_ENDPOINT,
24
+ DEFAULT_SYSTEMONE_MODEL,
25
+ createTypeSafeReranker
26
+ } from "./index-9rf81m0p.js";
22
27
  import {
23
28
  MAX_SOURCE_DISPOSITION_EVIDENCE,
24
29
  MAX_SOURCE_INBOX_CONNECTIONS,
@@ -27,17 +32,12 @@ import {
27
32
  MAX_SOURCE_INBOX_RESULTS,
28
33
  sourceInbox
29
34
  } from "./index-pj501bh1.js";
30
- import {
31
- DEFAULT_SYSTEMONE_ENDPOINT,
32
- DEFAULT_SYSTEMONE_MODEL,
33
- createTypeSafeReranker
34
- } from "./index-9rf81m0p.js";
35
35
  import {
36
36
  FrozenEvaluationSnapshotError,
37
37
  knowledgeBaseEvaluationRetrieverIds,
38
38
  openKnowledgeBaseEvaluation,
39
39
  verifyFrozenEvaluationSnapshot
40
- } from "./index-59bcxqee.js";
40
+ } from "./index-j2jt49gr.js";
41
41
  import {
42
42
  DEFAULT_SEARCH_RESULTS,
43
43
  MAX_SEARCH_CANDIDATES,
@@ -50,7 +50,7 @@ import {
50
50
  packUntrustedSearchContext,
51
51
  searchEvidenceRank,
52
52
  validateKnowledgeBaseSearchHistory
53
- } from "./index-mcpppwbq.js";
53
+ } from "./index-9zkba8hr.js";
54
54
  import"./index-adx6khj5.js";
55
55
  import {
56
56
  MAX_EMBEDDING_MODEL_BYTES,
@@ -70,31 +70,20 @@ import {
70
70
  } from "./index-fp732bgg.js";
71
71
  import"./index-4j3tt0c3.js";
72
72
  import {
73
- MAX_RERANK_CANDIDATES,
74
- MAX_RERANK_SNIPPET_BYTES,
75
- MAX_RERANK_STATE_BYTES,
76
- applyRerank
77
- } from "./index-j70m75wd.js";
73
+ percolateWithGraph
74
+ } from "./index-wqx1x32f.js";
78
75
  import {
79
- MAX_BOOTSTRAP_RESAMPLES,
80
- MAX_EVALUATION_DIAGNOSTICS,
81
- MAX_EVALUATION_EVIDENCE_BYTES,
82
- MAX_EVALUATION_QRELS_PER_QUERY,
83
- MAX_EVALUATION_QUERIES,
84
- MAX_EVALUATION_RESULTS_PER_QUERY,
85
- MAX_EVALUATION_RETRIEVERS,
86
- MAX_EVALUATION_TEXT_BYTES,
87
- MAX_EVALUATION_TIMEOUT_MS,
88
- RETRIEVAL_EVALUATION_REPORT_VERSION,
89
- RETRIEVAL_EVALUATION_SCHEMA_VERSION,
90
- buildRetrievalEvaluationReport,
91
- pairedBootstrapConfidenceInterval,
92
- parseRetrievalEvaluationCorpus,
93
- runRetrievalEvaluation
94
- } from "./index-b88v3vtm.js";
76
+ createGraphSnapshot,
77
+ openGraphAuthority,
78
+ queryGraph,
79
+ rebuildGraph,
80
+ verifyGraph
81
+ } from "./index-3gc2yk4k.js";
95
82
  import {
96
- percolateWithGraph
97
- } from "./index-e26mdwxz.js";
83
+ GRAPH_LIMITS,
84
+ GraphAuthorityError,
85
+ validateGraphQueryRequest
86
+ } from "./index-pgtm2nhf.js";
98
87
  import {
99
88
  DEFAULT_PERCOLATION_LIMIT,
100
89
  DEFAULT_PERCOLATION_MIN_SUPPORT,
@@ -117,17 +106,28 @@ import {
117
106
  percolateVault
118
107
  } from "./index-bdwcjvr4.js";
119
108
  import {
120
- createGraphSnapshot,
121
- openGraphAuthority,
122
- queryGraph,
123
- rebuildGraph,
124
- verifyGraph
125
- } from "./index-3gc2yk4k.js";
109
+ MAX_RERANK_CANDIDATES,
110
+ MAX_RERANK_SNIPPET_BYTES,
111
+ MAX_RERANK_STATE_BYTES,
112
+ applyRerank
113
+ } from "./index-j70m75wd.js";
126
114
  import {
127
- GRAPH_LIMITS,
128
- GraphAuthorityError,
129
- validateGraphQueryRequest
130
- } from "./index-pgtm2nhf.js";
115
+ MAX_BOOTSTRAP_RESAMPLES,
116
+ MAX_EVALUATION_DIAGNOSTICS,
117
+ MAX_EVALUATION_EVIDENCE_BYTES,
118
+ MAX_EVALUATION_QRELS_PER_QUERY,
119
+ MAX_EVALUATION_QUERIES,
120
+ MAX_EVALUATION_RESULTS_PER_QUERY,
121
+ MAX_EVALUATION_RETRIEVERS,
122
+ MAX_EVALUATION_TEXT_BYTES,
123
+ MAX_EVALUATION_TIMEOUT_MS,
124
+ RETRIEVAL_EVALUATION_REPORT_VERSION,
125
+ RETRIEVAL_EVALUATION_SCHEMA_VERSION,
126
+ buildRetrievalEvaluationReport,
127
+ pairedBootstrapConfidenceInterval,
128
+ parseRetrievalEvaluationCorpus,
129
+ runRetrievalEvaluation
130
+ } from "./index-b88v3vtm.js";
131
131
  import {
132
132
  GitHistoryError,
133
133
  MAX_GIT_HISTORY_COMMITS,
package/dist/pdf.js CHANGED
@@ -24,12 +24,12 @@ import {
24
24
  resolvePdfTools,
25
25
  runPdfCapture,
26
26
  runPdfToolCommand
27
- } from "./index-qfqjfxaa.js";
27
+ } from "./index-m9p2a4mj.js";
28
28
  import"./index-k86wepd8.js";
29
29
  import"./index-cd75vky9.js";
30
+ import"./index-mxxxytys.js";
30
31
  import"./index-e5fbsywq.js";
31
32
  import"./index-gh719d91.js";
32
- import"./index-mxxxytys.js";
33
33
  import"./index-1xxnjn0d.js";
34
34
  import"./index-z1w83f81.js";
35
35
 
package/dist/portfolio.js CHANGED
@@ -20,16 +20,16 @@ import {
20
20
  selectAuthorizedVaults,
21
21
  snapshotPortfolioRegistry,
22
22
  validateResolvedPortfolioVaults
23
- } from "./index-hz2wyggk.js";
24
- import"./index-mcpppwbq.js";
23
+ } from "./index-9paxge84.js";
24
+ import"./index-9zkba8hr.js";
25
25
  import"./index-adx6khj5.js";
26
26
  import"./index-fp732bgg.js";
27
27
  import"./index-4j3tt0c3.js";
28
- import"./index-j70m75wd.js";
29
- import"./index-e26mdwxz.js";
30
- import"./index-bdwcjvr4.js";
28
+ import"./index-wqx1x32f.js";
31
29
  import"./index-3gc2yk4k.js";
32
30
  import"./index-pgtm2nhf.js";
31
+ import"./index-bdwcjvr4.js";
32
+ import"./index-j70m75wd.js";
33
33
  import"./index-1gwbassd.js";
34
34
  import"./index-ahyhryb8.js";
35
35
  import"./index-1xxnjn0d.js";
package/dist/sdk.js CHANGED
@@ -11,15 +11,15 @@ import {
11
11
  packUntrustedSearchContext,
12
12
  searchEvidenceRank,
13
13
  validateKnowledgeBaseSearchHistory
14
- } from "./index-mcpppwbq.js";
14
+ } from "./index-9zkba8hr.js";
15
15
  import"./index-adx6khj5.js";
16
16
  import"./index-fp732bgg.js";
17
17
  import"./index-4j3tt0c3.js";
18
- import"./index-j70m75wd.js";
19
- import"./index-e26mdwxz.js";
20
- import"./index-bdwcjvr4.js";
18
+ import"./index-wqx1x32f.js";
21
19
  import"./index-3gc2yk4k.js";
22
20
  import"./index-pgtm2nhf.js";
21
+ import"./index-bdwcjvr4.js";
22
+ import"./index-j70m75wd.js";
23
23
  import"./index-1gwbassd.js";
24
24
  import"./index-ahyhryb8.js";
25
25
  import"./index-1xxnjn0d.js";
@@ -2,43 +2,44 @@
2
2
  import {
3
3
  parseArguments as parseArguments2,
4
4
  parseUrlMetadataArguments
5
- } from "./index-1wccy765.js";
6
- import"./index-47893rgw.js";
5
+ } from "./index-8w1zsgcm.js";
6
+ import"./index-5h5awwh4.js";
7
7
  import {
8
8
  parsePdfArguments
9
- } from "./index-qfqjfxaa.js";
10
- import"./index-hz2wyggk.js";
9
+ } from "./index-m9p2a4mj.js";
10
+ import"./index-9paxge84.js";
11
11
  import"./index-j4zgmzjr.js";
12
- import"./index-t3abkwk4.js";
13
- import"./index-hxyjer3x.js";
12
+ import"./index-npg9z1a4.js";
13
+ import"./index-zbv70qmk.js";
14
+ import"./index-hacpnaew.js";
14
15
  import"./index-k86wepd8.js";
15
- import"./index-nwrehke7.js";
16
+ import"./index-nd8v7r0z.js";
16
17
  import"./index-5n05se68.js";
17
- import"./index-xwxy71ew.js";
18
+ import"./index-8pabwzqg.js";
19
+ import"./index-ncwzmsge.js";
18
20
  import"./index-cd75vky9.js";
19
21
  import"./index-2gv8y733.js";
22
+ import"./index-mxxxytys.js";
20
23
  import"./index-w2zc0vwa.js";
21
24
  import"./index-e5fbsywq.js";
25
+ import"./index-gh719d91.js";
22
26
  import {
23
27
  parseArguments
24
28
  } from "./index-byz4kzww.js";
25
- import"./index-gh719d91.js";
26
- import"./index-npg9z1a4.js";
27
- import"./index-mxxxytys.js";
28
29
  import"./index-23z4zxgg.js";
29
- import"./index-pj501bh1.js";
30
30
  import"./index-9rf81m0p.js";
31
- import"./index-59bcxqee.js";
32
- import"./index-mcpppwbq.js";
31
+ import"./index-pj501bh1.js";
32
+ import"./index-j2jt49gr.js";
33
+ import"./index-9zkba8hr.js";
33
34
  import"./index-adx6khj5.js";
34
35
  import"./index-fp732bgg.js";
35
36
  import"./index-4j3tt0c3.js";
36
- import"./index-j70m75wd.js";
37
- import"./index-b88v3vtm.js";
38
- import"./index-e26mdwxz.js";
39
- import"./index-bdwcjvr4.js";
37
+ import"./index-wqx1x32f.js";
40
38
  import"./index-3gc2yk4k.js";
41
39
  import"./index-pgtm2nhf.js";
40
+ import"./index-bdwcjvr4.js";
41
+ import"./index-j70m75wd.js";
42
+ import"./index-b88v3vtm.js";
42
43
  import"./index-1gwbassd.js";
43
44
  import"./index-ahyhryb8.js";
44
45
  import"./index-1xxnjn0d.js";
@@ -10,7 +10,7 @@ import {
10
10
  readUrlMetadataDocument,
11
11
  renderUrlMetadataDocument,
12
12
  writeUrlMetadataDocument
13
- } from "./index-47893rgw.js";
13
+ } from "./index-5h5awwh4.js";
14
14
  import {
15
15
  ARCHIVE_TODAY_HOSTS,
16
16
  ArchiveTodayFailure,
@@ -23,10 +23,10 @@ import {
23
23
  parseMetadataSearchResponse,
24
24
  rankMetadataSearchResults,
25
25
  selectNewestArchiveTodayMemento
26
- } from "./index-hxyjer3x.js";
26
+ } from "./index-hacpnaew.js";
27
+ import"./index-mxxxytys.js";
27
28
  import"./index-e5fbsywq.js";
28
29
  import"./index-gh719d91.js";
29
- import"./index-mxxxytys.js";
30
30
  import"./index-1xxnjn0d.js";
31
31
  import"./index-qkesh4c6.js";
32
32
  import"./index-z1w83f81.js";
@@ -1,17 +1,17 @@
1
1
  // @bun
2
2
  import {
3
3
  decisionContextWorkflow
4
- } from "../index-7drercgk.js";
4
+ } from "../index-9fywek7g.js";
5
5
  import"../index-h170byqw.js";
6
- import"../index-mcpppwbq.js";
6
+ import"../index-9zkba8hr.js";
7
7
  import"../index-adx6khj5.js";
8
8
  import"../index-fp732bgg.js";
9
9
  import"../index-4j3tt0c3.js";
10
- import"../index-j70m75wd.js";
11
- import"../index-e26mdwxz.js";
12
- import"../index-bdwcjvr4.js";
10
+ import"../index-wqx1x32f.js";
13
11
  import"../index-3gc2yk4k.js";
14
12
  import"../index-pgtm2nhf.js";
13
+ import"../index-bdwcjvr4.js";
14
+ import"../index-j70m75wd.js";
15
15
  import"../index-1gwbassd.js";
16
16
  import"../index-ahyhryb8.js";
17
17
  import"../index-1xxnjn0d.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  decisionContextWorkflow
4
- } from "../index-7drercgk.js";
4
+ } from "../index-9fywek7g.js";
5
5
  import {
6
6
  explainChangeWorkflow
7
7
  } from "../index-e4fagfjz.js";
@@ -9,15 +9,15 @@ import {
9
9
  planRadarWorkflow
10
10
  } from "../index-rdd5f7jj.js";
11
11
  import"../index-h170byqw.js";
12
- import"../index-mcpppwbq.js";
12
+ import"../index-9zkba8hr.js";
13
13
  import"../index-adx6khj5.js";
14
14
  import"../index-fp732bgg.js";
15
15
  import"../index-4j3tt0c3.js";
16
- import"../index-j70m75wd.js";
17
- import"../index-e26mdwxz.js";
18
- import"../index-bdwcjvr4.js";
16
+ import"../index-wqx1x32f.js";
19
17
  import"../index-3gc2yk4k.js";
20
18
  import"../index-pgtm2nhf.js";
19
+ import"../index-bdwcjvr4.js";
20
+ import"../index-j70m75wd.js";
21
21
  import"../index-1gwbassd.js";
22
22
  import"../index-ahyhryb8.js";
23
23
  import"../index-1xxnjn0d.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hraness/wordcell",
3
- "version": "0.25.1",
3
+ "version": "0.26.1",
4
4
  "description": "Wordcell keeps decisions, plans, and sources as Markdown beside your code, so coding agents can find them from the file they are about to change.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -311,8 +311,8 @@
311
311
  }
312
312
  },
313
313
  "bin": {
314
- "wordcell": "./dist/cli.js",
315
- "wordcell-evaluation-builder": "./dist/evaluation-builder.js"
314
+ "wordcell": "./dist/cli-bin.js",
315
+ "wordcell-evaluation-builder": "./dist/evaluation-builder-bin.js"
316
316
  },
317
317
  "main": "./dist/index.js",
318
318
  "types": "./src/index.ts",
@@ -472,14 +472,20 @@
472
472
  "assets/agent-skill.svg",
473
473
  "src/support.ts",
474
474
  "src/support-profile.ts",
475
- "src/directory-sync.ts"
475
+ "src/directory-sync.ts",
476
+ "src/cli-bin.ts",
477
+ "src/cli-startup.ts",
478
+ "src/cli-update.ts",
479
+ "src/cli-release.ts",
480
+ "src/evaluation-builder-bin.ts",
481
+ "src/evaluation-builder-cli-args.ts"
476
482
  ],
477
483
  "scripts": {
478
484
  "kb:refresh": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.1/hraness-wordcell-0.24.1.tgz wordcell refresh --root kb",
479
485
  "kb:check:lane": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.1/hraness-wordcell-0.24.1.tgz wordcell check --root kb --no-catalog",
480
486
  "kb:check": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.1/hraness-wordcell-0.24.1.tgz wordcell check --root kb && bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.1/hraness-wordcell-0.24.1.tgz wordcell agents check --root kb --repo .",
481
487
  "kb:catalog": "bunx --bun --package https://github.com/hraness/wordcell/releases/download/v0.24.1/hraness-wordcell-0.24.1.tgz wordcell catalog --root kb",
482
- "build": "bun -e 'await (await import(\"node:fs/promises\")).rm(\"./dist\", { recursive: true, force: true })' && bun build ./src/index.ts ./src/publish.ts ./src/publish-model.ts ./src/publish-search.ts ./src/agent-context.ts ./src/agent-guide-audit.ts ./src/attachments.ts ./src/authoring.ts ./src/benchmark.ts ./src/clip/browser-profiles.ts ./src/capture.ts ./src/cli.ts ./src/clip/acquire.ts ./src/clip/args.ts ./src/clip/bounded-byte-buffer.ts ./src/clip/bundle-reader.ts ./src/clip/cli.ts ./src/clip/cookies.ts ./src/clip/doctor.ts ./src/clip/jobs.ts ./src/clip/network.ts ./src/clip/network-proxy.ts ./src/clip/persist.ts ./src/clip/refresh.ts ./src/clip/terminal.ts ./src/evaluation.ts ./src/evaluation-builder.ts ./src/evaluation-kb.ts ./src/git.ts ./src/graph.ts ./src/graph-percolation.ts ./src/graph-authority.ts ./src/navigation.ts ./src/pdf.ts ./src/percolate.ts ./src/portfolio.ts ./src/query.ts ./src/rerank.ts ./src/rerank-typesafe.ts ./src/repository-memory.ts ./src/sdk.ts ./src/search.ts ./src/search-rules.ts ./src/semantic.ts ./src/source-inbox.ts ./src/untrusted-content.ts ./src/url-intelligence.ts ./src/workflow.ts ./src/workflows/index.ts ./src/workflows/decision-context.ts ./src/workflows/explain-change.ts ./src/workflows/plan-radar.ts ./src/clip/defuddle-worker.ts --outdir ./dist --root ./src --target bun --format esm --splitting --packages external && bun build ./src/publish-reader/reader.ts --outfile ./dist/publish-reader/reader.js --target browser --format esm && bun build ./src/publish-reader/theme.ts --outfile ./dist/publish-reader/theme.js --target browser --format iife && cp ./src/publish-reader/reader.css ./dist/publish-reader/reader.css",
488
+ "build": "bun -e 'await (await import(\"node:fs/promises\")).rm(\"./dist\", { recursive: true, force: true })' && bun build ./src/index.ts ./src/publish.ts ./src/publish-model.ts ./src/publish-search.ts ./src/agent-context.ts ./src/agent-guide-audit.ts ./src/attachments.ts ./src/authoring.ts ./src/benchmark.ts ./src/clip/browser-profiles.ts ./src/capture.ts ./src/cli.ts ./src/cli-bin.ts ./src/evaluation-builder-bin.ts ./src/clip/acquire.ts ./src/clip/args.ts ./src/clip/bounded-byte-buffer.ts ./src/clip/bundle-reader.ts ./src/clip/cli.ts ./src/clip/cookies.ts ./src/clip/doctor.ts ./src/clip/jobs.ts ./src/clip/network.ts ./src/clip/network-proxy.ts ./src/clip/persist.ts ./src/clip/refresh.ts ./src/clip/terminal.ts ./src/evaluation.ts ./src/evaluation-builder.ts ./src/evaluation-kb.ts ./src/git.ts ./src/graph.ts ./src/graph-percolation.ts ./src/graph-authority.ts ./src/navigation.ts ./src/pdf.ts ./src/percolate.ts ./src/portfolio.ts ./src/query.ts ./src/rerank.ts ./src/rerank-typesafe.ts ./src/repository-memory.ts ./src/sdk.ts ./src/search.ts ./src/search-rules.ts ./src/semantic.ts ./src/source-inbox.ts ./src/untrusted-content.ts ./src/url-intelligence.ts ./src/workflow.ts ./src/workflows/index.ts ./src/workflows/decision-context.ts ./src/workflows/explain-change.ts ./src/workflows/plan-radar.ts ./src/clip/defuddle-worker.ts --outdir ./dist --root ./src --target bun --format esm --splitting --packages external && bun build ./src/publish-reader/reader.ts --outfile ./dist/publish-reader/reader.js --target browser --format esm && bun build ./src/publish-reader/theme.ts --outfile ./dist/publish-reader/theme.js --target browser --format iife && cp ./src/publish-reader/reader.css ./dist/publish-reader/reader.css",
483
489
  "check:workflows": "bun ./scripts/check-workflow-yaml.ts",
484
490
  "check:installed-command-docs": "bun ./scripts/check-installed-command-docs.ts",
485
491
  "check:portfolio-inventory": "bun ./scripts/check-portfolio-inventory.ts",
@@ -506,7 +512,8 @@
506
512
  "yaml": "^2.9.0",
507
513
  "zod": "^4.4.3",
508
514
  "effect": "3.22.1",
509
- "@hraness/support-foundation": "git+https://github.com/hraness/support-foundation.git#b32c1c81bb2444f50509ed54388758ecfab1f1c0"
515
+ "@hraness/support-foundation": "git+https://github.com/hraness/support-foundation.git#b32c1c81bb2444f50509ed54388758ecfab1f1c0",
516
+ "@hraness/cli-update": "https://github.com/hraness/cli-update/releases/download/v0.1.0/hraness-cli-update-0.1.0.tgz"
510
517
  },
511
518
  "devDependencies": {
512
519
  "@hraness/build-governance": "github:hraness/build-governance#v0.1.0",
@@ -58,7 +58,7 @@ missing:
58
58
  ```sh
59
59
  command -v wordcell >/dev/null 2>&1 || {
60
60
  command -v bun >/dev/null 2>&1 || exit 1
61
- bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.25.1/hraness-wordcell-0.25.1.tgz
61
+ bun add --global --ignore-scripts https://github.com/hraness/wordcell/releases/download/v0.26.1/hraness-wordcell-0.26.1.tgz
62
62
  }
63
63
  wordcell --help
64
64
  ```
@@ -73,6 +73,15 @@ Installation ends after command verification. Never run `wordcell init`, create
73
73
  vault, refresh a catalog, or edit Markdown as an installation side effect.
74
74
  Initialize or mutate a vault only when the user's request requires that change.
75
75
 
76
+ Supported global installations check for verified releases daily before work.
77
+ Use `wordcell update status`, `wordcell update check`, and `wordcell update`
78
+ to inspect or update the installed version. `wordcell update disable` saves an
79
+ opt-out; `wordcell update enable` restores updates. For offline or externally
80
+ version-bound work, set `HRANESS_NO_UPDATE=1` for the invocation. Never override
81
+ a saved opt-out or a consumer's version binding as part of task setup. Updates
82
+ require `gh`, preserve `--ignore-scripts`, and wait for active commands to exit.
83
+ SDK imports and help never check for updates.
84
+
76
85
  ## Preserve the Wordcell contract
77
86
 
78
87
  - For an existing vault, resolve `KB_ROOT` to the directory that contains its
package/src/cli-bin.ts ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bun
2
+ import { fileURLToPath } from "node:url";
3
+ import { runWordcellBin } from "./cli-update.js";
4
+
5
+ if (import.meta.main) process.exitCode = await runWordcellBin("wordcell", fileURLToPath(import.meta.url), process.argv.slice(2));
package/src/cli-help.ts CHANGED
@@ -650,6 +650,18 @@ export const commandHelp: readonly CommandHelp[] = [
650
650
  examples: ["wordcell url-metadata backfill --root kb"],
651
651
  notes: ["Run `wordcell url-metadata --help` for every option."],
652
652
  },
653
+ {
654
+ id: "update",
655
+ label: "update [check|status|enable|disable]",
656
+ usage: "wordcell update [check|status|enable|disable] [--json]",
657
+ summary: "Update this global installation or change automatic update settings.",
658
+ group: "advanced",
659
+ options: [JSON_OPTION, ["--check", "Check the latest release without installing"]],
660
+ examples: ["wordcell update status", "wordcell update disable"],
661
+ notes: ["Supported global installs on macOS and Linux update daily before work.",
662
+ "Set HRANESS_NO_UPDATE=1 to skip automatic checks for one invocation.",
663
+ "Active commands prevent replacement. SDK imports never check for updates."],
664
+ },
653
665
  {
654
666
  id: "support",
655
667
  label: "support",
@@ -1,15 +1,14 @@
1
+ import { parseCliStartupCommand } from "./cli-startup.js";
1
2
  import { terminalIntro } from "./cli-intro.js";
2
3
  import {
3
4
  advancedHelp,
4
5
  closestMatch,
5
6
  commandHelpText,
6
- commandWordCount,
7
7
  knownCommandWords,
8
8
  optionNames,
9
9
  resolveCommandId,
10
10
  rootHelp,
11
11
  startHelp,
12
- valueOptions,
13
12
  } from "./cli-help.js";
14
13
  import { detectAudience, renderFailure, sentence, symbol, terminalOutput, terminalStyle, type TerminalEnvironment } from "./cli-style.js";
15
14
  import { open, realpath, stat } from "node:fs/promises";
@@ -2280,10 +2279,6 @@ function parsePortfolioCommand(arguments_: readonly string[]): ParseResult {
2280
2279
  };
2281
2280
  }
2282
2281
 
2283
- function isHelpFlag(argument: string | undefined): boolean {
2284
- return argument === "--help" || argument === "-h";
2285
- }
2286
-
2287
2282
  /** True for the help request a delegated parser answers itself. */
2288
2283
  function isDelegatedHelp(command: ParsedCommand): boolean {
2289
2284
  if (command.kind === "clip") return command.arguments.length === 1 && command.arguments[0] === "help";
@@ -2293,59 +2288,10 @@ function isDelegatedHelp(command: ParsedCommand): boolean {
2293
2288
  return false;
2294
2289
  }
2295
2290
 
2296
- /** Help for delegated commands comes from their own parsers. */
2297
- function delegatedHelp(first: string): ParsedCommand | undefined {
2298
- if (first === "clip" || first === "inspect") return { kind: "clip", arguments: ["help"] };
2299
- if (first === "pdf") return { kind: "pdf", arguments: ["--help"] };
2300
- if (first === "url-metadata") return { kind: "url-metadata", arguments: ["--help"] };
2301
- return undefined;
2302
- }
2303
-
2304
- /** `help`, `help advanced`, and `help <command...>`. */
2305
- function parseHelpTopic(words: readonly string[]): ParseResult {
2306
- const topic = words.filter((word) => !isHelpFlag(word) && word !== "--json");
2307
- if (topic.length === 0) return { ok: true, value: { kind: "help" } };
2308
- if (topic.length === 1 && topic[0] === "advanced") return { ok: true, value: { kind: "help", topic: "advanced" } };
2309
- const delegated = delegatedHelp(topic[0] ?? "");
2310
- if (delegated !== undefined) return { ok: true, value: delegated };
2311
- const id = resolveCommandId(topic);
2312
- if (id === undefined) return { ok: false, message: "unknown help topic" };
2313
- return { ok: true, value: { kind: "help", topic: id } };
2314
- }
2315
-
2316
- /**
2317
- * `<command> --help` anywhere a person would type it: right after the command
2318
- * words, or as the last argument when it is not the value of an option.
2319
- */
2320
- function embeddedHelp(arguments_: readonly string[]): ParseResult | undefined {
2321
- const separator = arguments_.indexOf("--");
2322
- const end = separator === -1 ? arguments_.length : separator;
2323
- const index = arguments_.slice(0, end).findIndex(isHelpFlag);
2324
- if (index <= 0) return undefined;
2325
- const delegated = delegatedHelp(arguments_[0] ?? "");
2326
- if (delegated !== undefined) {
2327
- return index === 1 || index === end - 1 ? { ok: true, value: delegated } : undefined;
2328
- }
2329
- const id = resolveCommandId(arguments_.slice(0, index).filter((word) => !word.startsWith("-")));
2330
- if (id === undefined) return undefined;
2331
- const words = commandWordCount(id);
2332
- const previous = arguments_[index - 1] ?? "";
2333
- // `--help` is never an option value; `-h` could be one, as in `--body -h`.
2334
- const flag = arguments_[index];
2335
- const lastArgument = index === end - 1 && (flag === "--help" || !valueOptions(id).has(previous));
2336
- if (index !== words && !lastArgument) return undefined;
2337
- return { ok: true, value: { kind: "help", topic: id } };
2338
- }
2339
-
2340
2291
  export function parseArguments(arguments_: readonly string[]): ParseResult {
2292
+ const startup = parseCliStartupCommand(arguments_);
2293
+ if (startup !== undefined) return startup;
2341
2294
  const command = arguments_[0];
2342
- if (command === undefined) return { ok: true, value: { kind: "help", topic: "start" } };
2343
- if (command === "help" || isHelpFlag(command)) return parseHelpTopic(arguments_.slice(1));
2344
- if (command === "--version" || command === "-V" || command === "-v" || command === "version") {
2345
- return { ok: true, value: { kind: "version", json: arguments_.includes("--json") } };
2346
- }
2347
- const help = embeddedHelp(arguments_);
2348
- if (help !== undefined) return help;
2349
2295
  if (command === "capture" && arguments_[1] === "diff") {
2350
2296
  return parseCaptureDiffCommand(arguments_.slice(2));
2351
2297
  }