@pulsarinteractive/geniustasker 0.1.0-beta.2 → 0.1.0-beta.4
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 +19 -0
- package/CONTRIBUTING.md +67 -12
- package/LICENSE +21 -0
- package/LICENSES/Apache-2.0.txt +202 -0
- package/README.md +55 -59
- package/THIRD_PARTY_NOTICES.md +15 -0
- package/docs/ARCHITECTURE.md +126 -0
- package/docs/CLI.md +30 -11
- package/docs/INTEGRATIONS.md +3 -3
- package/docs/LIMITS.md +49 -0
- package/docs/MEMORY.md +38 -0
- package/docs/OPENAI.md +10 -11
- package/docs/RELEASING.md +11 -3
- package/docs/TESTING.md +52 -0
- package/examples/codex.toml +1 -1
- package/examples/mcp.json +1 -7
- package/mcp.json +1 -7
- package/package.json +20 -9
- package/plugin.json +6 -15
- package/skills/geniustasker/SKILL.md +3 -2
- package/skills/geniustasker/agents/openai.yaml +3 -3
- package/skills/geniustasker/references/collaboration.md +0 -2
- package/skills/geniustasker/references/project-reads.md +43 -0
- package/skills/geniustasker-memory/SKILL.md +67 -6
- package/skills/geniustasker-memory/agents/openai.yaml +3 -3
- package/skills/geniustasker-memory/references/knowledge-workflows.md +57 -0
- package/src/changes.mjs +104 -28
- package/src/cli.mjs +372 -77
- package/src/client.mjs +201 -34
- package/src/command-catalog.mjs +109 -5
- package/src/commands.mjs +215 -52
- package/src/errors.mjs +55 -12
- package/src/knowledge.mjs +109 -0
- package/src/login.mjs +190 -47
- package/src/mcp.mjs +256 -43
- package/src/media.mjs +242 -0
- package/src/profiles.mjs +123 -32
- package/src/read-cache.mjs +111 -0
- package/src/store.mjs +101 -26
- package/src/transport.mjs +165 -32
package/docs/CLI.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# GeniusTasker CLI
|
|
1
|
+
# GeniusTasker CLI and MCP reference
|
|
2
2
|
|
|
3
3
|
Connect your own AI tools to your projects: read progress, work on tickets,
|
|
4
4
|
comment, ask questions and keep a useful handoff. Your account and project
|
|
@@ -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.4", "mcp", "--context", "work"]
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -156,7 +156,6 @@ Protocol references: [OAuth device authorization](https://www.rfc-editor.org/rfc
|
|
|
156
156
|
[OAuth metadata](https://www.rfc-editor.org/rfc/rfc8414), and the
|
|
157
157
|
[official MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk).
|
|
158
158
|
|
|
159
|
-
|
|
160
159
|
## Prepare, execute and recover writes
|
|
161
160
|
|
|
162
161
|
Request the relevant permissions when connecting, for example:
|
|
@@ -222,8 +221,7 @@ record bodies; read them separately if your grant permits it.
|
|
|
222
221
|
Local validation includes separate processes sharing one write, immutable retry
|
|
223
222
|
after lost responses, strict inputs, receipt validation and an official MCP
|
|
224
223
|
client communicating through stdio to actual Worker/SQLite domain services.
|
|
225
|
-
|
|
226
|
-
|
|
224
|
+
Compatibility with each agent host requires its own connection test.
|
|
227
225
|
|
|
228
226
|
## Agent profiles and terminal identity
|
|
229
227
|
|
|
@@ -267,7 +265,6 @@ the previous usable credentials; read the profile list again. An unknown rotatio
|
|
|
267
265
|
outcome requires logout/login, just like an unknown refresh. Credentials never
|
|
268
266
|
appear in selection results, CLI output, MCP tool results or package artifacts.
|
|
269
267
|
|
|
270
|
-
|
|
271
268
|
## Ask a human on a ticket
|
|
272
269
|
|
|
273
270
|
Request `questions:write` explicitly when connecting; an existing comments grant
|
|
@@ -314,7 +311,6 @@ an open anonymous question's public checkpoint.
|
|
|
314
311
|
profile can close only questions it created. It cannot answer on behalf of its
|
|
315
312
|
owner, impersonate another profile, or use a poll result as new authorization.
|
|
316
313
|
|
|
317
|
-
|
|
318
314
|
## Work updates and handoffs
|
|
319
315
|
|
|
320
316
|
Prepare `task.report` through the normal command journal with the current task
|
|
@@ -329,7 +325,6 @@ comment. Completing/reopening a ticket clears its current phase. A report is
|
|
|
329
325
|
progress information, not approval or proof independently verified by Tasker.
|
|
330
326
|
Correct published reports with a new report; never rewrite an older receipt.
|
|
331
327
|
|
|
332
|
-
|
|
333
328
|
## Ask for approval of one precise action
|
|
334
329
|
|
|
335
330
|
Connect with `approvals:write` explicitly, alongside the read grants needed to
|
|
@@ -374,8 +369,8 @@ Only the CLI/MCP source, its generated public command catalog, bundled agent ski
|
|
|
374
369
|
and the selected guide/plugin files are distributed. Application source, infrastructure configuration,
|
|
375
370
|
private product documents, test identities and credentials are excluded. No
|
|
376
371
|
installation script runs and no background daemon or telemetry is installed.
|
|
377
|
-
The
|
|
378
|
-
|
|
372
|
+
The standalone client and skills are distributed under the MIT license.
|
|
373
|
+
Third-party components retain their original licenses.
|
|
379
374
|
|
|
380
375
|
## Independent memories
|
|
381
376
|
|
|
@@ -394,7 +389,31 @@ source provenance. Preserve IDs when editing; do not relabel a proposal as a
|
|
|
394
389
|
verified fact. `pages --id ID` also reads one page. A targeted read has no change
|
|
395
390
|
cursor; obtain one from a complete collection inventory when watching updates.
|
|
396
391
|
Commands `memory.create/update/delete` and `memory.page.create/update/delete`
|
|
397
|
-
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
|
|
398
393
|
suffix and initial epoch, then use the returned epoch/revision for later writes.
|
|
399
394
|
All edits use the same local command journal and optimistic revision checks as
|
|
400
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.
|
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.4 auth login --context work
|
|
11
|
+
codex mcp add geniustasker -- npx -y @pulsarinteractive/geniustasker@0.1.0-beta.4 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
|
|
@@ -43,7 +43,7 @@ available in the execution environment. Authenticate the `work` context first.
|
|
|
43
43
|
The repository also has `.agents/plugins/marketplace.json` for local distribution:
|
|
44
44
|
|
|
45
45
|
```sh
|
|
46
|
-
codex plugin marketplace add
|
|
46
|
+
codex plugin marketplace add PulsarInteractive/geniustasker-agent-tools
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
Use the host's Plugins interface to select and enable GeniusTasker. This local
|
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/OPENAI.md
CHANGED
|
@@ -9,20 +9,19 @@ Nothing here is an OpenAI directory approval or a hosted remote MCP endpoint.
|
|
|
9
9
|
|
|
10
10
|
## Hosted plugin milestone
|
|
11
11
|
|
|
12
|
-
| Work
|
|
13
|
-
|
|
|
14
|
-
| HTTPS Streamable HTTP MCP adapter | Real initialize, tools/list and tool calls; reuse existing product commands and quotas
|
|
15
|
-
| MCP OAuth compatibility
|
|
16
|
-
| Host authentication
|
|
17
|
-
| Writes
|
|
18
|
-
| Optional company-knowledge search | Authorized search/fetch with user-openable citations and bounded results
|
|
19
|
-
| Plugin review
|
|
12
|
+
| Work | Acceptance |
|
|
13
|
+
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
14
|
+
| HTTPS Streamable HTTP MCP adapter | Real initialize, tools/list and tool calls; reuse existing product commands and quotas |
|
|
15
|
+
| MCP OAuth compatibility | Protected-resource and authorization discovery, audience/resource binding, supported client registration, allowed callbacks, PKCE, expiry and revocation |
|
|
16
|
+
| Host authentication | Real browser consent, resource-limited reads, denied access and reauthentication |
|
|
17
|
+
| Writes | Explicit grants, correctly annotated tools, immutable retries and conflicts; no blanket approval |
|
|
18
|
+
| Optional company-knowledge search | Authorized search/fetch with user-openable citations and bounded results |
|
|
19
|
+
| Plugin review | Accurate install copy, privacy/terms links, domain verification, real test account, honest limitations |
|
|
20
20
|
|
|
21
21
|
The current CLI OAuth flow is a foundation; it is not proof that every hosted
|
|
22
22
|
MCP client's registration and resource-discovery requirements are implemented.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
UI is optional and should follow actual product tasks.
|
|
23
|
+
A hosted manifest requires a deployed and tested MCP server and a registered
|
|
24
|
+
application identifier. Embedded UI is optional.
|
|
26
25
|
|
|
27
26
|
The remotely hosted backend can remain private. A public source repository is a
|
|
28
27
|
client distribution and review surface, not an access grant to user data.
|
package/docs/RELEASING.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Release process
|
|
2
2
|
|
|
3
3
|
1. Update package, lockfile, MCP server version, plugin version and example pins together.
|
|
4
|
-
2. Review public contract/skill changes and run `npm ci`, `npm
|
|
4
|
+
2. Review public contract/skill changes and run `npm ci`, `npm run verify` and `npm audit`.
|
|
5
5
|
3. Inspect `git diff` and the complete `npm pack --dry-run --json` list. No private repository history or product files may enter this repo.
|
|
6
6
|
4. Pack and inspect the actual archive. `npm publish <archive> --access public --tag beta` requires the maintainer's npm authentication.
|
|
7
7
|
5. Confirm registry version/tag/integrity, install using a fresh cache and exercise real MCP through an explicitly authorized beta account. Keep private results outside this repository.
|
|
@@ -11,5 +11,13 @@ CI runs tests and package/privacy checks. It never publishes npm or deploys the
|
|
|
11
11
|
service. Future trusted publishing should use a reviewed OIDC setup rather than
|
|
12
12
|
committing an npm token; it is not configured by this repository.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
Published npm versions are immutable. Use a new version for package changes.
|
|
15
|
+
|
|
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/docs/TESTING.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Testing
|
|
2
|
+
|
|
3
|
+
## Run the quality checks
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
npm ci
|
|
7
|
+
npm run verify
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`verify` runs formatting, ESLint, tests, package inventory, public-file checks and
|
|
11
|
+
plugin/schema validation. CI runs the same command on Linux and macOS with Node
|
|
12
|
+
22, followed by a dependency vulnerability audit. It has read-only repository
|
|
13
|
+
permissions and no live service credentials.
|
|
14
|
+
|
|
15
|
+
## Focused checks
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
npm run format:check
|
|
19
|
+
npm run lint
|
|
20
|
+
node --test test/login.test.mjs
|
|
21
|
+
node --test test/process.test.mjs
|
|
22
|
+
npm run check
|
|
23
|
+
npm audit
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`npm run format` applies formatting. The generated command catalog and vendored
|
|
27
|
+
schemas are excluded from formatting so their provenance remains stable.
|
|
28
|
+
|
|
29
|
+
## What the suites cover
|
|
30
|
+
|
|
31
|
+
| Suite | Observable guarantees |
|
|
32
|
+
| --------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| Login | Consent URL validation, PKCE state/callback handling, denial, cancellation, device-flow deadlines and slow-down |
|
|
34
|
+
| Client/store | Private file checks, origin binding, serialized renewal and uncertain-token recovery |
|
|
35
|
+
| Commands | Immutable requests, concurrent writes, identity binding, uncertain receipts and conflicts |
|
|
36
|
+
| Profiles | Grant validation, narrowed selection, revision conflicts and rotation uncertainty |
|
|
37
|
+
| Changes | Cursor validation, bounded waits, cancellation and no blind retries after quota or permission failures |
|
|
38
|
+
| Process | Real stdio MCP discovery/calls and coordination between separate OS processes |
|
|
39
|
+
| Public boundary | Rejection of excluded files, credentials, symlinks and escaping imports |
|
|
40
|
+
|
|
41
|
+
Tests create and clean up their own temporary directories and loopback servers.
|
|
42
|
+
They do not require browser sign-in or real project data. Use meaningful scenario
|
|
43
|
+
names, assert behavior at public boundaries and include the failure that motivates
|
|
44
|
+
a regression test. Avoid sleeps as synchronization when an explicit signal works.
|
|
45
|
+
|
|
46
|
+
## What local tests do not establish
|
|
47
|
+
|
|
48
|
+
They do not prove admission to the hosted beta, production availability, browser
|
|
49
|
+
provider compatibility on every device or acceptance by each agent host. Release
|
|
50
|
+
verification separately installs the published archive with a fresh cache,
|
|
51
|
+
compares registry integrity and exercises a deliberately authorized test account.
|
|
52
|
+
Record those checks without publishing account data.
|
package/examples/codex.toml
CHANGED
package/examples/mcp.json
CHANGED
|
@@ -2,13 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"geniustasker": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": [
|
|
6
|
-
"-y",
|
|
7
|
-
"@pulsarinteractive/geniustasker@0.1.0-beta.2",
|
|
8
|
-
"mcp",
|
|
9
|
-
"--context",
|
|
10
|
-
"work"
|
|
11
|
-
]
|
|
5
|
+
"args": ["-y", "@pulsarinteractive/geniustasker@0.1.0-beta.4", "mcp", "--context", "work"]
|
|
12
6
|
}
|
|
13
7
|
}
|
|
14
8
|
}
|
package/mcp.json
CHANGED
|
@@ -4,13 +4,7 @@
|
|
|
4
4
|
"geniustasker": {
|
|
5
5
|
"type": "stdio",
|
|
6
6
|
"command": "npx",
|
|
7
|
-
"args": [
|
|
8
|
-
"-y",
|
|
9
|
-
"@pulsarinteractive/geniustasker@0.1.0-beta.2",
|
|
10
|
-
"mcp",
|
|
11
|
-
"--context",
|
|
12
|
-
"work"
|
|
13
|
-
]
|
|
7
|
+
"args": ["-y", "@pulsarinteractive/geniustasker@0.1.0-beta.4", "mcp", "--context", "work"]
|
|
14
8
|
}
|
|
15
9
|
}
|
|
16
10
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pulsarinteractive/geniustasker",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "GeniusTasker delegated CLI and local agent tools",
|
|
6
6
|
"type": "module",
|
|
@@ -21,13 +21,20 @@
|
|
|
21
21
|
"CONTRIBUTING.md",
|
|
22
22
|
"SECURITY.md",
|
|
23
23
|
"plugin.json",
|
|
24
|
-
"mcp.json"
|
|
24
|
+
"mcp.json",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"THIRD_PARTY_NOTICES.md",
|
|
27
|
+
"LICENSES/"
|
|
25
28
|
],
|
|
26
29
|
"scripts": {
|
|
27
30
|
"test": "node --test test/*.test.mjs",
|
|
28
31
|
"check": "node tools/check-package.mjs && node tools/check-public.mjs && node tools/check-plugin.mjs",
|
|
29
|
-
"prepublishOnly": "npm
|
|
30
|
-
"check:public": "node tools/check-public.mjs"
|
|
32
|
+
"prepublishOnly": "npm run verify",
|
|
33
|
+
"check:public": "node tools/check-public.mjs",
|
|
34
|
+
"format": "prettier --write .",
|
|
35
|
+
"format:check": "prettier --check .",
|
|
36
|
+
"lint": "eslint .",
|
|
37
|
+
"verify": "npm run format:check && npm run lint && npm test && npm run check"
|
|
31
38
|
},
|
|
32
39
|
"dependencies": {
|
|
33
40
|
"@modelcontextprotocol/server": "2.1.0",
|
|
@@ -35,10 +42,14 @@
|
|
|
35
42
|
"zod": "4.6.5"
|
|
36
43
|
},
|
|
37
44
|
"devDependencies": {
|
|
45
|
+
"@eslint/js": "10.0.1",
|
|
38
46
|
"@modelcontextprotocol/client": "2.1.0",
|
|
39
|
-
"ajv": "8.20.0"
|
|
47
|
+
"ajv": "8.20.0",
|
|
48
|
+
"eslint": "10.11.0",
|
|
49
|
+
"globals": "17.12.0",
|
|
50
|
+
"prettier": "3.9.9"
|
|
40
51
|
},
|
|
41
|
-
"license": "
|
|
52
|
+
"license": "MIT",
|
|
42
53
|
"publishConfig": {
|
|
43
54
|
"access": "public",
|
|
44
55
|
"tag": "beta",
|
|
@@ -46,11 +57,11 @@
|
|
|
46
57
|
},
|
|
47
58
|
"repository": {
|
|
48
59
|
"type": "git",
|
|
49
|
-
"url": "https://github.com/
|
|
60
|
+
"url": "https://github.com/PulsarInteractive/geniustasker-agent-tools.git"
|
|
50
61
|
},
|
|
51
|
-
"homepage": "https://github.com/
|
|
62
|
+
"homepage": "https://github.com/PulsarInteractive/geniustasker-agent-tools#readme",
|
|
52
63
|
"bugs": {
|
|
53
|
-
"url": "https://github.com/
|
|
64
|
+
"url": "https://github.com/PulsarInteractive/geniustasker-agent-tools/issues"
|
|
54
65
|
},
|
|
55
66
|
"keywords": [
|
|
56
67
|
"geniustasker",
|
package/plugin.json
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
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.4",
|
|
5
5
|
"description": "Track project work and independent product memories with your own agents.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Pulsar Interactive"
|
|
8
8
|
},
|
|
9
|
-
"repository": "https://github.com/
|
|
10
|
-
"license": "
|
|
11
|
-
"keywords": [
|
|
12
|
-
"productivity",
|
|
13
|
-
"projects",
|
|
14
|
-
"memory"
|
|
15
|
-
],
|
|
9
|
+
"repository": "https://github.com/PulsarInteractive/geniustasker-agent-tools",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": ["productivity", "projects", "memory"],
|
|
16
12
|
"extensions": {
|
|
17
13
|
"com.openai": {
|
|
18
14
|
"interface": {
|
|
@@ -20,13 +16,8 @@
|
|
|
20
16
|
"shortDescription": "Projects, progress and memory for your agents",
|
|
21
17
|
"developerName": "Pulsar Interactive",
|
|
22
18
|
"category": "Productivity",
|
|
23
|
-
"capabilities": [
|
|
24
|
-
|
|
25
|
-
"Write"
|
|
26
|
-
],
|
|
27
|
-
"defaultPrompt": [
|
|
28
|
-
"Use GeniusTasker to review my project progress and next tasks."
|
|
29
|
-
]
|
|
19
|
+
"capabilities": ["Read", "Write"],
|
|
20
|
+
"defaultPrompt": ["Use GeniusTasker to review my project progress and next tasks."]
|
|
30
21
|
}
|
|
31
22
|
}
|
|
32
23
|
}
|
|
@@ -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,
|
|
@@ -99,8 +102,6 @@ to evade quotas. If the requested capability is unavailable, say what is pending
|
|
|
99
102
|
and preserve the useful findings. Final progress should identify the actual
|
|
100
103
|
project/ticket and distinguish completed work, validation and remaining work.
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
104
105
|
## Specialized workflows
|
|
105
106
|
|
|
106
107
|
- To create, switch or restrict an agent identity, read [Profiles](references/profiles.md).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name:
|
|
3
|
-
short_description:
|
|
4
|
-
default_prompt:
|
|
2
|
+
display_name: 'GeniusTasker'
|
|
3
|
+
short_description: 'Work on shared projects with your own agents'
|
|
4
|
+
default_prompt: 'Use $geniustasker to review my project and record the next useful step.'
|
|
@@ -22,7 +22,6 @@ agent policy. Use `question.close` only for this profile's own question, with it
|
|
|
22
22
|
current revision. If no answer arrives, record the blocker and proceed only with
|
|
23
23
|
independent authorized work; do not invent approval or repeatedly poll rapidly.
|
|
24
24
|
|
|
25
|
-
|
|
26
25
|
## Leave a useful handoff
|
|
27
26
|
|
|
28
27
|
Use the discovered `task.report` command with `tasks:write`, an open unarchived
|
|
@@ -42,7 +41,6 @@ is not an invitation to recreate its text. Completing/reopening the task clears
|
|
|
42
41
|
its current work phase and retains the report as history. A report does not grant
|
|
43
42
|
permission or count as approval. Use a question when a human answer is needed.
|
|
44
43
|
|
|
45
|
-
|
|
46
44
|
## Request and consume a precise human decision
|
|
47
45
|
|
|
48
46
|
Use `approval.request` with `approvals:write` when a concrete action needs a
|
|
@@ -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.
|