@doist/todoist-ai 7.7.0 → 7.8.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.
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ import { findSections } from './tools/find-sections.js';
16
16
  import { findTasks } from './tools/find-tasks.js';
17
17
  import { findTasksByDate } from './tools/find-tasks-by-date.js';
18
18
  import { getOverview } from './tools/get-overview.js';
19
+ import { listWorkspaces } from './tools/list-workspaces.js';
19
20
  import { manageAssignments } from './tools/manage-assignments.js';
20
21
  import { search } from './tools/search.js';
21
22
  import { updateComments } from './tools/update-comments.js';
@@ -1508,6 +1509,41 @@ declare const tools: {
1508
1509
  };
1509
1510
  }>;
1510
1511
  };
1512
+ listWorkspaces: {
1513
+ name: "list-workspaces";
1514
+ description: string;
1515
+ parameters: {};
1516
+ outputSchema: {
1517
+ type: import('zod').ZodLiteral<"workspaces">;
1518
+ workspaces: import('zod').ZodArray<import('zod').ZodObject<{
1519
+ id: import('zod').ZodString;
1520
+ name: import('zod').ZodString;
1521
+ plan: import('zod').ZodEnum<{
1522
+ STARTER: "STARTER";
1523
+ BUSINESS: "BUSINESS";
1524
+ }>;
1525
+ role: import('zod').ZodEnum<{
1526
+ ADMIN: "ADMIN";
1527
+ MEMBER: "MEMBER";
1528
+ GUEST: "GUEST";
1529
+ }>;
1530
+ isLinkSharingEnabled: import('zod').ZodBoolean;
1531
+ isGuestAllowed: import('zod').ZodBoolean;
1532
+ createdAt: import('zod').ZodString;
1533
+ creatorId: import('zod').ZodString;
1534
+ }, import('zod/v4/core').$strip>>;
1535
+ count: import('zod').ZodNumber;
1536
+ };
1537
+ annotations: {
1538
+ readOnlyHint: true;
1539
+ destructiveHint: false;
1540
+ idempotentHint: true;
1541
+ };
1542
+ execute(_args: Record<string, never>, client: import('@doist/todoist-api-typescript').TodoistApi): Promise<{
1543
+ textContent: string;
1544
+ structuredContent: import('./tools/list-workspaces.js').WorkspacesStructured;
1545
+ }>;
1546
+ };
1511
1547
  search: {
1512
1548
  name: "search";
1513
1549
  description: string;
@@ -1574,5 +1610,5 @@ declare const tools: {
1574
1610
  };
1575
1611
  };
1576
1612
  export { tools, getMcpServer, FEATURE_NAMES, type Feature, type FeatureName, type Features };
