@pulsarinteractive/geniustasker 0.1.0-beta.3 → 0.1.0-beta.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/CHANGELOG.md +24 -0
- package/README.md +55 -63
- package/docs/ARCHITECTURE.md +40 -0
- package/docs/CLI.md +26 -2
- package/docs/DOCUMENTATION_SYNC.md +144 -0
- package/docs/INTEGRATIONS.md +2 -2
- package/docs/LIMITS.md +49 -0
- package/docs/MEMORY.md +38 -0
- package/docs/RELEASING.md +7 -0
- package/examples/codex.toml +1 -1
- package/examples/mcp.json +1 -1
- package/mcp.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/geniustasker/SKILL.md +3 -0
- package/skills/geniustasker/references/project-reads.md +43 -0
- package/skills/geniustasker-documentation/SKILL.md +39 -0
- package/skills/geniustasker-documentation/agents/openai.yaml +4 -0
- package/skills/geniustasker-documentation/references/structure.md +29 -0
- package/skills/geniustasker-graph/SKILL.md +31 -0
- package/skills/geniustasker-graph/agents/openai.yaml +4 -0
- package/skills/geniustasker-media/SKILL.md +33 -0
- package/skills/geniustasker-media/agents/openai.yaml +4 -0
- package/skills/geniustasker-memory/SKILL.md +75 -7
- package/skills/geniustasker-memory/references/knowledge-workflows.md +57 -0
- package/src/cli.mjs +151 -0
- package/src/client.mjs +54 -2
- package/src/command-catalog.mjs +109 -5
- package/src/commands.mjs +15 -2
- package/src/documentation-graph.mjs +251 -0
- package/src/documentation-store.mjs +589 -0
- package/src/documentation-sync.mjs +517 -0
- package/src/documentation.mjs +136 -0
- package/src/knowledge.mjs +109 -0
- package/src/mcp.mjs +122 -3
- package/src/media.mjs +307 -0
- package/src/read-cache.mjs +111 -0
- package/src/transport.mjs +33 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-beta.5 — 2026-10-02
|
|
4
|
+
|
|
5
|
+
- Incremental repository documentation from selected Memory folders and Graphs,
|
|
6
|
+
with generated Markdown provenance and optional digest-verified local media.
|
|
7
|
+
- Safe staged exports, local-edit detection, access revalidation, revocation
|
|
8
|
+
cleanup and account isolation; large Graphs use bounded portable chunks.
|
|
9
|
+
- Tree and Markdown read tools, documentation sync/status and media comparison.
|
|
10
|
+
- Focused documentation, resource and Graph skills with daily/post-work refresh.
|
|
11
|
+
|
|
12
|
+
Requires the service's `documentationSync` and `protectedMemoryAssets`
|
|
13
|
+
capabilities as appropriate.
|
|
14
|
+
|
|
15
|
+
## 0.1.0-beta.4 — 2026-10-02
|
|
16
|
+
|
|
17
|
+
- Short npm overview, focused Memory guide and account usage tables.
|
|
18
|
+
- Explain the UUID v4 identity required for Memory creation before sending an invalid request.
|
|
19
|
+
- Private Memory attachments through resumable MCP/CLI uploads, bounded binary transport and explicit downloads.
|
|
20
|
+
- Memory full-text search, bounded Graph neighborhoods and permission-aware references.
|
|
21
|
+
- Graph node/edge commands and richer document metadata from the API contract.
|
|
22
|
+
- Seven additional MCP tools and matching CLI commands; independent node content survives unavailable references.
|
|
23
|
+
- Shared request size bounds for rich documents, with immutable write retries preserved.
|
|
24
|
+
|
|
25
|
+
These additions require the corresponding service capabilities.
|
|
26
|
+
|
|
3
27
|
## 0.1.0-beta.3 — 2026-09-30
|
|
4
28
|
|
|
5
29
|
- MIT license for the client, skills and documentation; third-party license notices.
|
package/README.md
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
# GeniusTasker
|
|
1
|
+
# GeniusTasker CLI & MCP
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
The GeniusTasker application and service implementation are separate.
|
|
6
|
-
Canonical repository: [PulsarInteractive/geniustasker-agent-tools](https://github.com/PulsarInteractive/geniustasker-agent-tools).
|
|
3
|
+
Manage projects, tasks and knowledge from your terminal or AI assistant.
|
|
4
|
+
Connect once in your browser, choose what your agent can access, and stay in control.
|
|
7
5
|
|
|
8
|
-
[
|
|
9
|
-
[CLI reference](docs/CLI.md) · [OpenAI plugin](docs/OPENAI.md) · [Releases](CHANGELOG.md)
|
|
6
|
+
[Get started](#get-started) · [Agent setup](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/INTEGRATIONS.md) · [Commands](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/CLI.md) · [Usage limits](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/LIMITS.md)
|
|
10
7
|
|
|
11
|
-
##
|
|
8
|
+
## Get started
|
|
12
9
|
|
|
13
|
-
Requires **Node.js 22.13+** and an
|
|
14
|
-
Installing the client does not enable access to the service.
|
|
10
|
+
Requires **Node.js 22.13+** and an approved GeniusTasker account.
|
|
15
11
|
|
|
16
12
|
```sh
|
|
17
13
|
npm install -g @pulsarinteractive/geniustasker@beta
|
|
@@ -19,63 +15,59 @@ geniustasker auth login --context work
|
|
|
19
15
|
geniustasker projects list --context work --json
|
|
20
16
|
```
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
permissions
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
##
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
portable **local plugin bundle**. This is not an approved public ChatGPT-directory
|
|
54
|
-
plugin. The hosted HTTPS MCP/OAuth integration remains a separate milestone in
|
|
55
|
-
[OpenAI integration](docs/OPENAI.md).
|
|
56
|
-
|
|
57
|
-
## Development
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
npm ci
|
|
61
|
-
npm run verify
|
|
18
|
+
Sign in in the browser, select your projects or memories, then approve the requested
|
|
19
|
+
permissions. The terminal connects automatically. No token to copy.
|
|
20
|
+
Installing the package does not grant application access.
|
|
21
|
+
|
|
22
|
+
## What you can do
|
|
23
|
+
|
|
24
|
+
| Area | Features |
|
|
25
|
+
| ------------------- | -------------------------------------------------------------- |
|
|
26
|
+
| Projects & tasks | Browse work, update tickets, record progress and read comments |
|
|
27
|
+
| Agent collaboration | Ask for decisions, track replies and keep useful handoffs |
|
|
28
|
+
| Memory | Search documents and read the pages you need |
|
|
29
|
+
| Graph | Explore connected ideas and resolve links to Memory content |
|
|
30
|
+
| Files | Upload approved attachments and download selected files |
|
|
31
|
+
| Permissions | Choose scopes, restrict agent profiles and revoke connections |
|
|
32
|
+
|
|
33
|
+
Availability follows your account, the permissions you approve and the service's
|
|
34
|
+
current capabilities. [Memory & Graph guide](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/MEMORY.md).
|
|
35
|
+
|
|
36
|
+
## Connect your AI assistant
|
|
37
|
+
|
|
38
|
+
For a stdio MCP host, use this after signing in:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"geniustasker": {
|
|
44
|
+
"command": "npx",
|
|
45
|
+
"args": ["-y", "@pulsarinteractive/geniustasker@0.1.0-beta.5", "mcp", "--context", "work"]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
62
49
|
```
|
|
63
50
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
51
|
+
See [Codex, Claude and skills setup](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/INTEGRATIONS.md).
|
|
52
|
+
Your AI assistant uses its own model subscription; this package does not run or
|
|
53
|
+
bill the model. The [OpenAI integration guide](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/OPENAI.md)
|
|
54
|
+
explains the available local integration and hosted integration status.
|
|
68
55
|
|
|
69
|
-
##
|
|
56
|
+
## Documentation
|
|
70
57
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
58
|
+
| Guide | Use it for |
|
|
59
|
+
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
|
|
60
|
+
| [CLI reference](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/CLI.md) | Commands, browser login, remote terminals and troubleshooting |
|
|
61
|
+
| [Usage limits](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/LIMITS.md) | Plan limits, shared account quotas and safe retries |
|
|
62
|
+
| [Memory & Graph](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/MEMORY.md) | Documents, links, attachments and access changes |
|
|
63
|
+
| [Repository documentation](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/docs/DOCUMENTATION_SYNC.md) | Source selection, Markdown snapshots and freshness |
|
|
64
|
+
| [Security](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/SECURITY.md) | Credential handling and reporting a vulnerability |
|
|
65
|
+
| [Contributing](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/CONTRIBUTING.md) | Local development, tests and contribution guidelines |
|
|
66
|
+
| [Changelog](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/CHANGELOG.md) | Changes in each release |
|
|
75
67
|
|
|
76
68
|
## License
|
|
77
69
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
70
|
+
[MIT](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/LICENSE)
|
|
71
|
+
for this CLI, MCP server, skills and documentation.
|
|
72
|
+
[Third-party notices](https://github.com/PulsarInteractive/geniustasker-agent-tools/blob/main/THIRD_PARTY_NOTICES.md)
|
|
73
|
+
cover included components. The GeniusTasker application and backend are separate.
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -102,3 +102,43 @@ client operation, CLI/MCP adapter, failure tests and user documentation together
|
|
|
102
102
|
Prefer existing transport and storage primitives. A future remote MCP adapter is
|
|
103
103
|
a separate integration described in [OpenAI integration](OPENAI.md); the current
|
|
104
104
|
local plugin manifest must not imply that endpoint already exists.
|
|
105
|
+
|
|
106
|
+
## Focused knowledge reads
|
|
107
|
+
|
|
108
|
+
`knowledge.mjs` validates bounded search, Graph neighborhood and reference inputs
|
|
109
|
+
for both CLI and MCP. It checks response scope/shape, never follows cursors
|
|
110
|
+
automatically and never persists linked Memory content. `truncated` is an explicit
|
|
111
|
+
partial graph, not evidence that omitted nodes or relations do not exist. Target
|
|
112
|
+
permissions remain server-owned and independent of access to the referring graph.
|
|
113
|
+
|
|
114
|
+
## Conditional resource cache
|
|
115
|
+
|
|
116
|
+
`read-cache.mjs` keeps at most 64 responses and 8 MiB in process memory, with
|
|
117
|
+
15-minute idle eviction. Exact query keys include a hashed origin/credential
|
|
118
|
+
realm. Every hit makes an authenticated conditional request; no cache entry can
|
|
119
|
+
bypass current server permissions, quotas or source versions. Servers without
|
|
120
|
+
validators remain compatible and receive ordinary reads.
|
|
121
|
+
|
|
122
|
+
Concurrent identical reads share one request. Generation fences prevent late
|
|
123
|
+
responses from repopulating a cache after account/profile changes, failures or
|
|
124
|
+
MCP writes. Failed validation clears cached private bodies; there is no stale
|
|
125
|
+
success fallback and no persistent resource cache. Returned values are cloned so
|
|
126
|
+
one tool call cannot mutate another caller's cached result.
|
|
127
|
+
|
|
128
|
+
## Explicit repository snapshots
|
|
129
|
+
|
|
130
|
+
`documentation.mjs` validates the bounded tree and Markdown APIs. The sync
|
|
131
|
+
orchestrator keeps the selection independent of projects, compares descendant
|
|
132
|
+
versions, retrieves changed documents, verifies media and rechecks source
|
|
133
|
+
contexts before commit. `documentation-graph.mjs` maintains qualified Graph
|
|
134
|
+
records through incremental cursors and portable chunks of at most 100 records.
|
|
135
|
+
References do not materialize another Memory's private source bodies.
|
|
136
|
+
|
|
137
|
+
`documentation-store.mjs` owns only the configured destination's `content/`
|
|
138
|
+
subdirectory. A manifest records hashes and provenance. Local edits, unknown
|
|
139
|
+
files, symlinks and account/environment mismatches fail explicitly. A process
|
|
140
|
+
lock, staged tree and rename journal protect concurrent or interrupted exports.
|
|
141
|
+
Network failures leave the previous dated snapshot; current authorization is
|
|
142
|
+
never inferred from a local file. Confirmed scope revocation removes managed
|
|
143
|
+
source content at the next successful check, but cannot retract Git history or
|
|
144
|
+
copies elsewhere. The explicit export is separate from the process read cache.
|
package/docs/CLI.md
CHANGED
|
@@ -51,7 +51,7 @@ launching stdio servers with this entry (adjust environment/context as needed):
|
|
|
51
51
|
"mcpServers": {
|
|
52
52
|
"geniustasker": {
|
|
53
53
|
"command": "npx",
|
|
54
|
-
"args": ["-y", "@pulsarinteractive/geniustasker@0.1.0-beta.
|
|
54
|
+
"args": ["-y", "@pulsarinteractive/geniustasker@0.1.0-beta.5", "mcp", "--context", "work"]
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -389,7 +389,31 @@ source provenance. Preserve IDs when editing; do not relabel a proposal as a
|
|
|
389
389
|
verified fact. `pages --id ID` also reads one page. A targeted read has no change
|
|
390
390
|
cursor; obtain one from a complete collection inventory when watching updates.
|
|
391
391
|
Commands `memory.create/update/delete` and `memory.page.create/update/delete`
|
|
392
|
-
require `memory:write`. For a new space, choose one UUID for its root ID, scope
|
|
392
|
+
require `memory:write`. For a new space, choose one UUID v4 for its root ID, scope
|
|
393
393
|
suffix and initial epoch, then use the returned epoch/revision for later writes.
|
|
394
394
|
All edits use the same local command journal and optimistic revision checks as
|
|
395
395
|
project commands. Never copy private source files into this npm package.
|
|
396
|
+
|
|
397
|
+
## Page access and visual Graph levels
|
|
398
|
+
|
|
399
|
+
A memory can define `contentRoles` (stable IDs and display names). Membership
|
|
400
|
+
assignments are managed in the application. Page `visibility` is `inherit`,
|
|
401
|
+
`restricted`, or `private`; `readRoles` selects defined roles for a restricted
|
|
402
|
+
page. Restrictions apply through parent folders and to attached files. Content
|
|
403
|
+
roles never grant editing rights. Only memory administrators can change page
|
|
404
|
+
restrictions or move existing pages between parents. Never change sharing as a
|
|
405
|
+
workaround for denied reads.
|
|
406
|
+
|
|
407
|
+
Resources, search, references and media reads enforce current page access.
|
|
408
|
+
After permission changes, discard cached results and restart incremental reads
|
|
409
|
+
when `reset_required` is returned. An offline copy cannot establish current
|
|
410
|
+
access. Keep Graph nodes and their own notes when a linked page is unavailable.
|
|
411
|
+
|
|
412
|
+
Nodes accept `imageAssetId` for an image uploaded to the same memory and
|
|
413
|
+
`detailLevel`: `auto`, `overview`, `identity`, or `detail`. The node `kind` is its content type. Overview shows products, projects and brands;
|
|
414
|
+
Identities shows characters, people and entities (never places or scenes). Details
|
|
415
|
+
shows every type and supports type/status filters. Prefer `auto`; an explicit
|
|
416
|
+
`overview` can highlight another type there. Display level is not authorization.
|
|
417
|
+
Upload only approved imagery. Attaching a private image to a shared Graph makes
|
|
418
|
+
it visible to that Graph's readers and requires the user's authorization.
|
|
419
|
+
Read the full current record before editing and preserve its revision.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Keep product documentation beside your code
|
|
2
|
+
|
|
3
|
+
Choose the Memory libraries and Graphs relevant to a repository. GeniusTasker is
|
|
4
|
+
the editable source; the CLI produces a dated Markdown snapshot in your chosen
|
|
5
|
+
directory. Memory remains independent of projects.
|
|
6
|
+
|
|
7
|
+
This workflow requires `documentationSync: true` in `geniustasker capabilities`
|
|
8
|
+
and the `docs sync` command in your installed client. All reads use your current
|
|
9
|
+
account, connection, profile and page permissions.
|
|
10
|
+
|
|
11
|
+
## Configure a repository
|
|
12
|
+
|
|
13
|
+
Create a small configuration file, for example `geniustasker-docs.json`:
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"formatVersion": 1,
|
|
18
|
+
"sources": [
|
|
19
|
+
{ "scope": "memory:PRODUCT_ID", "pages": true, "graph": true },
|
|
20
|
+
{ "scope": "memory:DESIGN_ID", "parentId": "VISUALS_FOLDER_ID", "pages": true }
|
|
21
|
+
],
|
|
22
|
+
"media": "local"
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Use IDs discovered through your own account. Omit `parentId` for a whole library.
|
|
27
|
+
`graph` includes that scope’s Graph, independently of its document subtree.
|
|
28
|
+
`media: "references"` keeps resource IDs without downloading bytes; `local`
|
|
29
|
+
downloads only media used by the selected pages and Graph thumbnails and needs
|
|
30
|
+
`media:read`. Choose up to 50 scopes, with one subtree per scope.
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
geniustasker docs sync --context work --directory docs/geniustasker --file geniustasker-docs.json --json
|
|
34
|
+
geniustasker docs status --directory docs/geniustasker --json
|
|
35
|
+
geniustasker docs sync --context work --directory docs/geniustasker --json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The first call saves the selection. Later calls reuse it; supplying another
|
|
39
|
+
configuration explicitly changes the selection. The recommended destination is
|
|
40
|
+
`docs/geniustasker/`, but choose a path that fits your repository. Exporting private
|
|
41
|
+
knowledge does not publish it or authorize committing it to a public repository.
|
|
42
|
+
|
|
43
|
+
## What appears locally
|
|
44
|
+
|
|
45
|
+
All generated files live in the destination’s **`content/`** subdirectory.
|
|
46
|
+
Keep handwritten files alongside `content/`, rather than inside it.
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
docs/geniustasker/
|
|
50
|
+
content/
|
|
51
|
+
.geniustasker-manifest.json
|
|
52
|
+
memory-PRODUCT_ID/
|
|
53
|
+
index.md
|
|
54
|
+
pages/
|
|
55
|
+
overview--stable-suffix/index.md
|
|
56
|
+
visuals--stable-suffix/
|
|
57
|
+
interface--stable-suffix/index.md
|
|
58
|
+
resources/RESOURCE_ID.png
|
|
59
|
+
graph.md
|
|
60
|
+
graph.json
|
|
61
|
+
graph/nodes-0000.md
|
|
62
|
+
graph/nodes-0000.json
|
|
63
|
+
graph/edges-0000.md
|
|
64
|
+
graph/edges-0000.json
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Pages keep Markdown headings, tables, lists, code and Mermaid blocks. Each starts
|
|
68
|
+
with an automatic-generation notice and ends with source ID, revision, edit time,
|
|
69
|
+
creator/editor and source epoch. Older imported records can have an unknown
|
|
70
|
+
editor; the exporter does not invent one. View diagrams in a Mermaid-capable
|
|
71
|
+
Markdown reader.
|
|
72
|
+
|
|
73
|
+
Shared resources have one local file per asset ID within the selected Memory.
|
|
74
|
+
The server’s verified SHA-256 is checked when available; unchanged immutable
|
|
75
|
+
assets reuse the previously verified local bytes. Generated files contain no
|
|
76
|
+
bearer tokens or signed download URLs.
|
|
77
|
+
|
|
78
|
+
Graph JSON is split into chunks of at most 100 records, with a small `graph.json`
|
|
79
|
+
index. The Markdown companions preserve node notes and qualified relations.
|
|
80
|
+
References to another Memory remain source identities: access to a Graph does
|
|
81
|
+
not grant access to linked content, and a missing reference does not erase nodes.
|
|
82
|
+
|
|
83
|
+
## Efficient updates
|
|
84
|
+
|
|
85
|
+
The exporter checks current access and folder versions first. It skips unchanged
|
|
86
|
+
branches, retrieves changed Markdown pages individually, and uses Graph change
|
|
87
|
+
cursors after the first inventory. Moves, non-latest-child deletions and restored
|
|
88
|
+
sources are detected. A continuation cannot silently mix source revisions.
|
|
89
|
+
|
|
90
|
+
An interrupted first export keeps completed downloads in a private cache beside
|
|
91
|
+
the CLI credentials, outside the repository. The next attempt checks access and
|
|
92
|
+
the current tree again before reusing a page with the same revision. Graph and
|
|
93
|
+
media downloads also resume when their source checkpoint still matches. A quota
|
|
94
|
+
reset therefore does not require downloading the same first pages repeatedly.
|
|
95
|
+
Changed or inaccessible entries are discarded. The temporary cache is bounded
|
|
96
|
+
to twice the selected byte budget and is removed after a successful sync.
|
|
97
|
+
|
|
98
|
+
Use `memory tree --scope memory:ID` to inspect a bounded folder. Continue with
|
|
99
|
+
`--after`, `--epoch` and `--checkpoint`. Use `memory markdown --scope memory:ID
|
|
100
|
+
--page PAGE_ID` for one page, optionally with its expected `--revision`.
|
|
101
|
+
|
|
102
|
+
There is no background polling. For a repository using generated knowledge:
|
|
103
|
+
|
|
104
|
+
1. At the beginning of a working day, check `docs status`; sync before relying on
|
|
105
|
+
a snapshot whose freshness has not been checked that day.
|
|
106
|
+
2. Read local files for the task. Fetch only missing source details through MCP.
|
|
107
|
+
3. Apply relevant documentation changes to GeniusTasker using MCP, preserving
|
|
108
|
+
IDs, hierarchy, source authority and expected revisions.
|
|
109
|
+
4. Sync again after finishing work that changes the documented product or Graph.
|
|
110
|
+
|
|
111
|
+
An offline or refused check never advances the successful check time. Local
|
|
112
|
+
files remain dated snapshots, not evidence of present authorization.
|
|
113
|
+
|
|
114
|
+
## Failure and recovery
|
|
115
|
+
|
|
116
|
+
| Situation | Result and next step |
|
|
117
|
+
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
118
|
+
| Network error or interrupted download | The previous complete snapshot remains. Rerun sync; completed downloads resume after fresh authorization and version checks. |
|
|
119
|
+
| Source changed during export | No mixed snapshot is installed. Reread and rerun. |
|
|
120
|
+
| Confirmed scope denial | Its managed snapshot is removed and marked unavailable. Regrant permits a fresh export. This cannot retract Git history or other copies. |
|
|
121
|
+
| Local edits/additions inside `content/` | Sync stops without overwriting them. Apply edits through MCP and preserve handwritten files outside the managed directory. |
|
|
122
|
+
| Account/environment changed | Use a separate destination; the exporter refuses to merge identities. |
|
|
123
|
+
| Another exporter is running | Wait for it. A crashed process can be released with `docs unlock --directory ...`; a living or foreign-host process is never unlocked. |
|
|
124
|
+
| Interrupted directory replacement | The next sync restores the previous snapshot when necessary, then revalidates. It does not publish unchecked staged data. |
|
|
125
|
+
| Quota or rate limit | Follow the returned reset/retry guidance. Do not create profiles to bypass account limits. |
|
|
126
|
+
|
|
127
|
+
Symlink destinations, path traversal and conflicting generated paths are refused.
|
|
128
|
+
The default budget is 20,000 files and 256 MiB. Explicit `--max-files` (up to
|
|
129
|
+
100,000) and `--max-bytes` (up to 4 GiB) can raise it for a reviewed selection;
|
|
130
|
+
individual files remain bounded. These local budgets do not increase server
|
|
131
|
+
quotas. Narrow the selection if exporting everything is unnecessary.
|
|
132
|
+
|
|
133
|
+
## Agent tools
|
|
134
|
+
|
|
135
|
+
| Tool | Purpose |
|
|
136
|
+
| ------------------------ | --------------------------------------------------------------- |
|
|
137
|
+
| `tasker_memory_tree` | Inspect a folder and descendant versions without loading bodies |
|
|
138
|
+
| `tasker_memory_markdown` | Fetch one source page with provenance |
|
|
139
|
+
| `tasker_docs_status` | Inspect the saved date and selections locally |
|
|
140
|
+
| `tasker_docs_sync` | Refresh the explicit selection in a local directory |
|
|
141
|
+
| `tasker_media_compare` | Compare a local file with an existing resource before upload |
|
|
142
|
+
|
|
143
|
+
The documentation, media and Graph skills describe the corresponding workflows.
|
|
144
|
+
They do not authorize account changes or publication outside the user’s task.
|
package/docs/INTEGRATIONS.md
CHANGED
|
@@ -7,8 +7,8 @@ are selected in the browser and enforced by the service on every request.
|
|
|
7
7
|
## Codex: direct MCP
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
npx -y @pulsarinteractive/geniustasker@0.1.0-beta.
|
|
11
|
-
codex mcp add geniustasker -- npx -y @pulsarinteractive/geniustasker@0.1.0-beta.
|
|
10
|
+
npx -y @pulsarinteractive/geniustasker@0.1.0-beta.5 auth login --context work
|
|
11
|
+
codex mcp add geniustasker -- npx -y @pulsarinteractive/geniustasker@0.1.0-beta.5 mcp --context work
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Restart the host as needed, then inspect its MCP list. Ask the agent to read its
|
package/docs/LIMITS.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Usage limits
|
|
2
|
+
|
|
3
|
+
CLI and MCP share your GeniusTasker account limits. Creating more agent profiles,
|
|
4
|
+
opening more terminals or changing devices does not give additional allowance.
|
|
5
|
+
The service reports current limits through `geniustasker capabilities --json`.
|
|
6
|
+
|
|
7
|
+
## Agent requests
|
|
8
|
+
|
|
9
|
+
| Allowance | Free | Premium | Pro |
|
|
10
|
+
| ----------------------------- | ----: | -----------------: | -----------------: |
|
|
11
|
+
| Requests per 60 seconds | 30 | 120 | 300 |
|
|
12
|
+
| Write requests per 60 seconds | 5 | 20 | 60 |
|
|
13
|
+
| Monthly request credits | 5,000 | No monthly ceiling | No monthly ceiling |
|
|
14
|
+
| Monthly write requests | 500 | No monthly ceiling | No monthly ceiling |
|
|
15
|
+
|
|
16
|
+
Write requests also count toward the request limit. For Free accounts, a read
|
|
17
|
+
costs one monthly credit and a write costs five; both monthly limits must have
|
|
18
|
+
capacity. Monthly counters reset at the beginning of the next calendar month
|
|
19
|
+
in UTC. Premium appears as `Starter` in API responses; Pro appears as `Pro`.
|
|
20
|
+
|
|
21
|
+
These are the current service settings, not a pricing commitment. Short-window
|
|
22
|
+
limits provide traffic protection and can apply approximately by location;
|
|
23
|
+
clients must follow the service response. Resource limits for projects, members,
|
|
24
|
+
Memory, storage and attachments are separate and still apply. Availability also
|
|
25
|
+
requires account approval and an explicitly granted agent connection.
|
|
26
|
+
|
|
27
|
+
## When a limit is reached
|
|
28
|
+
|
|
29
|
+
| Response | Next step |
|
|
30
|
+
| -------------------------------- | --------------------------------------------------------------------- |
|
|
31
|
+
| Temporary rate limit (`429`) | Wait for the reported retry time; do not loop or open another context |
|
|
32
|
+
| Free monthly allowance exhausted | Wait for the reported reset or change plan when available |
|
|
33
|
+
| Resource capacity reached | Free capacity or change plan before creating more data |
|
|
34
|
+
| Permission refused (`403`) | Ask the account or resource owner to review access |
|
|
35
|
+
| Interrupted write | Keep its operation ID and retry that same operation |
|
|
36
|
+
|
|
37
|
+
The client preserves a write's immutable journal for safe retries. A timeout is
|
|
38
|
+
not proof that the write failed. Read the latest record after a revision conflict
|
|
39
|
+
before preparing a new operation.
|
|
40
|
+
|
|
41
|
+
## Keep reads focused
|
|
42
|
+
|
|
43
|
+
- List one page of spaces or resources at a time and follow its cursor as needed.
|
|
44
|
+
- Use Memory search and its page index before downloading document bodies.
|
|
45
|
+
- Explore a bounded Graph neighborhood instead of loading every node.
|
|
46
|
+
- Reuse checkpoints for change reads; honor `restart_read` when the service asks.
|
|
47
|
+
- Local cache hits revalidate access. Revoked permissions never become an offline grant.
|
|
48
|
+
|
|
49
|
+
See [CLI reference](CLI.md) for commands and [Memory & Graph](MEMORY.md) for examples.
|
package/docs/MEMORY.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Memory and Graph
|
|
2
|
+
|
|
3
|
+
Memory stores structured documents independently of projects. Graph connects
|
|
4
|
+
nodes and links them to a page or a stable document block. These commands require
|
|
5
|
+
the matching deployed service capabilities; check `geniustasker capabilities --json` before using them.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
geniustasker memory search --scope memory:ID --query "release checklist" --json
|
|
9
|
+
geniustasker graph explore --scope memory:ID --center NODE_ID --depth 2 --json
|
|
10
|
+
geniustasker memory resolve --scope memory:ID --page PAGE_ID --block BLOCK_ID --json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The matching MCP tools are `tasker_search`, `tasker_graph` and `tasker_reference`.
|
|
14
|
+
Search is paginated; Graph returns a bounded neighborhood and reports truncation.
|
|
15
|
+
Use `resources list` for complete selected records and `commands describe` for
|
|
16
|
+
contract-derived node/edge write fields. Writes keep the same immutable journal.
|
|
17
|
+
|
|
18
|
+
References recheck current access. If a friend withdraws access, the content
|
|
19
|
+
becomes unavailable while the node and its own text remain intact. A new grant
|
|
20
|
+
restores resolution; a link never grants access by itself. The client does not
|
|
21
|
+
cache resolved content. Discover capabilities before selecting a workflow.
|
|
22
|
+
|
|
23
|
+
## Attachments
|
|
24
|
+
|
|
25
|
+
Discover `mediaUploadAvailable` and `maxUploadBytes` first. Prepare one explicitly
|
|
26
|
+
selected file with `media prepare --scope memory:ID --epoch EPOCH --file diagram.png
|
|
27
|
+
--content-type image/png`, then `media upload --operation UUID`. Keep that operation
|
|
28
|
+
ID after a timeout: retries verify the same bytes and do not create a second file.
|
|
29
|
+
Use the returned `assetId` in an image or attachment block. Images, PDF and plain
|
|
30
|
+
text are supported up to 15 MB; storage is charged to the Memory owner.
|
|
31
|
+
|
|
32
|
+
MCP equivalents are `tasker_media_prepare`, `tasker_media_upload`,
|
|
33
|
+
`tasker_media_action` and `tasker_media_download`. Downloads require an explicit
|
|
34
|
+
new local path and fresh read access. Removal leaves document blocks in place
|
|
35
|
+
so people can see and repair the unavailable attachment. No credentials, URLs
|
|
36
|
+
with public access tokens or file bytes are embedded in documents.
|
|
37
|
+
|
|
38
|
+
See the [CLI reference](CLI.md) for document blocks, page roles, node types, images and detailed command examples.
|
package/docs/RELEASING.md
CHANGED
|
@@ -14,3 +14,10 @@ committing an npm token; it is not configured by this repository.
|
|
|
14
14
|
Published npm versions are immutable. Use a new version for package changes.
|
|
15
15
|
|
|
16
16
|
Canonical repository: https://github.com/PulsarInteractive/geniustasker-agent-tools
|
|
17
|
+
|
|
18
|
+
The npm package page and unqualified installs use the `latest` tag. After verifying
|
|
19
|
+
the release archive, explicitly update both the intended channel and the default
|
|
20
|
+
version; do not leave `latest` pointing at a superseded license or README. Verify
|
|
21
|
+
`npm view @pulsarinteractive/geniustasker dist-tags license repository.url --json`
|
|
22
|
+
and inspect the actual npm page. An old published archive is immutable; tags do
|
|
23
|
+
not rewrite its contents.
|
package/examples/codex.toml
CHANGED
package/examples/mcp.json
CHANGED
package/mcp.json
CHANGED
package/package.json
CHANGED
package/plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "geniustasker",
|
|
4
|
-
"version": "0.1.0-beta.
|
|
4
|
+
"version": "0.1.0-beta.5",
|
|
5
5
|
"description": "Track project work and independent product memories with your own agents.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Pulsar Interactive"
|
|
@@ -25,6 +25,9 @@ List projects, then select a scope from the returned data. Read a collection
|
|
|
25
25
|
listed in capabilities with `resources list --scope project:ID --collection
|
|
26
26
|
tasks --json`, or MCP `tasker_resources`. Collections include tasks, comments,
|
|
27
27
|
goals, documents, workflows, sprints and summary history when permitted.
|
|
28
|
+
For document indexes, schedules, membership and planning collections, read
|
|
29
|
+
[Focused project reads](references/project-reads.md). `documents` means task
|
|
30
|
+
attachments; `projectDocumentIndex` and `projectDocuments` cover the project library.
|
|
28
31
|
|
|
29
32
|
Read bounded pages. Follow `nextAfter` even if the project page is empty: ACL
|
|
30
33
|
filtering can hide every item in a scanned page. For resource continuation,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Focused project reads
|
|
2
|
+
|
|
3
|
+
Start with identity, capabilities and the current project list. Use only collection
|
|
4
|
+
names advertised by that server and permitted by the active profile. New client
|
|
5
|
+
versions can connect to older deployments; a documented collection is not proof
|
|
6
|
+
that the current deployment supports it.
|
|
7
|
+
|
|
8
|
+
| Need | Collection | Efficient approach |
|
|
9
|
+
| ------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------- |
|
|
10
|
+
| Tasks and tickets | `tasks` | Read active work first; fetch an exact `id` for details. |
|
|
11
|
+
| Task attachments / descriptions | `documents` | These belong to tasks, not the project's document library. |
|
|
12
|
+
| Project document navigation | `projectDocumentIndex`, `documentFolders` | Read titles and folders without rich-text bodies. |
|
|
13
|
+
| One project document | `projectDocuments` | Pass the ID discovered in the index. |
|
|
14
|
+
| Discussion / work reports / approvals | `comments` | Read one bounded page and retain the change cursor. |
|
|
15
|
+
| People and access roles | `members` | Current membership is evidence, never authority to change access. |
|
|
16
|
+
| Labels | `tags` | Resolve label IDs when interpreting work. |
|
|
17
|
+
| Recurring tasks | `schedules` | Inspect recurrence, timezone and disabled state before proposing changes. |
|
|
18
|
+
| Reusable lists and task templates | `preparedLists`, `taskTemplates` | Read only when the task concerns these resources. |
|
|
19
|
+
| Planning | `sprints`, `workflows`, `sprintHistory` | Keep current configuration distinct from historical snapshots. |
|
|
20
|
+
| GitHub-linked activity | `gitHubLinks` | A link is evidence, not permission to execute actions in GitHub. |
|
|
21
|
+
| Project member goals | `goals` | These are project goals, not unrelated private account data. |
|
|
22
|
+
| Questions and audit metadata | `questions`, `history` | Use the dedicated answers tool for ballots; respect anonymous results. |
|
|
23
|
+
|
|
24
|
+
For example, after selecting an authorized scope:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
geniustasker resources list --scope project:PROJECT_ID --collection projectDocumentIndex --json
|
|
28
|
+
geniustasker resources list --scope project:PROJECT_ID --collection projectDocuments --id DOCUMENT_ID --json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The same arguments are supported by MCP `tasker_resources`. Collections share
|
|
32
|
+
bounded pagination and context rules. Preserve `epoch` and `checkpoint` on
|
|
33
|
+
continuation; `omittedIds` means the result is incomplete. For ongoing work, use
|
|
34
|
+
`changeCursor` instead of repeatedly traversing the entire library.
|
|
35
|
+
|
|
36
|
+
The in-process resource cache revalidates authorization with the server on every
|
|
37
|
+
read. Repeated unchanged reads reduce transferred content, but still consume
|
|
38
|
+
request quota. Prefer reusing the evidence you already inspected within the same
|
|
39
|
+
task, and revalidate before relying on current revisions or permissions.
|
|
40
|
+
|
|
41
|
+
Memory and Graph have their own grants and workflow. Follow the
|
|
42
|
+
`geniustasker-memory` skill to navigate page indexes, stable block IDs, links and
|
|
43
|
+
bounded graph neighborhoods. A project membership does not grant Memory access.
|