1577
- export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, findActivity, getOverview, deleteObject, userInfo, findProjectCollaborators, manageAssignments, search, fetch, };
1613
+ export { addTasks, completeTasks, updateTasks, findTasks, findTasksByDate, findCompletedTasks, addProjects, updateProjects, findProjects, addSections, updateSections, findSections, addComments, updateComments, findComments, findActivity, getOverview, deleteObject, userInfo, findProjectCollaborators, manageAssignments, listWorkspaces, search, fetch, };
1578
1614
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCV,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAA;AAE5F,OAAO,EAEH,QAAQ,EACR,aAAa,EACb,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAElB,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,YAAY,EAEZ,WAAW,EACX,YAAY,EACZ,QAAQ,EAER,wBAAwB,EACxB,iBAAiB,EAEjB,MAAM,EACN,KAAK,GACR,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCV,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAA;AAE5F,OAAO,EAEH,QAAQ,EACR,aAAa,EACb,WAAW,EACX,SAAS,EACT,eAAe,EACf,kBAAkB,EAElB,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,YAAY,EAEZ,YAAY,EAEZ,WAAW,EACX,YAAY,EACZ,QAAQ,EAER,wBAAwB,EACxB,iBAAiB,EAEjB,cAAc,EAEd,MAAM,EACN,KAAK,GACR,CAAA"}
package/dist/index.js CHANGED
@@ -1,63 +1,66 @@
1
- import { f as s, s as a, m as e, a as t, u as o, d, b as n, c as i, e as r, h as c, i as m, j as f, k as p, l as k, n as l, o as T, p as j, q as u, r as g, t as v, v as C, w as S, x as A } from "./mcp-server-BzVo9eGr.js";
2
- import { F as E, g as w } from "./mcp-server-BzVo9eGr.js";
3
- const b = {
1
+ import { f as s, s as a, l as e, m as t, a as o, u as d, d as n, b as i, c as r, e as c, h as m, i as f, j as p, k, n as l, o as T, p as j, q as u, r as g, t as v, v as C, w as S, x as A, y as P } from "./mcp-server-DJK_AbsH.js";
2
+ import { F as E, g as w } from "./mcp-server-DJK_AbsH.js";
3
+ const h = {
4
4
  // Task management tools
5
- addTasks: A,
6
- completeTasks: S,
7
- updateTasks: C,
8
- findTasks: v,
9
- findTasksByDate: g,
10
- findCompletedTasks: u,
5
+ addTasks: P,
6
+ completeTasks: A,
7
+ updateTasks: S,
8
+ findTasks: C,
9
+ findTasksByDate: v,
10
+ findCompletedTasks: g,
11
11
  // Project management tools
12
- addProjects: j,
13
- updateProjects: T,
14
- findProjects: l,
12
+ addProjects: u,
13
+ updateProjects: j,
14
+ findProjects: T,
15
15
  // Section management tools
16
- addSections: k,
17
- updateSections: p,
18
- findSections: f,
16
+ addSections: l,
17
+ updateSections: k,
18
+ findSections: p,
19
19
  // Comment management tools
20
- addComments: m,
21
- updateComments: c,
22
- findComments: r,
20
+ addComments: f,
21
+ updateComments: m,
22
+ findComments: c,
23
23
  // Activity and audit tools
24
- findActivity: i,
24
+ findActivity: r,
25
25
  // General tools
26
- getOverview: n,
27
- deleteObject: d,
28
- userInfo: o,
26
+ getOverview: i,
27
+ deleteObject: n,
28
+ userInfo: d,
29
29
  // Assignment and collaboration tools
30
- findProjectCollaborators: t,
31
- manageAssignments: e,
30
+ findProjectCollaborators: o,
31
+ manageAssignments: t,
32
+ // Workspace tools
33
+ listWorkspaces: e,
32
34
  // OpenAI MCP tools
33
35
  search: a,
34
36
  fetch: s
35
37
  };
36
38
  export {
37
39
  E as FEATURE_NAMES,
38
- m as addComments,
39
- j as addProjects,
40
- k as addSections,
41
- A as addTasks,
42
- S as completeTasks,
43
- d as deleteObject,
40
+ f as addComments,
41
+ u as addProjects,
42
+ l as addSections,
43
+ P as addTasks,
44
+ A as completeTasks,
45
+ n as deleteObject,
44
46
  s as fetch,
45
- i as findActivity,
46
- r as findComments,
47
- u as findCompletedTasks,
48
- t as findProjectCollaborators,
49
- l as findProjects,
50
- f as findSections,
51
- v as findTasks,
52
- g as findTasksByDate,
47
+ r as findActivity,
48
+ c as findComments,
49
+ g as findCompletedTasks,
50
+ o as findProjectCollaborators,
51
+ T as findProjects,
52
+ p as findSections,
53
+ C as findTasks,
54
+ v as findTasksByDate,
53
55
  w as getMcpServer,
54
- n as getOverview,
55
- e as manageAssignments,
56
+ i as getOverview,
57
+ e as listWorkspaces,
58
+ t as manageAssignments,
56
59
  a as search,
57
- b as tools,
58
- c as updateComments,
59
- T as updateProjects,
60
- p as updateSections,
61
- C as updateTasks,
62
- o as userInfo
60
+ h as tools,
61
+ m as updateComments,
62
+ j as updateProjects,
63
+ k as updateSections,
64
+ S as updateTasks,
65
+ d as userInfo
63
66
  };
package/dist/main-http.js CHANGED
@@ -4,8 +4,8 @@ import { StreamableHTTPServerTransport as f } from "@modelcontextprotocol/sdk/se
4
4
  import { isInitializeRequest as h } from "@modelcontextprotocol/sdk/types.js";
5
5
  import S from "dotenv";
6
6
  import m from "express";
7
- import { g as v } from "./mcp-server-BzVo9eGr.js";
8
- S.config();
7
+ import { g as v } from "./mcp-server-DJK_AbsH.js";
8
+ S.config({ quiet: !0 });
9
9
  const d = Number.parseInt(process.env.PORT || "3000", 10), l = Number.parseInt(process.env.SESSION_TIMEOUT_MS || "1800000", 10), t = /* @__PURE__ */ new Map();
10
10
  function u(i) {
11
11
  const r = t.get(i);
package/dist/main.js CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { StdioServerTransport as s } from "@modelcontextprotocol/sdk/server/stdio.js";
3
3
  import c from "dotenv";
4
- import { g as i } from "./mcp-server-BzVo9eGr.js";
4
+ import { g as i } from "./mcp-server-DJK_AbsH.js";
5
5
  function p() {
6
- const o = process.env.TODOIST_BASE_URL, r = process.env.TODOIST_API_KEY;
6
+ const e = process.env.TODOIST_BASE_URL, r = process.env.TODOIST_API_KEY;
7
7
  if (!r)
8
8
  throw new Error("TODOIST_API_KEY is not set");
9
- const e = i({ todoistApiKey: r, baseUrl: o }), t = new s();
10
- e.connect(t).then(() => {
9
+ const o = i({ todoistApiKey: r, baseUrl: e }), t = new s();
10
+ o.connect(t).then(() => {
11
11
  console.error("Server started");
12
12
  }).catch((n) => {
13
13
  console.error("Error starting the Todoist MCP server:", n), process.exit(1);
14
14
  });
15
15
  }
16
- c.config();
16
+ c.config({ quiet: !0 });
17
17
  p();